版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Oracle数据库原理与应用2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用第12讲使用约束2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务任务1:定义表的列约束任务2:维护表的列约束2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用教学目标1、学会定义表的列约束2、学会维护表的列约束知识目标:能力目标:1、非空约束2、唯一约束3、主键约束4、外键约束5、检查约束6、复合约束2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表
2、的列约束任务1-1:定义非空约束任务1-2:定义唯一约束任务1-3:定义主键约束任务1-4:定义外键约束任务1-5:定义检查约束任务1-6:定义复合约束2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束create table emp02( empno number(4) not null, ename varchar2(14) constraint nn_emp02_ename not null, job varchar2(20), comm number(7,2), deptno number(2);任务1-1:定义非空约束(not null)例:
3、建立表emp02,字段empno和ename非空,empno由Oracle自动分配约束名,ename指定约束名nn_name。Not null约束用于确保列不能为null。如果列上定义了not null,插入或修改列时,改列要提供数据。2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用使用数据字典视图user_constraints查看约束:任务1:定义表的列约束任务1-1:定义非空约束(not null)select constraint_name,constraint_type from user_constraints where table_name=upper(e
4、mp02);使用数据字典视图user_cons_columns查看约束对应的表列:select column_name from user_cons_columns where constraint_name=upper(nn_emp02_ename);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-1:定义非空约束(not null)测试:SQL insert into emp02 (empno,job,comm) values (1000,工程师,300)ORA-01400: 无法将 NULL 插入 (SCOTT.EMP02.ENAME)
5、2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-1:定义非空约束(not null)练习:以scott用户登录test数据库,建立表author01,表结构如下:表名称列名约束数据类型缺省值注释Author01authornoNot nullNumber(3)anameNot nullVarchar2(10)salNumber(7,2)0deptnoNumber(2)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束create table dept02( deptno number(2) const
6、raint nn_deptno not null, dname varchar2(20) constraint uk_dept02_dname unique, loc varchar2(100), constraint uk_dept02_deptno unique(deptno);任务1-2:定义唯一约束(unique)例:建立部门表dept02,定义部门编号deptno为非空约束和唯一约束,部门名称dname为唯一约束。唯一约束(unique)用于唯一的标识数据,定义了唯一约束后,唯一约束的列值不能重复,但可以为空。2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务
7、1:定义表的列约束任务1-2:定义唯一约束(unique)测试:SQL insert into dept02 (deptno,dname,loc) values (10,销售部,上海); 1 row inserted SQL / insert into dept02 (deptno,dname,loc) values (10,销售部,上海)ORA-00001: 违反唯一约束条件 (SCOTT.UK_DEPT02_DNAME)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束练习:建立作者单位表dept01,表结构如下:表名称列名约束数据类型缺省值注释d
8、ept01deptnoNot nullNumber(2)dnameUniqueVarchar2(20)任务1-2:定义唯一约束(unique)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束create table dept03( deptno number(2) constraint pk_dept03_deptno primary key, dname varchar2(14), loc varchar2(100); 任务1-3:定义主键约束(primary key)例:创建dept03表,列deptno定义为主键约束唯一标识表的行,主键约束的列
9、上不仅不能重复,也不能为空。2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用测试:(1)insert into dept03 (deptno,dname,loc) values (10,研发部,上海); 1 row inserted (2)insert into dept03 (deptno,dname,loc) values (10,研发部,上海) ORA-00001: 违反唯一约束条件 (SCOTT.PK_DEPT03_DEPTNO) (3)insert into dept03 (dname,loc) values (研发部,上海); ORA-01400: 无法将 N
10、ULL 插入 (SCOTT.DEPT03.DEPTNO);任务1:定义表的列约束任务1-3:定义主键约束(primary key)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束练习1:以scott用户登录test数据库,建立表author02,表结构如下:任务1-3:定义主键约束(primary key)表名称列名约束数据类型缺省值注释Author02authornoPrimary key Number(3)anameNot nullVarchar2(10)salNumber(7,2)0deptnoNumber(2)练习2:建立作者单位表dept0
11、2,表结构如下:表名称列名约束数据类型缺省值注释dept02deptnoPrimary keyNumber(2)dnameUniqueVarchar2(20)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-4:定义外键约束(foreign key)References选项用于指定主表名及其主键列。当定义外部键约束时,该选项必须指定。例:创建表emp03,列deptno定义为外键,与dept02表主键列deptno关联。create table emp03( empno number(4) constraint pk_emp03_empno p
12、rimary key, ename varchar2(10) constraint uk_emp03_ename not null, job varchar2(15), sal number(7,2) default 0.00, deptno number(7,2) constraint fk_emp03_deptno references dept02(deptno);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-4:定义外键约束(foreign key)测试:(1)insert into emp03 (empno,ename,job,s
13、al,deptno) values (1234,郭永洪,系统分析员,3500,10); ORA-02291: 违反完整约束条件 (SCOTT.FK_EMP03_DEPTNO) - 未找到父项关键字 (2)insert into dept02 (deptno,dname,loc) values (10,上海,研发部);(3)重新执行(1)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-4:定义外键约束(foreign key)练习:建立表author03,列deptno与dept02表的列deptno建立主外键关系,表结构如下:表名称列名约束数
14、据类型缺省值注释Author03authornoPrimary keyNumber(3)anameNot nullVarchar2(10)salNumber(7,2)0deptnoForeign keyNumber(2)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-5:定义检查约束(check)Check约束用于强制列数据必须满足条件。例:建立表bonus02,列名empno number(4),sal number(7,2),范围0-10000,comm number(7,2),范围0-5000。create table bonus02(
15、 empno number(4), sal number(7,2) constraint ck_bonus02_sal check (sal between 0.00 and 10000.00), comm number(7,2), constraint ck_bonus02_comm check (comm between 0.00 and 5000.00);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-5:定义检查约束(check)测试:SQLinsert into bonus02 (empno,sal,comm) values (12
16、35,15000.00,4000.00) ORA-02290: 违反检查约束条件 (SCOTT.CK_BONUS02_SAL) SQLinsert into bonus02 (empno,sal,comm) values (1235,8000.00,6000.00) ORA-02290: 违反检查约束条件 (SCOTT.CK_BONUS02_COMM)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-5:定义检查约束(check)练习:建立表author04,列sal的取值范围为0-10000,表结构如下:表名称列名约束数据类型缺省值注释Aut
17、hor04authornoPrimary keyNumber(3)anameNot nullVarchar2(10)salcheckNumber(7,2)00-10000deptnoNumber(2)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-6:定义复合约束基于多列定义符合约束。例:建立学生选课表,依据学生编号(xsbh)和课程编号(kcbh)建立主键。create table xsxk( xsbh number(10), kcbh number(6), kcmc varchar2(30), constraint pk_xsxk_xsb
18、h_kcbh primary key (xsbh,kcbh);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-6:定义复合约束测试:SQL insert into xsxk (xsbh,kcbh,kcmc) values (1008203105,100000,Oracle数据库原理与应用); 1 row inserted SQL /insert into xsxk (xsbh,kcbh,kcmc) values (1008203105,100000,Oracle数据库原理与应用) ORA-00001: 违反唯一约束条件 (SCOTT.PK_X
19、SXK_XSBH_KCBH)2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务1:定义表的列约束任务1-6:定义复合约束练习:客户网上订购商品,一张订单必须包含订单号、客户编号和商品编号,对客户编号和商品编号使用复合约束。2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束任务2-2:修改约束名任务2-3:删除约束任务2-4:禁止约束任务2-5:激活约束2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束表emp01的结构:nametypenullab
20、ledefaultcommentsempnoNumber(4)Y雇员编号enameVarchar2(10)YjobVarchar2(15)YCLERKsalNumber(7,2)Y0.00commNumber(7,2)Y0.00deptnameVarchar2(14)Y2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束例1:增加非空约束,为emp01表的列empno增加非空约束。SQL alter table emp01 modify empno constraint nn_emp01_empno not null;例2:增加唯一约
21、束,为emp01表的列ename增加唯一约束。SQLalter table emp01 add constraint uk_emp01_ename unique(ename);例3:增加主键约束,为emp01表的列empno增加主键约束。SQLalter table emp01 add constraint pk_emp01_empno primary key(empno);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束例4:增加外键约束,为emp01表添加列deptno,为列empno增加外键约束。alter table em
22、p01add ( deptno number(2), constraint fk_emp01_deptno foreign key(deptno) references dept(deptno);例5:增加检查约束,为emp01表的列comm增加check约束,范围0-3000。SQLalter table emp01 add constraint ck_emp01_comm check(comm between 0 and 3000);2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束练习1:在表dept01中对列deptno添加
23、主键约束,表结构如下:表名称列名约束数据类型缺省值注释dept01deptnoPrimary keyNumber(2)dnameVarchar2(20)练习2:在表author中,增加一个列deptno与dept01的列deptno建立外键约束,表结构如下:表名称列名约束数据类型缺省值注释AuthorauthornoPrimary keyNumber(3)anameuniqueVarchar2(10)salcheckNumber(6,2)02022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-1:增加约束练习3:对author表的authorno列建立主键约束。练习4:对author表的aname列建立唯一约束和非空约束。练习5:对author表的sal列建立检查约束,检查范围0-8000。2022年3月1日星期二计算机(软件)学院Oracle数据库原理与应用任务2:维护表的列约束任务2-2:修改约束名例:将emp01表的主
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026事业单位工勤技能-新疆-新疆铸造工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-四川-四川热处理工五级(初级工)历年参考题库含答案详解3套试卷
- 2026年10月寒露主题教育 寒露习俗探秘
- 2025年黑龙江省东宁市《行测》考试备考题库【巩固】附答案详解
- 2025年黑龙江省宁安市《行测》考试考前冲刺密卷附参考答案详解(突破训练)
- 2026年河南省邓州市《行测》考试考前冲刺密卷附答案详解(基础题)
- (2026年)护理部工作总结
- 2026年河南省永城市《行测》考试备考题库及参考答案详解1套
- 2026年浙江省桐乡市《行测》考试备考题库附答案详解(综合卷)
- 2026年山东省莱州市《行测》考试模拟试卷(综合卷)附答案详解
- 2026年混凝土结构工程施工质量验收规范试题附答案
- 2026学年四川省攀枝花市二年级数学期末模考重点试题(附答案)详细答案和解析
- 2026年云南省政府采购评审专家题及答案(必刷)
- 2026年无人机UOM考试题库及答案详解
- 成都市2026年初中语文学业水平考试卷附答案解析
- 2026年海南省三沙市事业编单位人员招聘考试参考题库及答案详解
- 2026年江苏苏州相城区村(社区)工作者招聘考试面试试题-含参考答案
- 电力设施保护措施培训课件
- 2026年征兵心理测试题及答案
- DB12T 1459-2026中医技术操作规范 调理脾胃针法
- 2026年云南省中考道德与法治试卷
评论
0/150
提交评论