Oracle公司内部数据库培训资料10约束课件_第1页
Oracle公司内部数据库培训资料10约束课件_第2页
Oracle公司内部数据库培训资料10约束课件_第3页
Oracle公司内部数据库培训资料10约束课件_第4页
Oracle公司内部数据库培训资料10约束课件_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

26十二月2022Oracle公司内部数据库培训资料10约束26十二月2022Oracle公司内部数据库培训资料101目标通过本章学习,您将可以:描述约束创建和维护约束Oracle公司内部数据库培训资料10约束目标通过本章学习,您将可以:Oracle公司内部数据库培训2什么是约束约束是表级的强制规定约束放置在表中删除有关联关系的数据有以下五种约束:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECKOracle公司内部数据库培训资料10约束什么是约束约束是表级的强制规定Oracle公司内部数据库培训3注意事项如果不指定约束名Oracleserver自动按照SYS_Cn

的格式指定约束名在什么时候创建约束:建表的同时建表之后可以在表级或列级定义约束可以通过数据字典视图查看约束Oracle公司内部数据库培训资料10约束注意事项如果不指定约束名Oracleserver自动按4定义约束CREATETABLE[schema.]table (column

datatype[DEFAULTexpr] [column_constraint], ... [table_constraint][,...]);CREATETABLEemployees( employee_idNUMBER(6), first_nameVARCHAR2(20), ... job_idVARCHAR2(10)NOTNULL, CONSTRAINTemp_emp_id_pk PRIMARYKEY(EMPLOYEE_ID));Oracle公司内部数据库培训资料10约束定义约束CREATETABLE[schema.]tabl5定义约束列级

表级column[CONSTRAINTconstraint_name]constraint_type,column,...

[CONSTRAINTconstraint_name]constraint_type(column,...),Oracle公司内部数据库培训资料10约束定义约束列级

column[CONSTRAINTcons6NOT

NULL约束保证列值不能为空:NOTNULL约束无NOTNULL约束NOTNULL

约束…Oracle公司内部数据库培训资料10约束NOTNULL约束保证列值不能为空:NOTNULL约7CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATECONSTRAINTemp_hire_date_nnNOTNULL,...NOT

NULL约束只能定义在列级:

系统命名用户命名Oracle公司内部数据库培训资料10约束CREATETABLEemployees(NOTNUL8UNIQUE约束EMPLOYEESUNIQUE约束INSERTINTO不允许:已经存在允许…Oracle公司内部数据库培训资料10约束UNIQUE约束EMPLOYEESUNIQUE约束IN9UNIQUE约束可以定义在表级或列级:CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,...CONSTRAINTemp_email_ukUNIQUE(email));Oracle公司内部数据库培训资料10约束UNIQUE约束可以定义在表级或列级:CREATETA10PRIMARY

KEY约束DEPARTMENTS

PRIMARYKEYINSERTINTO不允许(空值)不允许(50已经存在)…Oracle公司内部数据库培训资料10约束PRIMARYKEY约束DEPARTMENTSPRIM11CREATETABLEdepartments(department_idNUMBER(4),department_nameVARCHAR2(30)CONSTRAINTdept_name_nnNOTNULL,manager_idNUMBER(6),location_idNUMBER(4),CONSTRAINTdept_id_pkPRIMARYKEY(department_id));PRIMARY

KEY约束可以定义在表级或列级:Oracle公司内部数据库培训资料10约束CREATETABLEdepartments(PRI12FOREIGN

KEY约束DEPARTMENTS

EMPLOYEESFOREIGN

KEYINSERTINTO不允许(9不存在)允许PRIMARY

KEY……Oracle公司内部数据库培训资料10约束FOREIGNKEY约束DEPARTMENTSEMPL13FOREIGN

KEY约束可以定义在表级或列级: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));Oracle公司内部数据库培训资料10约束FOREIGNKEY约束可以定义在表级或列级:CREAT14FOREIGN

