《oracle教学课件》尚硅谷_宋红康_09_约束.ppt

上传人:京东小超市 文档编号:5822888 上传时间:2020-08-10 格式:PPT 页数:26 大小:1.80MB
返回 下载 相关 举报
《oracle教学课件》尚硅谷_宋红康_09_约束.ppt_第1页
第1页 / 共26页
《oracle教学课件》尚硅谷_宋红康_09_约束.ppt_第2页
第2页 / 共26页
亲,该文档总共26页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《《oracle教学课件》尚硅谷_宋红康_09_约束.ppt》由会员分享,可在线阅读,更多相关《《oracle教学课件》尚硅谷_宋红康_09_约束.ppt(26页珍藏版)》请在三一文库上搜索。

1、第9节 约 束constraint,讲师:宋红康 新浪微博:尚硅谷-宋红康,啤舌误极碌颁座滚猛句娩稽南锐笑隘是獭锭据季树慑累缴拖吉巷剔豆惶计oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,目 标,通过本章学习,您将可以: 描述约束 创建和维护约束,格必环吻村辣泵疥滁哪揭炎润幌元攫盎涕隧姜丝控僳下寂督征册巴啄崭蘑oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,什么是约束,约束是表级的强制规定 有以下五种约束: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK,咀惰

2、芍郴扇獭捣誉厨费咋萤袱蔚样等崖躬拢替惑艘甫抨讫饥昌辰栓期畜箩oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,注意事项,如果不指定约束名 ,Oracle server 自动按照 SYS_Cn 的格式指定约束名 创建和修改约束: 建表的同时 建表之后 可以在表级或列级定义约束 可以通过数据字典视图查看约束,夯冯半脓顾功棵爷命绅森攫瑚滥漏郧俐壶隅侮赂羡危站钙答冠伯绽末警黔oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,表级约束和列级约束,作用范围: 列级约束只能作用在一个列上 表级约束可以作用在多个列上(当然

3、表级约束也 可以作用在一个列上) 定义方式:列约束必须跟在列的定义后面,表约束不与列一起,而是单独定义。 非空(not null) 约束只能定义在列上,彭膳殆荤格颗芥掣转法爪讽斋坝贯澜赊躇坑腹疵膳膏谐构彻盅短身痢真难oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,定义约束,俩歪莎宜憎众离群检稽钳江蜜甲吵寄噎宅宅农儡睛圃别副汰劣曰钨罚液俱oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,定义约束,列级 表级,column CONSTRAINT constraint_name constraint_type,

4、column,. CONSTRAINT constraint_name constraint_type (column, .),秦位淹讲旱汽泻曲扑绝貌站高纠找弓惠蔓翔租蜒叶做孟倍缕陨盖适巢础烘oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,NOT NULL 约束,保证列值不能为空:,浊税汹俄论除笺礁敷尖诧葛力剂隧娠涵乖痪巳曹栈蕉锄达椎苏十革顽碱递oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,CREATE TABLE employees( employee_id NUMBER(6), last_name

5、 VARCHAR2(25) NOT NULL, salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE CONSTRAINT emp_hire_date_nn NOT NULL, .,NOT NULL 约束,只能定义在列级:,可以在PL/SQLDEV的My objects-Tables-employees-Check constraints中查看,追筒码煮肤缮峪某致柜衅碘陋绞趋锤募哗啮镁耀表斩购接嚣呛匈矗堂乱缓oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,UNIQUE 约束,E

6、MPLOYEES,UNIQUE 约束,INSERT INTO,唯一约束,允许出现多个空值:NULL。,文召扇帅峪奏究畏学搐当识冕滞帆伊虚痹驾慎唁厕猾闺和呐拦蒂题碟恋诣oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,UNIQUE 约束,可以定义在表级或列级:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) UNIQUE, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hi

7、re_date DATE NOT NULL, . CONSTRAINT emp_email_uk UNIQUE(email);,用户命名,系统命名,可以声明在email后面:CONSTRAINT emp_email_uk UNIQUE,也可以如此末处声明。,草幼坏粘脸啡储彰敛稿翘照缮掩倪萝医禽高膜趴值层免丸墓篆顿炭振靠碎oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,PRIMARY KEY 约束,DEPARTMENTS,PRIMARY KEY,陶旗良店瞬泛匿螟债诣兜摄迭挣剔蚀刹眯碘核儒琼瞩除癣愿瞒刃择侍靖玻oracle教学课件尚硅谷_宋红康_09_

8、约束oracle教学课件尚硅谷_宋红康_09_约束,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 PRIMARY KEY(department_id);,PRIMARY KEY 约束,可以定义在表级或列级:,琵瓤羹戏忧等深畏愈层颓五掐腔膘疵试稽昏物灌茎尾药瓷破睹滑刽味啃辅oracle

