欢迎访问我的学
仲恺农业工程学院实验报告
课程名称:数据库原理及应用 实验名称:实验一 数据库及表的创建与管理
信息科学与技术学院 21信管 专业 3 班 学号: 202110234319
姓名: 詹诺希
实验一 数据库及表的创建与管理
一、实验目的
1、掌握用对象资源管理器(SSMS)和Transact-SQL创建、查看、修改、删除数据库方法;
2、掌握数据库的分离和附加方法;
3、掌握用SSMS和Transact-SQL语句创建、修改、删除表及向其添加数据的方法。
二、实验要求
1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;
2、能认真独立完成实训内容;
3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验学时
4学时
四、实验内容
1、用SSMS在 “对象资源管理器”中完成如下任务:
(1)建立一个学生课程数据库。具体文件属性如下表:
参数 |
参数值 |
数据库名 |
Student |
逻辑数据文件名 |
Student_dat |
操作系统数据文件名 |
D:\ Student_dat.mdf |
数据文件的初始大小 |
10MB |
数据文件的最大大小 |
100MB |
数据文件增长幅度 |
10% |
日志逻辑文件名 |
Student_log |
操作系统日志文件名 |
D:\ Student_log.ldf |
日志文件初始大小 |
5MB |
日志文件增长幅度 |
10 |
(2)再修改学生课程数据库Student的主数据文件的大小,使其扩大两倍,然后查看扩大后的数据库属性。
2、用SSMS,在数据库Student中:
(1)创建如下四个表,并设置相关的约束条件:
S
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
主键 |
Sname |
姓名 |
字符(10) |
非空,唯一 |
Ssex |
性别 |
字符(2) |
取‘男’或‘女’ |
Sage |
年龄 |
短整形 |
|
Sdept |
院系 |
字符(20) |
可取空,默认 ‘计算机系’ |
Course
列名 |
说明 |
数据类型 |
约束 |
Cno |
课程号 |
字符(4) |
主键 |
Cname |
课程名 |
字符(10) |
非空 |
Tno |
教师号 |
整形 |
非空 |
SC
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
外键 |
Cno |
课程号 |
字符(4) |
外键 |
Grade |
成绩 |
整数 |
取0~100 |
Teacher
列名 |
说明 |
数据类型 |
约束 |
Tno |
教师号 |
整形 |
主键 |
Tname |
教师名 |
字符(10) |
|
Sdept |
院系 |
字符(20) |
可取空,默认 ‘计算机系’ |
(2) 用SSMS修改将刚才所创建表:
①在Course表中插入如下两列:
列名 |
说明 |
数据类型 |
约束 |
Cpno |
先行课 |
字符(4) |
|
Ccredit |
学分 |
整数 |
非空 |
②将SC表中列Grade的类型改为smallint
③在S表中创建CHECK约束,约束名为Sagechk,要求实现年龄在15~45取值
④在Course表中创建外键约束,约束名为Fk_Tno,要求实现Course表中的Tno必须参照Teacher表的Tno取值。
⑤删除Course表中Tno列
(3)删除将刚才所创建Teacher表
(4)向表插入以下数据
S
Sno |
Sname |
Ssex |
Sage |
Sdept |
|||||
1001 |
王勇 |
男 |
20 |
电子系 |
|||||
1002 |
刘梅 |
女 |
19 |
计算机系 |
|||||
1003 |
王芳 |
女 |
18 |
网络系 |
|||||
1004 |
张兵 |
男 |
17 |
软件系 |
Course
Cno |
Cname |
Cpno |
Ccredit |
1 |
数据库 |
5 |
4 |
2 |
数学 |
NULL |
2 |
3 |
信息系统 |
1 |
4 |
4 |
操作系统 |
6 |
3 |
5 |
数据结构 |
7 |
4 |
6 |
数据处理 |
NULL |
2 |
7 |
C++程序设计语言 |
6 |
4 |
SC
Sno |
Cno |
Grade |
1001 |
1 |
92 |
1001 |
2 |
85 |
1001 |
3 |
88 |
1002 |
2 |
90 |
1003 |
2 |
55 |
1004 |
2 |
70 |
3、用SSMS方法完成如下数据库的分离和附加:
(1)分离Student数据库
⑵附加Student数据库
4、用T-SQL语句完成如下任务:
(1)建立一个学生课程数据库。具体文件属性如下表:
参数 |
参数值 |
数据库名 |
Student1 |
逻辑数据文件名 |
Student0_dat |
操作系统数据文件名 |
D:\ Student0_dat.mdf |
数据文件的初始大小 |
10MB |
数据文件的最大大小 |
100MB |
数据文件增长幅度 |
10% |
日志逻辑文件名 |
Student0_log |
操作系统日志文件名 |
D:\ Student0_log.ldf |
日志文件初始大小 |
5MB |
日志文件增长幅度 |
10 |
(2)用T-SQL语句为Student1数据库添加一个大小为10MB的次数据文件。次数据文件的逻辑文件名和物理文件名分别为:Student1_dat、D:\ Student1_dat.mdf,其它设置与日志文件相同。
(3)用存储过程sp_helpdb [[@dbname=] 'name'] 、sp_helpfile [[@filename =] 'name']
分别用于查看该数据库结构信息及相应的文件信息是否正确。
5、在数据库Student1中,用T-SQL语句,完成下列表的创建、修改、删除及数据的插入:
(1)创建如下四个表
S
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
主键 |
Sname |
姓名 |
字符(10) |
非空,唯一 |
Ssex |
性别 |
字符(2) |
取‘男’或‘女’ |
Sage |
年龄 |
短整形 |
|
Sdept |
院系 |
字符(20) |
可取空,默认 ‘计算机系’ |
Course
列名 |
说明 |
数据类型 |
约束 |
Cno |
课程号 |
字符(4) |
主键 |
Cname |
课程名 |
字符(10) |
非空 |
Tno |
教师号 |
整形 |
非空 |
SC
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
外键 |
Cno |
课程号 |
字符(4) |
外键 |
Grade |
成绩 |
整数 |
取0~100 |
Teacher
列名 |
说明 |
数据类型 |
约束 |
Tno |
教师号 |
整形 |
主键 |
Tname |
教师名 |
字符(10) |
|
Sdept |
院系 |
字符(20) |
可取空,默认 ‘计算机系’ |
(2)修改刚才所创建表:
①在Course表中插入如下两列:
列名 |
说明 |
数据类型 |
约束 |
Cpno |
先行课 |
字符(4) |
|
Ccredit |
学分 |
整数 |
非空 |
②将SC表中列Grade的类型改为smallint
③在S表中创建CHECK约束,约束名为Sagechk,要求实现年龄在15~45取值
④在Course表中创建外键约束,约束名为Fk_Tno,要求实现Course表中的Tno必须参照Teacher表的Tno取值。
⑤删除Course表中Teacher列
(3)删除将刚才所创建Teacher表
(4)向表插入以下数据
S
Sno |
Sname |
Ssex |
Sage |
Sdept |
1001 |
王勇 |
男 |
20 |
电子系 |
1002 |
刘梅 |
女 |
19 |
计算机系 |
1003 |
王芳 |
女 |
18 |
网络系 |
1004 |
张兵 |
男 |
17 |
软件系 |
Course
Cno |
Cname |
Cpno |
Ccredit |
1 |
数据库 |
5 |
4 |
2 |
数学 |
NULL |
2 |
3 |
信息系统 |
1 |
4 |
4 |
操作系统 |
6 |
3 |
5 |
数据结构 |
7 |
4 |
6 |
数据处理 |
NULL |
2 |
7 |
C++程序设计语言 |
6 |
4 |
SC
Sno |
Cno |
Grade |
1001 |
1 |
92 |
1001 |
2 |
85 |
1001 |
3 |
88 |
1002 |
2 |
90 |
1003 |
2 |
55 |
1004 |
2 |
70 |
6、用T-SQL完成如下数据库的分离和附加:
(1)分离Student1数据库
⑵附加Student1数据库
者主页,您可以通过学者主页了解我的学术研究动态!