要求
针对如下表的结构进行下面实验
1. 用代码的方式为各表创建实体完整性规则;
2. 创建下面约束(约束均采用命名约束,名字自己确定):
(1)学生表:用代码的方式创建,“姓名”字段取值唯一;“性别” 只能取“男”和“女”,“年龄”大于等于15,小于等于45。
(2)教师表:用代码的方式建立一个规则,其条件中的值大于等于4000,小于等于20000,然后把该规则绑定到“sal” 属性上,“dept”属性建立一个默认值,其具体的值为“计算机”。
(3)课程表:以可视化方式创建,“chour”属性的取值范围是大于等于16而小于等于96, “Ccredit”属性取值限定为:大于等于2,小于等于8。
(4)sc表:用代码的方式创建约束:成绩score:大于等于0,而小于等于100;直接使用文字指明该表中是否有外键,如果有,请指出哪(个)些属性是该表的外键,并说明该外键引用于哪个表的哪个属性。
(5)tc表:直接使用文字指明该表中是否有外键,如果有,请指出哪(个)些属性是该表的外键,并说明该外键引用于哪个表的哪个属性。通过查阅本次实验ppt等资料尝试用可视化或者代码方式为该表建立一个外键(选作)。
过程
(1)学生表:用代码的方式创建,“姓名”字段取值唯一;“性别” 只能取“男”和“女”,“年龄”大于等于15,小于等于45。(注:其中将要求1融于要求2)
CREATE TABLE Student( Sno CHAR(6) PRIMARY KEY, Sname CHAR(8) UNIQUE, Sex CHAR(2), Age TINYINT, Dept CHAR(10), CONSTARINT CHECK_Sex CHECK(Sex ='男' OR Sex ='女'), CONSTARINT CHECK_Age CHECK(Age >=15 OR Age<=45) )
当学号不唯一,或则两个CHECK条件其中一个不符合,都会无法正常将数据录入数据中。
(2)教师表:用代码的方式建立一个规则,其条件中的值大于等于4000,小于等于20000,然后把该规则绑定到“sal” 属性上,“dept”属性建立一个默认值,其具体的值为“计算机”。
CREATE TABLE Teacher( Tno CHAR(6) PRIMARY KEY, Tname CHAR(8) UNIQUE, Sex CHAR(2) CONSTRAINT CHECK_TSEX CHECK(Sex='男' OR Sex='女'), Age TINYINT CONSTRAINT CHECK_TAGE CHECK(Age >=25 AND Age<=70), Prof CHAR(8), Sal INT CONSTRAINT CHECK_TSAL CHECK(Sal >=4000 AND Sal <=20000), Comm INT, Dept CHAR(10) DEFAULT '计算机')
对该表录入数据的时候存在四个约束条件,其中任何一个不满足都无法插入。
(3)课程表:以可视化方式创建,“chour”属性的取值范围是大于等于16而小于等于96, “Ccredit”属性取值限定为:大于等于2,小于等于8。
(4)sc表:用代码的方式创建约束:成绩score:大于等于0,而小于等于100;直接使用文字指明该表中是否有外键,如果有,请指出哪(个)些属性是该表的外键,并说明该外键引用于哪个表的哪个属性。有外键,选课表中的Sno,Cno是该表中的外键,Sno引用Student(Sno),Cno引用Course(Cno)
CREATE TABLE SC( Sno CHAR(6), Cno CHAR(6), Score INT CONSTRAINT CHECK_S CHECK(Score >=0 AND Score <=100), CONSTRAINT SC_SNO FOREIGN KEY(Sno) REFERENCES Student(Sno), CONSTRAINT SC_Cno FOREIGN KEY(Cno) REFERENCES Course(Cno) )
(5)tc表:直接使用文字指明该表中是否有外键,如果有,请指出哪(个)些属性是该表的外键,并说明该外键引用于哪个表的哪个属性。通过查阅本次实验ppt等资料尝试用可视化或者代码方式为该表建立一个外键(选作)。
该表中存在两个外键,一个是Tno,另外一个是Cno。Tno引用Teacher(Tno),Cno引用Course(Cno)
CREATE TABLE TC( Tno CHAR(6), Cno CHAR(6), CONSTRAINT TC_TNO FOREIGN KEY(Tno) REFERENCES Teacher(Tno), CONSTRAINT TC_Cno FOREIGN KEY(Cno) REFERENCES Course(Cno) )