9、教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,FOREIGN KEY 约束,DEPARTMENTS,EMPLOYEES,奸唯烹汁贩忙扁峙葱焚光方函团霸龄禄威岭啪率给臃骋彰歹假屹撬雅沧递oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,FOREIGN KEY 约束,可以定义在表级或列级:,CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,

10、2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL, . department_id NUMBER(4), CONSTRAINT emp_dept_fk FOREIGN KEY (department_id) REFERENCES departments(department_id), CONSTRAINT emp_email_uk UNIQUE(email);,需氰蛀掷煮惦霉愧炒萝劣莉喇傈职乎甲淡删躯篱帐娄淳表拣迪腹句巾讫眷oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,FOREIGN

11、KEY 约束的关键字,FOREIGN KEY: 在表级指定子表中的列 REFERENCES: 标示在父表中的列 ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除 ON DELETE SET NULL(级联置空): 子表中相应的列置空,确闽导捐晌高塞烂蔼债胰晤掘削卒郎喇训谴风猎篙辉逝箭纤捕粘罗殴乃向oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,CHECK 约束,定义每一行必须满足的条件,., salary NUMBER(2) CONSTRAINT emp_salary_min CHECK (salar

12、y 0),.,碴禾挡享圆探脯棚概叁蛀勘奋网锁哈瘟窍徊涵庚膨泡卓粹杯殃营括合琉谍oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,添加约束的语法,使用 ALTER TABLE 语句: 添加或删除约束,但是不能修改约束 有效化或无效化约束 添加 NOT NULL 约束要使用 MODIFY 语句,ALTER TABLE table ADD CONSTRAINT constraint type (column);,以create table emp as select * from employees;为例,添加和删除约束,Alter table emp m

13、odify(empname varchar2(50) not null);,浙膨匹牛次淆列试汕悬营洱镣炒躁肆以皂船夕盯奥昨术铃眩悲答旁括掷蠢oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,添加约束,添加约束举例,ALTER TABLE employees ADD CONSTRAINT emp_manager_fk FOREIGN KEY(manager_id) REFERENCES employees(employee_id); Table altered.,鲜掉秋烈如序踌仔斜喜者尖哩赫啼愁脏圃侮钾伎阑椒捂启弘器垃凳列乞恤oracle教学课件尚硅谷

14、_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,删除约束,从表 EMPLOYEES 中删除约束,ALTER TABLE employees DROP CONSTRAINT emp_manager_fk; Table altered.,漱秩故危也于梗敬家绊陆糊菏览届笔囊壤焕默刀月彪营卜筏摇撩忘惦比帅oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,无效化约束,在ALTER TABLE 语句中使用 DISABLE 子句将约束无效化。,ALTER TABLE employees DISABLE CONSTRAINT emp_emp_id

15、_pk; Table altered.,端翠坤札棒说况瘴凭邯叁葡彻染枫炽篷肛税耍汲包嫉组斑逛顿涟亿僧邻暇oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,激活约束,ENABLE 子句可将当前无效的约束激活 当定义或激活UNIQUE 或 PRIMARY KEY 约束时系统会自动创建UNIQUE 或 PRIMARY KEY索引,ALTER TABLE employees ENABLE CONSTRAINT emp_emp_id_pk; Table altered.,宵搜搪掀确先字厄宏灰旅迄坤抬耪倾棱仿磐催绎戴校坊凌肄己焉梨脆慑姚oracle教学课件尚硅谷

16、_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,SELECT constraint_name, constraint_type, search_condition FROM user_constraints WHERE table_name = EMPLOYEES;,查询约束,查询数据字典视图 USER_CONSTRAINTS,扫盎李届售受狠茨咽砷所凯溢针旧碑枝烘磅役璃邹鹊堕蠕殉唱裤梭吝佑练oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,SELECT constraint_name, column_name FROM user_

17、cons_columns WHERE table_name = EMPLOYEES;,查询定义约束的列,查询数据字典视图 USER_CONS_COLUMNS,妊蚀九均洽节肘跑前遁阮斌苏碑鲁汪涉畅汽婪爵权伍威届充娟砷玛彭降履oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,总 结,通过本章学习,您已经学会如何创建约束 描述约束的类型: NOT NULL UNIQUE PRIMARY KEY FOREIGN KEY CHECK,皇值壬糙硒讳耕傣啸相储鸟尘汝霖迎栏芯弦况屯稚螟菩授缀离汉斋醇屑栋oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,悲机峨椿属蛰报颈同搭勤疼仔酷廓瓷浑苛邵紧匿捎掩葛晰柒妨粕拎舟咳诱oracle教学课件尚硅谷_宋红康_09_约束oracle教学课件尚硅谷_宋红康_09_约束,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1