考核内容
1、连接信息检测,要求如下:
1)保证第2次实验中服务器端配置的第1个监听端口可以正常工作,
2)保证使用第2次实验中客户端配置的第5个服务命名可以成功创建会话。
2、创建第1个主键约束,要求如下:
1)①以system用户登录,
2)①--- 约束名命名规范:p_表名_约束字段名,
3)①--- 目标表为“全局临时表”,
4)①--- 主键字段为“件号”,
5)①--- 支持延迟检查特性:不支持,
6)①--- 状态值:约束好像没有定义。
3、创建第2个主键约束,要求如下:
1)②以system用户登录,
2)②--- 约束名命名规范:p_表名_约束字段名,
3)②--- 目标表为“分区表”,
4)②--- 主键字段为“件号”,
5)②--- 支持延迟检查特性:支持,
6)②--- 当前检查方式:延迟检查,
7)②--- 状态值:已有记录满足约束条件,新加或修改记录满足约束条件,
8)②--- 与主键相关索引信息:
9)②------- 索引名命名规范:i_表名_索引字段名,
10)②------- 初始事务位置数为27,
11)②------- 缓存池:一直保留,
12)②------- 存储表空间:第3个索引表空间。
4、创建第1个外键约束,要求如下:
1)③以system用户登录,
2)③--- 外键命名规范:r_表名_约束字段名,
3)③--- 目标表为“第1个簇表”,
4)③--- 外键字段为“专业号”,
5)③--- 参照表为“专业表-簇表2”,
6)③--- 参照字段为“专业序号”,
7)③--- 参照约束名命名规范:p_表名_约束字段名,
8)③--- 延迟检查特性:不支持,
9)③--- 状态值:不允许添加或修改记录,
10)③--- 外键删除规则:在子表有对应记录的父表记录不能删除。
5、创建第2个外键约束,要求如下:
1)④以system用户登录,
2)④--- 外键命名规范:r_表名_约束字段名,
3)④--- 目标表为“索引组织的表”,
4)④--- 外键字段为“主管”,
5)④--- 参照表为“索引组织的表”,
6)④--- 参照字段为“员工编号”,
7)④--- 参照约束名命名规范:p_表名_约束字段名,
8)④--- 延迟检查特性:支持,
9)④--- 当前检查方式:延迟检查,
10)④--- 状态值:约束好像没有定义,
11)④--- 外键删除规则:父表删除记录,子表对应记录一起删除。
6、创建第1个非空约束(第1种方法),要求如下:
1)⑤以system用户登录,
2)⑤--- 非空约束命名规范:n_表名_约束字段名,
3)⑤--- 目标表为“第1个簇表”,
4)⑤--- 非空约束字段名“课程名称”,
5)⑤--- 延迟检查特性:不支持,
6)⑤--- 状态值:约束好像没有定义。
7、创建第2个非空约束(第2种方法),要求如下:
1)⑥以system用户登录,
2)⑥--- 非空约束命名规范:n_表名_约束字段名,
3)⑥--- 目标表为“包含大对象段的表”,
4)⑥--- 非空约束字段名“系名称”,
5)⑥--- 延迟检查特性:支持,
6)⑥--- 当前检查方式:延迟检查,
7)⑥--- 状态值:已有记录不知道是否满足约束条件,新加或修改记录必须满足约束条件。
8、创建第1个唯一约束,要求如下:
1)⑦以system用户登录,
2)⑦--- 约束名命名规范:u_表名_约束字段名,
3)⑦--- 目标表为“全局临时表”,
4)⑦--- 唯一约束字段为“零件名”,
5)⑦--- 支持延迟检查特性:不支持,
6)⑦--- 状态值:约束好像没有定义。
9、创建第2个唯一约束,要求如下:
1)⑧以system用户登录,
2)⑧--- 约束名命名规范:u_表名_约束字段名,
3)⑧--- 目标表为“分区表”,
4)⑧--- 唯一约束字段为“零件名”,
5)⑧--- 支持延迟检查特性:支持,
6)⑧--- 当前检查方式:延迟检查,
7)⑧--- 状态值:已有记录满足约束条件,新加或修改记录满足约束条件,
8)⑧--- 与唯一约束相关索引信息:
9)⑧------- 索引名命名规范:i_表名_索引字段名,
10)⑧------- 初始事务位置数为9,
11)⑧------- 缓存池:一直保留,
12)⑧------- 存储表空间:第3个索引表空间。
10、创建第1个检查约束(使用between and实现),要求如下:
1)⑨以system用户登录,
2)⑨--- 检查约束命名规范:c_表名_约束字段名,
3)⑨--- 目标表为“第1个簇表”,
4)⑨--- 检查约束字段名为“课程学分”,
5)⑨--- 检查约束字段下界值为2,
6)⑨--- 检查约束字段上界值为8,
7)⑨--- 支持延迟检查特性:不支持,
8)⑨--- 状态值:已有记录不知道是否满足约束条件,新加或修改记录必须满足约束条件。
11、创建第2个检查约束(使用x>=a and x<=b实现),要求如下:
1)⑩以system用户登录,
2)⑩--- 检查约束命名规范:c_表名_约束字段名,
3)⑩--- 目标表为“索引组织的表”,
4)⑩--- 检查约束字段名为“工资”,
5)⑩--- 检查约束字段下界值为1900,
6)⑩--- 检查约束字段上界值为1000000,
7)⑩--- 支持延迟检查特性:支持,
8)⑩--- 当前检查方式:延迟检查,
9)⑩--- 状态值:约束好像没有定义。
模板:
分区表:RJPAR671
索引组织:RJEMP882
大对象:RJSTU303
簇表1:RJCOU804
簇表2:RJSPEC835
全局临时表:RJPAR816
第1个索引表空间:TAI_544
第2个索引表空间:TDI_843
第3个索引表空间:THI_644
不允许添加或修改记录:disable validate
已有记录满足约束条件,新加或修改记录满足约束条件:enable validate(默认)
约束好像没有定义:disable novalidate
已有记录不需要满足约束条件,新加或修改记录满足约束条件:enable novalidate
支持 立即检查:deferrable initially immediate
支持 延迟检查:deferrable initially deferred
不支持:initially immediate(默认)
父表删除记录,子表有对应记录的外键字段会置空:on delete set null
父表删除记录,子表对应记录一起删除:on delete cascade
conn system/647001
“已有记录满足约束条件,新加或修改记录满足约束条件”和“不支持”可以不写,默认就是
创建主键约束:
Alter table 表名 add constraint 约束名 primary key(主键字段) 延迟检查 状态值;
alter index 约束名 rename to 索引名;
alter index 索引名 initrans 16;
//主键约束和唯一键约束会自动创建同名索引,所以要改名
创建外键约束:
Alter table 参照表表名 add constraint 约束名 primary key(参照字段);
Alter table 目标表 add constraint 约束名 foreign key(外键字段) references 参照表(参照字段) 删除规则 延迟检查 状态值;
创建第1个非空约束(第1种方法):
Alter table 目标表名 modify 非空约束字段名 not null 延迟检查 状态值;
select * from user_constraints where table_name='目标表名';
Alter table 目标表名 rename constraint 查到的约束名 to 题目要求约束名;
创建第2个非空约束(第2种方法),要求如下:
Alter table 目标表名 add constraint 约束名 check(非空约束字段名 is not null) 延迟检查 状态值;
创建唯一约束:
Alter table 目标表 add constraint 约束名 unique(唯一约束字段) 延迟检查 状态值;
alter index 约束名 rename to 题目要求索引名;
alter index 索引名 initrans 19 storage (buffer_pool keep);
//立即淘汰:buffer_pool Recycle
//一直保留:buffer_pool keep
alter index 索引名 rebuild tablespace 第几个索引表空间;
创建第1个检查约束(使用between and实现):
Alter table 目标表 add constraint 约束名 check(检查约束字段 between 1 and 8) 延迟检查 状态值;
创建第2个检查约束(使用x>=a and x<=b实现):
Alter table 目标表 add constraint 约束名 check(检查约束字段>=1800 and 检查约束字段<=1000000) 延迟检查 状态值;
代码:
conn system/647001
“已有记录满足约束条件,新加或修改记录满足约束条件”和“不支持”可以不写,默认就是
2、创建主键约束:
Alter table RJPAR816 add constraint p_RJPAR816_pno primary key(pno) disable novalidate;
3、创建主键约束:
Alter table RJPAR671 add constraint p_RJPAR671_pno primary key(pno) deferrable initially deferred;
alter index p_RJPAR671_pno rename to i_RJPAR671_pno;
alter index i_RJPAR671_pno initrans 27 storage (buffer_pool keep);
alter index i_RJPAR671_pno rebuild tablespace THI_644;
//主键约束和唯一键约束会自动创建同名索引,所以要改名
4、创建外键约束:
Alter table RJSPEC835 add constraint p_RJSPEC835_spec_spno primary key(spec_spno);//记得改记录
Alter table RJCOU804 add constraint r_RJCOU804_couspno foreign key(couspno) references RJSPEC835(spec_spno) disable validate;
5、创建外键约束:
Alter table RJEMP882 add constraint p_RJEMP882_e_no primary key(e_no);//之前建过主键,所以执行不了
alter table RJEMP882 rename constraint SYS_IOT_TOP_24028 to p_RJEMP882_e_no;//所以执行这个
Alter table RJEMP882 add constraint r_RJEMP882_e_manager foreign key(e_manager) references RJEMP882(e_no) on delete cascade deferrable initially deferred disable novalidate;
6、创建第1个非空约束(第1种方法):
Alter table RJCOU804 modify couname not null disable novalidate;
select * from user_constraints where table_name='RJCOU804';
Alter table RJCOU804 rename constraint 查到的约束名 to n_RJCOU804_couname;
7、创建第2个非空约束(第2种方法),要求如下:
Alter table RJSTU303 add constraint n_RJSTU303_s_dept check(s_dept is not null) deferrable initially deferred enable novalidate;
8、创建唯一约束:
Alter table RJPAR816 add constraint u_RJPAR816_pname unique(pname) disable novalidate;
9、创建唯一约束:
Alter table RJPAR671 add constraint u_RJPAR671_pname unique(pname) deferrable initially deferred;
alter index u_RJPAR671_pname rename to i_RJPAR671_pname;
alter index i_RJPAR671_pname initrans 9 storage (buffer_pool keep);
//立即淘汰:buffer_pool Recycle
//一直保留:buffer_pool keep
alter index i_RJPAR671_pname rebuild tablespace THI_644;
10、创建第1个检查约束(使用between and实现):
Alter table RJCOU804 add constraint c_RJCOU804_coulevel check(coulevel between 2 and 8) enable novalidate;
11、创建第2个检查约束(使用x>=a and x<=b实现):
Alter table RJEMP882 add constraint c_RJEMP882_e_income check(e_income>=1900 and e_income<=1000000) deferrable initially deferred disable novalidate;