SQL实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

例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:规定学生表的性别字段不允许为空值

代码:

--E6

alter table Student alter column性别char(2)not null;

例7:删除课程表中的责任教师列

代码:

--E7

alter table Course drop constraint Duty_Teacher

alter table Course drop column责任教师;

例8:为课程表增加责任教师列,列描述如下:

字符类型,长度为10;

允许空值;

代码:

--E8

alter table Course add责任教师char(10)null

constraint newdt foreign key references Teacher(教师编号);

例9: 插入院系表的第1个元组(记录)

代码:

--E9

insert into Department (编号,名称,负责人,办公地点)

values(01,'信息管理学院','李嘉','教一楼层');

例10 省略列名、插入院系表的第2个元组

代码:

--E10

insert into Department values(02,'经济管理学院','吴鸿忠','教三楼层');例14:插入学生表的第1个元组

相关文档
最新文档