




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9节约束,讲师:宋红康新浪微博:尚硅谷-宋红康,目标,通过本章学习,您将可以:描述约束创建和维护约束,什么是约束,约束是表级的强制规定有以下五种约束:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECK,注意事项,如果不指定约束名,Oracleserver自动按照SYS_Cn的格式指定约束名创建和修改约束:建表的同时建表之后可以在表级或列级定义约束可以通过数据字典视图查看约束,表级约束和列级约束,作用范围:列级约束只能作用在一个列上,表级约束可以作用在多个列上(当然表级约束也可以作用在一个列上)定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。非空(notnull)约束只能定义在列上,定义约束,定义约束,列级表级,columnCONSTRAINTconstraint_nameconstraint_type,column,.CONSTRAINTconstraint_nameconstraint_type(column,.),NOTNULL约束,保证列值不能为空:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATECONSTRAINTemp_hire_date_nnNOTNULL,.,NOTNULL约束,只能定义在列级:,可以在PL/SQLDEV的Myobjects-Tables-employees-Checkconstraints中查看,UNIQUE约束,EMPLOYEES,UNIQUE约束,INSERTINTO,唯一约束,允许出现多个空值:NULL。,UNIQUE约束,可以定义在表级或列级:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)UNIQUE,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,.CONSTRAINTemp_email_ukUNIQUE(email);,用户命名,系统命名,可以声明在email后面:CONSTRAINTemp_email_ukUNIQUE,也可以如此末处声明。,PRIMARYKEY约束,DEPARTMENTS,PRIMARYKEY,CREATETABLEdepartments(department_idNUMBER(4),department_nameVARCHAR2(30)CONSTRAINTdept_name_nnNOTNULL,manager_idNUMBER(6),location_idNUMBER(4),CONSTRAINTdept_id_pkPRIMARYKEY(department_id);,PRIMARYKEY约束,可以定义在表级或列级:,FOREIGNKEY约束,DEPARTMENTS,EMPLOYEES,FOREIGNKEY约束,可以定义在表级或列级:,CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,.department_idNUMBER(4),CONSTRAINTemp_dept_fkFOREIGNKEY(department_id)REFERENCESdepartments(department_id),CONSTRAINTemp_email_ukUNIQUE(email);,FOREIGNKEY约束的关键字,FOREIGNKEY:在表级指定子表中的列REFERENCES:标示在父表中的列ONDELETECASCADE(级联删除):当父表中的列被删除时,子表中相对应的列也被删除ONDELETESETNULL(级联置空):子表中相应的列置空,CHECK约束,定义每一行必须满足的条件,.,salaryNUMBER(2)CONSTRAINTemp_salary_minCHECK(salary0),.,添加约束的语法,使用ALTERTABLE语句:添加或删除约束,但是不能修改约束有效化或无效化约束添加NOTNULL约束要使用MODIFY语句,ALTERTABLEtableADDCONSTRAINTconstrainttype(column);,以createtableempasselect*fromemployees;为例,添加和删除约束,altertableempmodify(empnamevarchar2(50)notnull);,添加约束,添加约束举例,ALTERTABLEemployeesADDCONSTRAINTemp_manager_fkFOREIGNKEY(manager_id)REFERENCESemployees(employee_id);Tablealtered.,删除约束,从表EMPLOYEES中删除约束,ALTERTABLEemployeesDROPCONSTRAINTemp_manager_fk;Tablealtered.,无效化约束,在ALTERTABLE语句中使用DISABLE子句将约束无效化。,ALTERTABLEemployeesDISABLECONSTRAINTemp_emp_id_pk;Tablealtered.,激活约束,ENABLE子句可将当前无效的约束激活当定义或激活UNIQUE或PRIMARYKEY约束时系统会自动创建UNIQUE或PRIMARYKEY索引,ALTERTABLEemployeesENABLECONSTRAINTemp_emp_id_pk;Tablealtered.,SELECTconstraint_name,constraint_type,search_conditionFROMuser_constraintsWHEREtable_name=EMPLOYEES;,查询约束,查询数据字典视图USER_CONSTRAINTS,SELECTconstraint_name,column_nameFROMuser_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 地下水水文地质工程地质管理重点基础知识点
- 《课件英文》课件
- 《物业管理招标投标》课件
- 民房变卖协议书
- 急救知识培训教材
- 借款合同延期还款合同
- 水稻飞防协议书
- 初级会计培训宣传
- 商业推广和营销合作协议
- 厨师临时用工合同
- 济南市海绵城市建设建筑与小区改造项目案例-山东省经济技术开发中心宿舍-2
- 辩护词贪污罪、受贿罪
- 术后1月 省中乳腺breast-q量表附有答案
- 幼儿园办学资料:幼儿图书目录
- 串联分压并联分流
- 扣款申请单(标准模版)
- GB/T 13927-2022工业阀门压力试验
- GB/T 40931-2021滑雪板术语
- GB/T 40855-2021电动汽车远程服务与管理系统信息安全技术要求及试验方法
- GB/T 14949.6-1994锰矿石化学分析方法铜、铅和锌量的测定
- GB/T 14155-2008整樘门软重物体撞击试验
评论
0/150
提交评论