【实验十四】创建表的约束

 1、创建第1个主键约束,要求如下:
         1)①--- 以system用户登录,
         2)①--- 约束名命名规范:约束字段名_表名_pk,
         3)①--- 目标表为“全局临时表”,
         4)①--- 主键字段为“课程编号”,
         5)①--- 支持延迟检查特性为“支持”,
         6)①--- 当前检查方式为立即检查,
         7)①--- 状态值:已有记录满足约束条件,新加或修改记录满足约束条件,
         8)①--- 与主键相关索引信息:
         9)①------- 索引名命名规范:索引字段名_表名_ind,
        10)①------- 初始事务位置数为16。
     2、创建第2个主键约束,要求如下:
         1)②--- 以system用户登录,
         2)②--- 约束名命名规范:约束字段名_表名_pk,
         3)②--- 目标表为“第2个簇表”,
         4)②--- 主键字段为“系编号”,
         5)②--- 支持延迟检查特性为“不支持”,
         6)②--- 状态值:不允许添加或修改记录。
     3、创建第1个外键约束,要求如下:
         1)③--- 以system用户登录,
         2)③--- 外键命名规范:约束字段名_表名_rk,
         3)③--- 目标表为“分区表”,
         4)③--- 外键字段为“上级主管”,
         5)③--- 参照表为“分区表”,
         6)③--- 参照字段为“员工号”,
         7)③--- 参照约束名命名规范:约束字段名_表名_pk,
         8)③--- 延迟检查特性为“不支持”,
         9)③--- 状态值为“约束好像没有定义”,
        10)③--- 外键删除规则为“父表删除记录,子表有对应记录的外键字段会置空”。
     4、创建第2个外键约束,要求如下:
         1)④--- 以system用户登录,
         2)④--- 外键命名规范:约束字段名_表名_rk,
         3)④--- 目标表为“包含大对象段的表”,
         4)④--- 外键字段为“构成零件”,
         5)④--- 参照表为“包含大对象段的表”,
         6)④--- 参照字段为“件号”,
         7)④--- 参照约束名命名规范:约束字段名_表名_pk,
         8)④--- 延迟检查特性为“支持”,
         9)④--- 当前检查方式为“立即检查”,
        10)④--- 状态值为“已有记录满足约束条件,新加或修改记录满足约束条件”,
        11)④--- 外键删除规则为“父表删除记录,子表对应记录一起删除”。
     5、创建第1个非空约束(第1种方法),要求如下:
         1)⑤--- 以system用户登录,
         2)⑤--- 非空约束命名规范:约束字段名_表名_nk,
         3)⑤--- 目标表为“全局临时表”,
         4)⑤--- 非空约束字段名“所属专业”,
         5)⑤--- 状态值为“不允许添加或修改记录”。
     6、创建第2个非空约束(第2种方法),要求如下:
         1)⑥--- 以system用户登录,
         2)⑥--- 非空约束命名规范:约束字段名_表名_nk,
         3)⑥--- 目标表为“包含大对象段的表”,
         4)⑥--- 非空约束字段名“工件名”,
         5)⑥--- 延迟检查特性为“支持”,
         6)⑥--- 当前检查方式为“延迟检查”,
         7)⑥--- 状态值为“不允许添加或修改记录”。
     7、创建第1个唯一约束,要求如下:
         1)⑦--- 以system用户登录,
         2)⑦--- 约束名命名规范:约束字段名_表名_uk,
         3)⑦--- 目标表为“第2个簇表”,
         4)⑦--- 唯一约束字段为“所属系”,
         5)⑦--- 支持延迟检查特性为“不支持”,
         6)⑦--- 状态值:约束好像没有定义。
     8、创建第2个唯一约束,要求如下:
         1)⑧--- 以system用户登录,
         2)⑧--- 约束名命名规范:约束字段名_表名_uk,
         3)⑧--- 目标表为“索引组织的表”,
         4)⑧--- 唯一约束字段为“课程名称”,
         5)⑧--- 支持延迟检查特性为“支持”,
         6)⑧--- 当前检查方式为立即检查,
         7)⑧--- 状态值:已有记录不需要满足约束条件,新加或修改记录满足约束条件,
         8)⑧--- 与唯一约束相关索引信息:
         9)⑧------- 索引名命名规范:索引字段名_表名_ind,
        10)⑧------- 初始事务位置数为19,
        11)⑧------- 缓存池为一直保留,
        12)⑧------- 存储表空间为第2个索引表空间。
    9、创建第1个检查约束(使用between and实现),要求如下:
         1)⑨--- 以system用户登录,
         2)⑨--- 检查约束命名规范:约束字段名_表名_ck,
         3)⑨--- 目标表为“全局临时表”,
         4)⑨--- 检查约束字段名为“学分”,
         5)⑨--- 检查约束字段下界值1,
         6)⑨--- 检查约束字段上界值8,
         7)⑨--- 支持延迟检查特性为“支持”,
         8)⑨--- 当前检查方式为延迟检查,
         9)⑨--- 状态值为“约束好像没有定义”。
    10、创建第2个检查约束(使用x>=a and x<=b实现),要求如下:
         1)⑩--- 以system用户登录,
         2)⑩--- 检查约束命名规范:约束字段名_表名_ck,
         3)⑩--- 目标表为“分区表”,
         4)⑩--- 检查约束字段名为“薪水”,
         5)⑩--- 检查约束字段下界值1800,
         6)⑩--- 检查约束字段上界值1000000,
         7)⑩--- 支持延迟检查特性为“不支持”,
         8)⑩--- 状态值为“已有记录满足约束条件,新加或修改记录满足约束条件”。