KEY约束的关键字FOREIGNKEY:在表级指定子表中的列REFERENCES:标示在父表中的列ONDELETECASCADE:当父表中的列被删除是,子表中相对应的列也被删除ONDELETESETNULL:子表中相应的列置空Oracle公司内部数据库培训资料10约束FOREIGNKEY约束的关键字FOREIGNKEY:15CHECK约束定义每一行必须满足的条件以下的表达式是不允许的:出现CURRVAL,NEXTVAL,LEVEL,和ROWNUM伪列使用SYSDATE,UID,USER,和USERENV函数在查询中涉及到其它列的值...,salary NUMBER(2)CONSTRAINTemp_salary_minCHECK(salary>0),...Oracle公司内部数据库培训资料10约束CHECK约束定义每一行必须满足的条件...,salar16添加约束的语法使用ALTERTABLE语句:添加或删除约束,但是不能修改约束有效化或无效化约束添加NOTNULL约束要使用MODIFY语句ALTERTABLE tableADD[CONSTRAINTconstraint]type(column);Oracle公司内部数据库培训资料10约束添加约束的语法使用ALTERTABLE语句:ALT17添加约束添加约束举例ALTERTABLEemployeesADDCONSTRAINTemp_manager_fkFOREIGNKEY(manager_id)REFERENCESemployees(employee_id);Tablealtered.Oracle公司内部数据库培训资料10约束添加约束添加约束举例ALTERTABLEempl18删除约束从表EMPLOYEES中删除约束使用CASCADE选项删除约束ALTERTABLEemployeesDROPCONSTRAINTemp_manager_fk;Tablealtered.ALTERTABLE departmentsDROPPRIMARYKEYCASCADE;Tablealtered.Oracle公司内部数据库培训资料10约束删除约束从表EMPLOYEES中删除约束ALTERTA19无效化约束在ALTER

TABLE语句中使用DISABLE子句将约束无效化。使用CASCADE选项将相关的约束也无效化ALTERTABLE employeesDISABLECONSTRAINT emp_emp_id_pkCASCADE;Tablealtered.Oracle公司内部数据库培训资料10约束无效化约束在ALTERTABLE语句中使用DISABL20激活约束ENABLE子句可将当前无效的约束激活

当定义或激活UNIQUE或PRIMARYKEY约束时系统会自动创建UNIQUE或PRIMARYKEY索引ALTERTABLE employeesENABLECONSTRAINT emp_emp_id_pk;Tablealtered.Oracle公司内部数据库培训资料10约束激活约束ENABLE子句可将当前无效的约束激活

AL21及连约束CASCADECONSTRAINTS子句在DROPCOLUMN子句中使用在删除表的列时CASCADECONSTRAINTS子句指定将相关的约束一起删除在删除表的列时CASCADECONSTRAINTS子句同时也删除多列约束Oracle公司内部数据库培训资料10约束及连约束CASCADECONSTRAINTS子句在DR22及连约束及连约束举例:ALTERTABLEtest1DROP(pk)CASCADECONSTRAINTS;Tablealtered.ALTERTABLEtest1DROP(pk,fk,col1)CASCADECONSTRAINTS;Tablealtered.Oracle公司内部数据库培训资料10约束及连约束及连约束举例:ALTERTABLEtest1A23SELECT constraint_name,constraint_type, search_conditionFROM user_constraintsWHERE table_name='EMPLOYEES';查询约束查询数据字典视图USER_CONSTRAINTS…Oracle公司内部数据库培训资料10约束SELECT constraint_name,constr24SELECT constraint_name,column_nameFROM

user_cons_columnsWHERE table_name='EMPLOYEES';查询定义约束的列查询数据字典视图USER_CONS_COLUMNS…Oracle公司内部数据库培训资料10约束SELECT constraint_name,column25总结通过本章学习,您已经学会如何创建约束描述约束的类型:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECK查询数据字典视图以获得约束的信息Oracle公司内部数据库培训资料10约束总结通过本章学习,您已经学会如何创建约束Oracle公司内部26Oracle公司内部数据库培训资料10约束Oracle公司内部数据库培训资料10约束27Oracle公司内部数据库培训资料10约束Oracle公司内部数据库培训资料10约束2826十二月2022Oracle公司内部数据库培训资料10约束26十二月2022Oracle公司内部数据库培训资料1029目标通过本章学习,您将可以:描述约束创建和维护约束Oracle公司内部数据库培训资料10约束目标通过本章学习,您将可以:Oracle公司内部数据库培训30什么是约束约束是表级的强制规定约束放置在表中删除有关联关系的数据有以下五种约束:NOTNULLUNIQUEPRIMARYKEYFOREIGNKEYCHECKOracle公司内部数据库培训资料10约束什么是约束约束是表级的强制规定Oracle公司内部数据库培训31注意事项如果不指定约束名Oracleserver自动按照SYS_Cn

的格式指定约束名在什么时候创建约束:建表的同时建表之后可以在表级或列级定义约束可以通过数据字典视图查看约束Oracle公司内部数据库培训资料10约束注意事项如果不指定约束名Oracleserver自动按32定义约束CREATETABLE[schema.]table (column

datatype[DEFAULTexpr] [column_constraint], ... [table_constraint][,...]);CREATETABLEemployees( employee_idNUMBER(6), first_nameVARCHAR2(20), ... job_idVARCHAR2(10)NOTNULL, CONSTRAINTemp_emp_id_pk PRIMARYKEY(EMPLOYEE_ID));Oracle公司内部数据库培训资料10约束定义约束CREATETABLE[schema.]tabl33定义约束列级

表级column[CONSTRAINTconstraint_name]constraint_type,column,...

