实验六 约束与索引

目录

一、第1关:添加约束一

1.1 任务描述

1.2 SQL语句

二、第2关:添加约束二

2.1 任务描述

2.2 SQL语句

三、第3关:添加约束三

3.2 SQL语句

四、第4关:创建索引

4.1 任务描述

4.2 SQL语句


一、第1关:添加约束一

1.1 任务描述

1、为Student表的Sage列添加约束,使其取值小于30岁(约束名:stu_chk_sage)

2、为student表的Ssex列添加约束,使其只能取值‘m’或‘f’(约束名:stu_chk_ssex)

3、为Student表的ssex列添加缺省约束,缺省值为‘m’(约束名:stu_def_ssex)

1.2 SQL语句

ALTER TABLE Student 
ADD CONSTRAINT stu_chk_sage 
CHECK(sage < 30);
ALTER TABLE Student 
ADD CONSTRAINT stu_chk_ssex 
CHECK(Ssex IN ('m','f'));
ALTER TABLE Student 
ADD CONSTRAINT stu_def_ssex 
DEFAULT 'm' FOR ssex;

二、第2关:添加约束二

2.1 任务描述

1、为SC表的sno列添加外码(约束名:stu_ref_sno)

2、为SC表的cno列添加外码(约束名:stu_ref_cno)

3、为SC表的grade列添加检查约束(1到100分)(约束名:stu_chk_grade)

2.2 SQL语句

ALTER TABLE SC 
ADD CONSTRAINT stu_ref_sno 
FOREIGN KEY(sno) 
REFERENCES Student(sno);
ALTER TABLE SC 
ADD CONSTRAINT stu_ref_cno 
FOREIGN KEY(cno)
REFERENCES Course(cno);
ALTER TABLE SC 
ADD CONSTRAINT stu_chk_grade 
CHECK(grade>=1 AND grade<=100);

三、第3关:添加约束三

3.1 任务描述

1、为Course表的cname列添加唯一约束(约束名:Course_un_cname)

2、为Course表的ccredit列添加检查约束,使其值为(1到10之间)(约束名:Course_chk_ccredit)

3、为Course表的cpno列添加外码约束(约束名:Course_ref_cpno)

3.2 SQL语句

ALTER TABLE Course 
ADD CONSTRAINT Course_un_cname 
UNIQUE(cname);
ALTER TABLE Course 
ADD CONSTRAINT Course_chk_ccredit 
CHECK(ccredit>=1 AND ccredit<=10);
ALTER TABLE Course 
ADD CONSTRAINT Course_ref_cpno 
FOREIGN KEY(cpno) 
REFERENCES Course(cno);

四、第4关:创建索引

4.1 任务描述

1、为Student表的sname列创建唯一索引(索引名:idx_student_sname)

2、为sc表的grade列创建降序索引(索引名:idx_sc_grade)

3、为course表的ccredit列创建升序索引(索引名:idx_course_cname)

4.2 SQL语句

CREATE UNIQUE INDEX idx_student_sname 
ON Student(sname);
CREATE INDEX idx_sc_grade 
ON SC(grade DESC);
CREATE INDEX idx_course_cname 
ON Course(ccredit ASC);

你可能感兴趣的:(数据库原理与应用,sql,数据库)