尚硅谷教学课件SQL9.约束

上传人:E**** 文档编号:90931779 上传时间:2019-06-20 格式:PPTX 页数:26 大小:856.57KB
返回 下载 相关 举报
尚硅谷教学课件SQL9.约束_第1页
第1页 / 共26页
尚硅谷教学课件SQL9.约束_第2页
第2页 / 共26页
尚硅谷教学课件SQL9.约束_第3页
第3页 / 共26页
尚硅谷教学课件SQL9.约束_第4页
第4页 / 共26页
尚硅谷教学课件SQL9.约束_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《尚硅谷教学课件SQL9.约束》由会员分享,可在线阅读,更多相关《尚硅谷教学课件SQL9.约束(26页珍藏版)》请在金锄头文库上搜索。

1、约束,讲师:佟刚 新浪微博:尚硅谷-佟刚,目标,通过本章学习,您将可以: 描述约束 创建和维护约束,什么是约束,约束是表级的强制规定 有以下五种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK,注意事项,如果不指定约束名 Oracle server 自动按照 SYS_Cn 的格式指定约束名 在什么时候创建约束: 建表的同时 建表之后 可以在表级或列级定义约束 可以通过数据字典视图查看约束,表级约束和列级约束,作用范围:列级约束只能作用在一个列上,而表约束可以作用在多个列上(当然表约束也可以作用在一个列上)。 定义方式:列约束必须跟在列的定义里后

2、面,表约束不与列一起,而是单独定义。 非空(not null) 约束只能定义在列上,定义约束,定义约束,列级 表级,column CONSTRAINT constraint_name constraint_type,column,. CONSTRAINT constraint_name constraint_type (column, .),NOT NULL 约束,保证列值不能为空:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, salary NUMBER(8,2), commis

3、sion_pct NUMBER(2,2), hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, .,NOT NULL 约束,只能定义在列级:,UNIQUE 约束,EMPLOYEES,UNIQUE 约束,INSERT INTO,UNIQUE 约束,可以定义在表级或列级:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25) , salary NUMBER(8,2), commission_pct NU

4、MBER(2,2), hire_date DATE NOT NULL, . CONSTRAINT emp_email_uk UNIQUE(email);,PRIMARY KEY 约束,DEPARTMENTS,PRIMARY KEY,CREATE TABLE departments( department_id NUMBER(4), department_name VARCHAR2(30) CONSTRAINT dept_name_nn NOT NULL, manager_id NUMBER(6), location_id NUMBER(4), CONSTRAINT dept_id_pk PRI

5、MARY KEY(department_id);,PRIMARY KEY 约束,可以定义在表级或列级:,FOREIGN KEY 约束,DEPARTMENTS,EMPLOYEES,FOREIGN KEY 约束,可以定义在表级或列级:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL, . departmen

6、t_id NUMBER(4), CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id), CONSTRAINT emp_email_uk UNIQUE(email);,FOREIGN KEY 约束的关键字,FOREIGN KEY: 在表级指定子表中的列 REFERENCES: 标示在父表中的列 ON DELETE CASCADE: 当父表中的列被删除时,子表中相对应的列也被删除 ON DELETE SET NULL: 子表中相应的列置空,CHECK 约束,定义每一行必须满足

7、的条件,., salary NUMBER(2) CONSTRAINT emp_salary_min CHECK (salary 0),.,添加约束的语法,使用 ALTER TABLE 语句: 添加或删除约束, 但是不能修改约束 有效化或无效化约束 添加 NOT NULL 约束要使用 MODIFY 语句,ALTER TABLE table ADD CONSTRAINT constraint type (column);,添加约束,添加约束举例,ALTER TABLE employees ADD CONSTRAINT emp_manager_fk FOREIGN KEY(manager_id) R

8、EFERENCES employees(employee_id); Table altered.,删除约束,从表 EMPLOYEES 中删除约束,ALTER TABLE employees DROP CONSTRAINT emp_manager_fk; Table altered.,无效化约束,在ALTER TABLE 语句中使用 DISABLE 子句将约束无效化。,ALTER TABLE employees DISABLE CONSTRAINT emp_emp_id_pk; Table altered.,激活约束,ENABLE 子句可将当前无效的约束激活 当定义或激活UNIQUE 或 PRI

9、MARY KEY 约束时系统会自动创建UNIQUE 或 PRIMARY KEY索引,ALTER TABLE employees ENABLE CONSTRAINT emp_emp_id_pk; Table altered.,SELECT constraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = EMPLOYEES;,查询约束,查询数据字典视图 USER_CONSTRAINTS,SELECT constraint_name, column_name FROM user_cons_columns WHERE table_name = EMPLOYEES;,查询定义约束的列,查询数据字典视图 USER_CONS_COLUMNS,总结,通过本章学习,您已经学会如何创建约束 描述约束的类型: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号