[CONSTRAINTconstraint_name]constraint_type(column,...),Oracle公司内部数据库培训资料10约束定义约束列级

column[CONSTRAINTcons34NOT

NULL约束保证列值不能为空:NOTNULL约束无NOTNULL约束NOTNULL

约束…Oracle公司内部数据库培训资料10约束NOTNULL约束保证列值不能为空:NOTNULL约35CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATECONSTRAINTemp_hire_date_nnNOTNULL,...NOT

NULL约束只能定义在列级:

系统命名用户命名Oracle公司内部数据库培训资料10约束CREATETABLEemployees(NOTNUL36UNIQUE约束EMPLOYEESUNIQUE约束INSERTINTO不允许:已经存在允许…Oracle公司内部数据库培训资料10约束UNIQUE约束EMPLOYEESUNIQUE约束IN37UNIQUE约束可以定义在表级或列级:CREATETABLEemployees(employee_idNUMBER(6),last_nameVARCHAR2(25)NOTNULL,emailVARCHAR2(25),salaryNUMBER(8,2),commission_pctNUMBER(2,2),hire_dateDATENOTNULL,...CONSTRAINTemp_email_ukUNIQUE(email));Oracle公司内部数据库培训资料10约束UNIQUE约束可以定义在表级或列级:CREATETA38PRIMARY

KEY约束DEPARTMENTS

PRIMARYKEYINSERTINTO不允许(空值)不允许(50已经存在)…Oracle公司内部数据库培训资料10约束PRIMARYKEY约束DEPARTMENTSPRIM39CREATETABLEdepartments(department_idNUMBER(4),department_nameVARCHAR2(30)CONSTRAINTdept_name_nnNOTNULL,manager_idNUMBER(6),location_idNUMBER(4),CONSTRAINTdept_id_pkPRIMARYKEY(department_id));PRIMARY

KEY约束可以定义在表级或列级:Oracle公司内部数据库培训资料10约束CREATETABLEdepartments(PRI40FOREIGN

KEY约束DEPARTMENTS

EMPLOYEESFOREIGN

KEYINSERTINTO不允许(9不存在)允许PRIMARY

KEY……Oracle公司内部数据库培训资料10约束FOREIGNKEY约束DEPARTMENTSEMPL41FOREIGN

KEY约束可以定义在表级或列级: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));Oracle公司内部数据库培训资料10约束FOREIGNKEY约束可以定义在表级或列级:CREAT42FOREIGN

KEY约束的关键字FOREIGNKEY:在表级指定子表中的列REFERENCES:标示在父表中的列ONDELETECASCADE:当父表中的列被删除是,子表中相对应的列也被删除ONDELETESETNULL:子表中相应的列置空Oracle公司内部数据库培训资料10约束FOREIGNKEY约束的关键字FOREIGNKEY:43CHECK约束定义每一行必须满足的条件以下的表达式是不允许的:出现CURRVAL,NEXTVAL,LEVEL,和ROWNUM伪列使用SYSDATE,UID,USER,和USERENV函数在查询中涉及到其它列的值...,salary NUMBER(2)CONSTRAINTemp_salary_minCHECK(salary>0),...Oracle公司内部数据库培训资料10约束CHECK约束定义每一行必须满足的条件...,salar44添加约束的语法使用ALTERTABLE语句:添加或删除约束,但是不能修改约束有效化或无效化约束添加NOTNULL约束要使用MODIFY语句ALTERTABLE tableADD[CONSTRAINTconstraint]type(column);Oracle公司内部数据库培训资料10约束添加约束的语法使用ALTERTABLE语句:ALT45添加约束添加约束举例ALTERTABLEemployeesADDCONSTRAINTemp_manager_fkFOREIGNKEY(manager_id)REFERENCESemployees(employee_id);Tablealtered.Oracle公司内部数据库培训资料10约束添加约束添加约束举例ALTERTABLEempl46删除约束从表EMPLOYEES中删除约束使用CASCADE选项删除约束ALTERTABLEemployeesDROPCONSTRAINTemp_manager_fk;Tablealtered.ALTERTABLE departmentsDROPPRIMARYKEYCASCADE;Tablealtered.Oracle公司内部数据库培训资料10约束删除约束从表EMPLOYEES中删除约束ALTERTA47无效化约束在ALTER

TABLE语句中使用DISABLE子句将约束无效化。使用CASCADE选项将相关的约束也无效化ALTERTABLE employeesDISABLECONSTRAINT emp_emp_id_pkCASCADE;Tablealtered.Oracle公司内部数据库培训资料10约束无效化约束在ALTERTABLE语句中使用DISABL48激活约束ENABLE子句可将当前无效的约束激活

当定义或激活UNIQUE或PRIMARYKEY约束时系统会自动创建UNIQUE或PRIMARYKEY索引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论