SQL实验分析报告.docVIP

  • 183
  • 0
  • 约6.69千字
  • 约 19页
  • 2019-09-28 发布于江苏
  • 举报
SQL实验报告 PAGE PAGE 1 ———————————————————————————————— 作者: ———————————————————————————————— 日期: 例1:定义院系表,其中编号为主关键字,名称应该惟一、并且不允许为空值。 代码: --E1 create table Department (编号char(8) primary key, 名称char(40) unique not null, 负责人char(20), 办公地点char(20) ); 例2:定义学生表,其中规定: 学号列是主关键字; 院系列为计算列(取学号列的第3和第4个字符),并且院系值参照院系表的编号值(院系表是被参照表,主关键字是编号;参照表是学生表,外部关键字是院系),此约束说明一名学生一定属于某个院系; 姓名列不允许为空值; 性别必须取值“男”或“女”; 学生的学籍状态为正常、留级、休学或退学。 代码: --E2 create table Student (学号char(10) primary key, 院系as convert(char(8),substring(学号,3,2)) persisted not null foreign key (院系) references Department(编号), 姓名char(20) not null, 性别char(2) constraint c1 check (性别in (男,女)), 生源char(10), 状态char(4) constraint c2 check (状态in (正常,留级,休学,退学)) ); 例3:定义教师表,其中规定: 教师编号是主关键字; 院系列为计算列(取教师编号的第1和第2个字符),并且院系值参照院系表的编号值,此约束说明一名教师一定属于某个院系; 姓名列不允许为空值; 性别必须取值“男”或“女”; 职称的取值为教授、副教授、讲师或助教。 代码: --E3 create table Teacher (教师编号char(10) primary key, 院系as convert(char(8),substring(教师编号,1,2)) persisted not null foreign key (院系) references Department(编号), 姓名char(20) not null , 性别char(2) constraint c3 check(性别in (男,女)), 职称char(6) constraint c4 check(职称in (教授,副教授,讲师,助教)), 专业char(40) ); 例4:定义课程表,其中规定: 课程编号是主关键字; 课程名称不允许为空值; 责任教师参照教师表的教师编号值,此约束说明责任教师一定是已经在编的教师; 学时不允许为空值; 课程性质分为公共基础、专业基础、专业选修和任意选修。 代码: --E4 create table Course (课程编号char(8) primary key, 课程名称char(30) not null, 责任教师char(10) constraint Duty_Teacher foreign key (责任教师) references Teacher(教师编号), 学时smallint not null, 课程性质char(10) constraint c5 check(课程性质in (公共基础,专业基础,专业选修,任意选修)), ); 例5:定义选课表,其中规定: 学号和课程编号两列构成主关键字(需要表级完整性约束); 学号参照学生表的学号(约束选课的学生必须存在); 课程编号参照课程表的课程编号(约束被选的课程必须存在); 考试成绩取值在0~100之间,并且默认为空值。 代码: --E5 create table SC (学号char(10), 课程编号char(8), 考试成绩smallint constraint c6 check(考试成绩between 0 and 100) default null, primary key (学号,课程编号), foreign key (学号) references Student(学号), foreign key (课程编号) references Course(课程编号) ); 例6:规定学生表

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档