一、实验目的
1、掌握用SSMS或Transact-SQL创建、查看、修改、删除数据库的方法;
2、掌握数据库的备份和恢复方法;
3、掌握数据库的分离和附加方法;
4、掌握用SSMS或Transact-SQL语句创建、修改、删除表及向其添加数据的方法。
二、实验要求
1、实验前做好上机实验的准备,针对实验内容,认真复习与本次实验有关的知识,完成实验内容的预习准备工作;
2、能认真独立完成实训内容;
3、实验后做好实验总结,根据实验情况完成总结报告。
三、实验内容
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)创建如下四个表,并设置相关的约束条件:
|
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
主键 |
Sname |
姓名 |
字符(10) |
非空,唯一 |
Ssex |
性别 |
字符(2) |
取‘男’或‘女’ |
Sage |
年龄 |
短整形 |
|
Sdept |
院系 |
字符(20) |
可取空,默认 ‘计算机系’ |
|
列名 |
说明 |
数据类型 |
约束 |
Cno |
课程号 |
字符(4) |
主键 |
Cname |
课程名 |
字符(10) |
非空 |
Tno |
教师号 |
整形 |
非空 |
|
列名 |
说明 |
数据类型 |
约束 |
Sno |
学号 |
整形 |
外键 |
Cno |
课程号 |
字符(4) |
外键 |
Grade |
成绩 |
整数 |
取0~100 |
|
列名 |
说明 |
数据类型 |
约束 |
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)向表插入以下数据
|
Sno |
Sname |
Ssex |
Sage |
Sdept |
1001 |
王勇 |
男 |
20 |
电子系 |
1002 |
刘梅 |
女 |
19 |
计算机系 |
1003 |
王芳 |
女 |
18 |
网络系 |
1004 |
张兵 |
男 |
17 |
软件系 |
|
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 |
|
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. 用SSMS方法完成如下数据库的备份和恢复: (选作实验)
(1)备份数据库
①创建备份设备,其名称为bk_Student0,保存文件为D:\ Student0.bak,并对Student数据库进行完全备份,备份到备份设备bk_ Student0中。
②在Student数据库中,创建一张表temp1(学号,课程号,成绩,学分)并对Student数据库进行第一次差异备份,备份到备份设备bk_Student1中
③在Student数据库中,再创建一个用户表:temp2(学号,课程号,成绩,学分),并对Student数据库进行第二次差异备份,备份到备份设备bk_Student2中。
(2)删除Student数据库
(3)恢复数据库
①从备份设备bk_ Student0中恢复Student数据库,并查看表temp1和temp2是否存在?
② 再次删除数据库Student,然后将Student数据库恢复到第一次差异备份后的状态,并
查看表temp1和temp2是否存在?
③再次删除数据库Student,然后将Student数据库恢复到第二次差异备份后的状态,并查
看表temp1和temp2是否存在?