1.实验目的
通过本次实验使学生掌握如何实现SQL的数据完整性。
2.实验内容
- 约束的创建
3.实验环境
- Windows
- SQL Server
4.实验步骤及结果
- 创建一个数据库,文件名为“教学”
- 打开“教学”数据库
Student 表
S# | Sname | Age | Ssex |
---|---|---|---|
S1 | WANG | 15 | 男 |
S2 | LI | 17 | 女 |
S3 | LU | 19 | 女 |
S4 | ZHAO | 13 | 女 |
S5 | YANG | 20 | 男 |
Course表
C# | Cname | T# |
---|---|---|
C1 | Maths | T1 |
C2 | DB | T2 |
C3 | English | T3 |
C4 | Computer | T2 |
SC表
S# | C# | Score |
---|---|---|
S1 | C1 | 50 |
S2 | C1 | 70 |
S3 | C1 | 80 |
S4 | C1 | 75 |
S5 | C1 | 87 |
S1 | C2 | |
S2 | C2 | |
S4 | C2 | 85 |
S1 | C3 | |
S5 | C4 | 60 |
S4 | C4 | 45 |
Title表
T# | Tname | Title |
---|---|---|
T1 | 吴恩达 | 教师 |
T2 | 刘晓庆 | 教授 |
T3 | 张龙 | 副教授 |
注明:表格和下面的代码可能不会一一对应,可能需要增加,删除,更改表中的数据
大家也可参照我的提供的代码自行创建数据库
- 输入如下数据:
1)在教学数据库中创建一个s表,将s#指定为主键。在教学数据库中创建一个sc表,设置s#,c#为主键,约束名为pk_ s_ c (用命令方式)
参考提供的代码自行创建数据库,不多赘述
2) t表,c表,分别设置相应主键。
参考提供的代码自行创建数据库,不多赘述
3) 在教学数据库中,对“Student”表中的Sname字段创建一一个唯一约束。
Alter table student
Add constraint sname
Unique nonclustered(sname)
go
4) 在教学数据库中为“Student”表中出生日期字段创建-一个检查约束,以保证输入的数据大于1980年1月1日而小于当天日期。
Alter table student
Add constraint check_birth
Check (Birthday>'01/01/1980' and Birthday<getdate())
go
5) 在教学数据库中为“”表中Title"字段创建一一个默认约束, 其默认值为“讲师”
Alter table Title
Add constraint moren
Default'讲师'for title
go
6) 在教学数据库中字段创建合理的外键约束。
Alter table course
Add constraint
fk_course_t#_title_t# foreign key (t#)
References title (t#);
go
Alter table sc
Add constraint
fk_sc_s#_student_s# foreign key (s#)
References student (s#);
go
Alter table sc
Add constraint
fk_sc_c#_course_c# foreign key (c#)
References course (c#);
go