实验2-2、基本表的创建与约束机制
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验二基本表的创建与约束机制
1、约束的类别
Primary key 主键约束
Foreign key 外键约束
Unique 唯一值约束
Default 默认值约束
Check 检查约束
2、约束的创建方式举例(请按要求完成以下实验任务)
创建方式有两种,一种是SQL,一种是SSMS,所有操作请在以自己姓名命名的数据库下进行,并及时刷新对象资源管理器查阅执行结果。
代码按照“实验须知”中要求的命名方式存储在.sql文件中。
注:遇到问题时可查阅实验2-1和2-2文档中的示例。
创建以“自己姓名_library”为名的数据库,并在此数据库中创建“图书”、“出版社”、“学生”以及“借阅”四张表(不指定创建方式,自由选择)。
表结构如下
“出版社”表结构
“借阅”表结构
T-sql语句实现约束(实践部分)
完成以下实验要求,并在实验报告上认真如实记录实验数据。
(第二次要求写成报告的实验)
1、利用T-SQL语句在library数据库中做出以下修改。
(1)利用T-SQL语句在“学生”表中增加列“民族”,数据类型为varchar(6),默认值为“汉”。
(2)在“学生”表中修改列“姓名”,数据类型为char(20)。
(3)在“借阅”表中增加列“到期日期”,数据类型为datetime。
说明,datetime为日期型。
2、利用T-SQL语句在library数据库中添加以下约束:(自行验证约束是否设置成功)(1)为“学生”表定义主键列,主键列为“学号”。
(2)在“借阅”表中添加一默认约束default,借书日期默认值为getdate()。
(3)为“借阅”表的“学号”列设置foreign key约束,“学号”列外键约束于“学生”表中的“学号”列。
(4)为“学生”表中“学号”列设置check约束,要求输入的学号是必须数字形式。
说明:以上各约束名可自定义。
原则知名达意。
3、利用t-sql语句在library数据库中做以下数据操作:
(1)在“学生”表中插入一条记录,记录信息为(“08010110”,“张敏”,“女”,“计算机系”)。
(2)对于library数据库中的学生,图书,出版社,借阅四个表,注意相应的约束条件,自行插入不少于2条记录。
(3)更新学号为08021102同学的院系为“电子系”。
(更新记录不可为空,自己想办法!)
实验要求:
1、本次实验中所有代码保存在一个.sql文件中,每位同学以“实验须知”中的命名方式命名文档,并将电子档提交给学习委员,由学委收集整理,以专业和班级命名打包文件,并另建一个文档注明未交者的学号及姓名,一并提交到黄老师邮箱958865887@。
2、根据实验内容和每一步骤实验的结果,按课程实验报告的撰写规范完成实验报告。
报告可用手写或打印,格式一定要规范。
3、实验报告至少包括以下内容:①实验目的;②实验环境;③实验内容、步骤、结果和实验过程中出现的问题;④实验过程中主要使用的Transact-SQL语句。
4、实验报告由每班学习委员统一收齐,并于下一次上课前上交。
示例2-1-1为学生表的sno 字段创建一个主键约束
示例2-1-2为学生表的sno 字段增加一个主键约束
【思考】在实际操作中,增加主键约束时,对于最初建表中的字段有什么限制条件?并进一步思考在缺省状态下,系统默认在建表时字段允许为空还是不允许为空?
示例2-1-3 利用SSMS 工具
示例2-2-1为选修表的sno字段创建一个外键约束
示例2-2-2为选修表的cno字段增加一个外键约束
示例2-2-3利用SSMS工具
示例2-3-1为学生表的sname字段创建一个唯一值约束
示例2-3-2为课程表的cname字段增加一个唯一值约束
【思考】唯一值和主键的区别?
示例2-3-3利用SSMS工具
示例2-4-1为学生表的ssex 字段创建一个默认值为‘男’的约束
示例2-4-2为上述学生表的nation 字段增加一个默认值为‘汉族’的约束
示例2-4-3利用SSMS 工具
示例2-5-1为选修表的grade 字段创建一个检查约束,其取值范围0-100
示例2-5-2为学生表的sno 字段增加一个检查约束,只能由纯数字充当学号。
示例2-5-3利用SSMS 工具
【课后作业】
根据下列各表中的说明部分,自行设置相应约束。
设置完后插入合理的原始数据。
各表中原始数据不可少于10条。