资源描述
GDOU-B-11-112
广东海洋大学学生实验报告书(学生用表)
实验名称
实验1数据库及其对象创立与管理
课程名称
数据库原理及应用
课程号
16732201
学院(系)
信息学院
专业
班级
学生姓名
学号
实验地点
实验日期
实验一 数据库及其对象创立与管理
一、实验目
1、掌握用SSMS或Transact-SQL语句创立、查看、修改、删除数据库办法;
2、掌握数据库备份和恢复办法;
3、掌握数据库分离和附加办法;
4、掌握用SSMS或Transact-SQL语句创立、修改、删除表及向其添加数据办法。
二、实验规定
1、实验前做好上机实验准备,针对实验内容,认真复习与本次实验关于知识,完毕实验内容预习准备工作;
2、能认真独立完毕实训内容;
3、实验后做好实验总结,依照实验状况完毕总结报告。
三、实验内容
1. 用SSMS在 “对象资源管理器”中完毕如下任务:
(1)建立一种学生课程数据库
(2)修改学生课程数据库Student主数据文献大小
查看扩大后数据库属性
2. 用SSMS,在数据库Student中:
(1)创立表S
创立表Course
创立表SC
创立表Teacher
(2)
①在Course表中插入列Cpno 、Ccredit
②将SC表中列Grade类型改为smallint
③在S表中创立CHECK约束,约束名为Sagechk,规定实现年龄在15~45取值
④在Course表中创立外键约束,约束名为Fk_Tno,规定实现Course表中Tno必要参照Teacher表Tno取值。
⑤删除Course表中Tno列
(3)删除将刚才所创立Teacher表
(4)向表插入如下数据
表S
表Course
表SC
3、用SSMS办法完毕如下数据库分离和附加:
(1)分离Student数据库
⑵附加Student数据库
4. 用SSMS办法完毕数据库备份和恢复
(1)备份数据库
①创立备份设备
完全备份
②创立一张表temp1并对Student数据库进行第一次差别备份
③创立表temp2并对Student数据库进行第二次差别备份
(2)删除Student数据库
(3)恢复数据库
①从备份设备bk_ Student0中恢复Student数据库,并查看表temp1和temp2与否存在?
两个表都不存在。
② 再次删除数据库Student,然后将Student数据库恢复到第一次差别备份后状态,并
查看表temp1和temp2与否存在?
表temp1存在,表temp2不存在。
③再次删除数据库Student,然后将Student数据库恢复到第二次差别备份后状态,并查
看表temp1和temp2与否存在?
两个表都存在。
5、用T-SQL语句完毕如下任务:
(1)建立一种学生课程数据库。
CREATE DATABASE Student1
ON PRIMARY
(
NAME=Student0_dat,
FILENAME='D:\Student0_dat.mdf',
SIZE=10MB,
MAXSIZE=100MB,
FILEGROWTH=10%
)
LOG ON
(
NAME=Student0_log,
FILENAME='D:\Student0_log.ldf',
SIZE=5MB,
FILEGROWTH=10MB
)
(2)用T-SQL语句为Student1数据库添加一种大小为10MB次数据文献。
ALTER DATABASE Student1
ADD FILE
(
NAME=Student1_dat,
FILENAME='D:\Student1_dat.mdf',
SIZE=5MB,
FILEGROWTH=10MB
)
(3)用存储过程sp_helpdb [[@dbname=] 'name'] 、sp_helpfile [[@filename =] 'name'] 分别用于查看该数据库构造信息及相应文献信息与否对的。
6、用T-SQL语句,完毕下列表创立、修改、删除及数据插入
(1)
创立表S
CREATE TABLE S
(
Sno int primary key,
Sname char(10) not null unique,
Ssex char(2) check(Ssex in('男','女')),
Sage smallint,
Sdept char(20) default'计算机系'
)
创立表Course
CREATE TABLE Course
(
Cno char(4) primary key,
Cname char(10) not null,
Tno int not null
)
创立表SC
CREATE TABLE SC
(
Sno int not null,
Cno char(4) not null,
Grade int null constraint sc_grade check(Grade>=0 and Grade<=100),
primary key(Sno,Cno),
foreign key(Sno) references S(Sno),
foreign key(Cno) references Course(Cno),
)
创立表Teacher
CREATE TABLE Teacher
(
Tno int primary key,
Tname char(10),
Sdept char(20) null default'计算机系'
)
(2)
①在Course表中插入列Cpno、Ccredit
alter table Course
add Cpno char(4),
Ccredit int not null
②将SC表中列Grade类型改为smallint
alter table SC
drop constraint sc_grade --第一步删除约束sc_grade
alter table SC
alter column Grade smallint null --第二步修改列Grade类型
alter table SC
add constraint sc_g check(Grade>=0 and Grade<=100) --第三步增长约束sc_g
③在S表中创立CHECK约束,约束名为Sagechk,规定实现年龄在15~45取值
alter table S
add constraint Sagechk check(Sage >= 15 and Sage <=45)
④在Course表中创立外键约束,约束名为Fk_Tno,规定实现Course表中Tno必要参照Teacher表Tno取值。
alter table Course
add constraint Fk_Tno foreign key (Tno) references Teacher(Tno)
⑤删除Course表中Teacher列
alter table Course
drop constraint Fk_Tno --先删除约束Fk_Tno
alter table Course
drop column Tno --再删除列Tno
(3) 删除将刚才所创立Teacher表
drop table Teacher
(4)向表插入数据
表S
insert
into S
values (1001,'王勇','男',20,'电子系');
insert
into S
values (1002,'刘梅','女',19,'计算机系');
insert
into S
values (1003,'王芳','女',18,'网络系');
insert
into S
values (1004,'张兵','男',17,'软件系');
最后成果:
表Course
insert
into Course
values ('1','数据库','5',4);
insert
into Course
values ('2','数学','',2);
insert
into Course
values ('3','信息系统','1',4);
insert
into Course
values ('4','操作系统','6',3);
insert
into Course
values ('5','数据构造','7',4);
insert
into Course
values ('6','数据解决','',2);
insert
into Course
values ('7','C++程序设计语言','6',4);
最后插入成果:
表SC
insert
into SC
values (1001,'1',92);
insert
into SC
values (1001,'2',85);
insert
into SC
values (1001,'3',88);
insert
into SC
values (1002,'2',90);
insert
into SC
values (1003,'2',55);
insert
into SC
values (1004,'2',70);
最后成果:
7、用T-SQL完毕如下数据库分离和附加:
(1)分离Student数据库
SP_detach_db 'Student'
⑵附加Student数据库
SP_attach_db 'Student','E:\数据库\实验一\Student_dat.mdf',
'E:\数据库\实验一\Student_log.ldf'
8. 用T-SQL完毕如下数据库备份和恢复
(1)备份数据库
①创立备份设备并对Student数据库进行完全备份
sp_addumpdevice 'disk','bk_Student','E:\数据库\实验一\Student.bak'
backup database Student
to bk_Student
with init
②创立表temp1并对Student数据库进行第一次差别备份
CREATE TABLE temp1
(
Sno int not null,
Cno char(4),
Grade int ,
credit int
)
backup database Student
to bk_Student
with differential
③创立表temp2并对Student数据库进行第二次差别备份
CREATE TABLE temp2
(
Sno int not null,
Cno char(4),
Grade int ,
credit int
)
backup database Student
to bk_Student
with differential
(2)删除Student数据库
use Student1
drop database Student
(3)恢复数据库
①从备份设备bk_ Student中恢复Student数据库,并查看表temp1和temp2与否存在?
RESTORE DATABASE Student
FROM DISK='E:\数据库\实验一\Student.bak'
不存在表temp1和temp2
②再次删除数据库Student,然后将Student数据库恢复到第一次差别备份后状态,
并查看表temp1和temp2与否存在?
删除数据库Student
use Student1
drop database Student
RESTORE DATABASE Student
FROM bk_Student
with file=1,norecovery
RESTORE DATABASE Student
FROM bk_Student
with file=2
表temp1存在,表temp2不存在
③再次删除数据库Student,然后将Student数据库恢复到第二次差别备份后状态,并
查看表temp1和temp2与否存在?
删除数据库Student
use Student1
drop database Student
RESTORE DATABASE Student
FROM bk_Student
with file=1,norecovery
RESTORE DATABASE Student
FROM bk_Student
with file=3
两个表都存在
四、思考题
1.如何收缩数据库,在什么状况下需要收缩数据库?
收缩数据库:
(1)ssms 在所要压缩数据库上单击右键à任务à收缩à数据库
或在所要压缩数据库上单击右键à属性à选项,自动收缩,选取true
(2)Transact-SQL
DBCC SHRINKDATABASE 命令语法如下:
DBCC SHRINKDATABASE (database_name [,target_percent]
[,{NOTRUNCATE | TRUNCATEONLY}] )
数据库在使用一段时间后,时常会浮现因数据删除而导致数据库中空闲空间太多状况,这时就需要减少分派给数据库文献和事务日记文献磁盘空间,以免挥霍磁盘空间。当数据库中没有数据时,可以修改数据库文献属性直接变化其占用空间,但当数据库中有数据时,这样做会破坏数据库中数据,因而需要使用压缩方式来缩减数据库空间。
2.什么是备份设备,如何创立、删除备份设备?
创立备份时,必要选取存储备份数据备份设备,即存储备份存储介质。备份设备可以是磁盘、磁带、命名管道。
创立备份设备:
Ssms 启动SQL server management studio,在“对象资源管理器”窗口里展开“服务器对象”树形目录,右击“备份设备”
T-SQL sp_addumpdevice [@devtype =] 'device_type'
[,@logicalname =]'logical_name'[,@physicalname =] 'physical_name'
删除备份设备
Ssms 启动SQL server management studio,在“对象资源管理器”窗口里展开“服务器对象”树形目录,再展开“备份设备”,右击将要删除备份设备名。
T-SQL sp_dropdevice[@logicalname=]’device’
[,[@delfile=]’delfile’]
成绩
指引教师
日期
注:请用A4纸书写,不够另附纸。 第 页,共 页
展开阅读全文