//主键
//第一个

Alter table RJCOU136 add constraint cno_RJCOU136_pk primary key(cno) deferrable initially immediate;

alter index cno_RJCOU136_pk rename to cno_RJCOU136_ind;

alter index cno_RJCOU136_ind initrans 16 ;

//第二个

Alter table RJDEPT365 add constraint dept_dno_RJDEPT365_pk primary key(dept_dno);

alter table RJDEPT365 disable validate constraint dept_dno_RJDEPT365_pk;
外键
//第三个
Alter table RJEMP381 add constraint emanager_RJEMP381_rk foreign key(emanager) references RJEMP381(eno) on delete set null;

Alter table RJEMP381 add constraint eno_RJEMP381_pk primary key(eno);


select * from RJEMP381; 

update RJEMP381 set emanager=eno;

alter table RJEMP381 disable novalidate constraint emanager_RJEMP381_rk;

//第四个
Alter table RJPAR643 add constraint parsub_RJPAR643_rk foreign key(parsub) references RJPAR643(parid)  on delete cascade deferrable initially immediate;

Alter table RJPAR643 add constraint parid_RJPAR643_pk primary key(parid);

select * from RJPAR643; 

update RJPAR643 set parsub=parid;
///非空
//第五个
Alter table RJCOU136  modify cprof not null;

select * from user_constraints where table_name='RJCOU136';

Alter table RJCOU136 rename constraint  SYS_C006198 to cprof_RJCOU136_nk;

//第六个
Alter table RJPAR643 add constraint parpname_RJPAR643_nk check(parpname is not null) deferrable initially deferred;

alter table RJPAR643 disable validate constraint parpname_RJPAR643_nk;
//唯一
//第七个
Alter table RJDEPT365 add constraint dept_dname_RJDEPT365_uk unique(dept_dname);

alter table RJDEPT365 disable novalidate constraint dept_dname_RJDEPT365_uk;

//第八个

Alter table RJCOU742 add constraint cname_RJCOU742_uk unique(cname) deferrable initially immediate;

alter table RJCOU742 enable novalidate constraint cname_RJCOU742_uk;


alter index cname_RJCOU742_uk rename to cname_RJCOU742_ind;

alter index cname_RJCOU742_ind initrans 19 storage (buffer_pool keep); 
alter index cname_RJCOU742_ind rebuild tablespace TDI_502;
///检查
//第九个

Alter table RJCOU136 add constraint clevel_RJCOU136_ck check(clevel between 1 and 8 ) deferrable initially deferred;

alter table RJCOU136 disable novalidate constraint clevel_RJCOU136_ck;
//第十个
Alter table RJEMP381 add constraint eincome_RJEMP381_ck check(eincome>=1800 and eincome<=1000000);

update RJEMP381 set eincome= eincome+2000;

  • 4
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值