实验一 ——数据库基本操作
一、实验目的
1. 熟悉MS SQL SERVER运行界面,掌握服务器的基本操作。
2. 掌握界面操作方法完成用户数据库建立、备份和还原。
3. 建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。
二、实验预习内容
在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。
1. 熟悉SQL SERVER 2000 的运行环境,练习服务器基本操作:打开、停止、关闭。
2. 使用SQL SERVER 2000 中的企业管理器完成以下任务。
数据库名称:STC
表:STU(sno char(9), sname varchar(50), ssex char(2) , sage int, sdept char(2) );
COUTSES( cnochar(3), cname varchar(50), cpno char(3), credit int );
SC(sno char(9), cno char(3), grade int );
说明:以上为表结构,以sno char(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。
1) 建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)
2) 分析并建立各表的主码,用下划线在上面表结构中标出主码。
3) 建立各表之间的关联,请简述操作步骤。zuo
create database stc
create table stu
(sno char(9) primary key,
sname varchar(50) unique,
ssex char(2),
sage int,
sdept char(2)
);
create table coutses
(cno char(3) primary key,
cname varchar(50),
cpno char(3),
credit int,
);
create table sc
(sno char(9),
cno char(3),
grade int,
primary key(sno,cno),
foreign key(sno) references stu(sno),
foreign key(cno)references coutses(cno),
);
insert into stu (sno,sname,ssex,sage,sdept)
values('20121512','stu1','男',15,'IS');
insert into COUTSES( cno , cname, cpno, credit )
values(1,'数据库',5,'4');
insert into SC(sno , cno , grade)
values('20121512','1','92');
4) 参考实验指导书的【第5章 数据库的备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。
3. 在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下任务。
参考实验指导书《数据库系统实验指导教程》【实验1.1 数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236 【附录A】。
1) 用SQL语言创建数据库、建表。建表时为各表建立关键字、设置外码,数据暂不录入,请写出对应的SQL命令。
create tablestudents
(sid char(10) primary key,
sname char(30) unique,
email char(30),
grade int,
);
create tableteachers
(tid char(10) primary key,
tname char(30) unique,
email char(30),
salary int,
);
create tablecourses
(cid char(10) primary key,
cname char(30) unique,
hour int,
);
create tablechoices
(
sid char(10) unique,
tid char(10),
cid char(10),
score int,
primary key(sid,tid,cid),
foreign key(sid)references students(sid),
foreign key(tid)references teachers(tid),
foreign key(cid)references courses(cid),
);
2) 为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。
create uniqueindex stusid onstudents(sid);
create uniqueindex coucid oncourses(cid);
3) 删除course上的索引,请写出相应的SQL命令。
drop index coucid on courses;
4) 在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应的SQL命令。
alter table students add S_entrance date;
5) 删除students中的“出生日期”字段,请写出对应的SQL命令。
alter table students drop columnS_entrance;
6) 删除SCHOOL数据库中的students表,请写出对应的SQL命令。
查询外键名
select fk.name,fk.object_id,OBJECT_NAME(fk.parent_object_id) as referenceTableName
from sys.foreign_keys as fk
join sys.objects as o on fk.referenced_object_id=o.object_id
where o.name='students'
删除外键
ALTER TABLE dbo.choices DROP CONSTRAINT FK__choices__sid__1A14E395
删除表
drop table students;
4. 使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。
5. 使用企业管理器,将SCHOOL数据库分离出MSSQL SERVER,请简述步骤。
6. 使用企业管理器,使用【数据库/所有任务/附加数据库】将SCHOOL数据库添加进SQL SERVER,并查看数据。
7. 使用查询分析器,删除数据库STC,请写出对应的SQL命令。
8. 结束本次实验
三、实验课后训练
1. 使用企业管理器练习数据的导入导出。
1) 将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中;
2) 向STC数据库courses表导入SCHOOL数据库courses表中的数据;
3) 自行练习实验指导书【实验5.3 SQL SERVER数据库的导入与导出】部分;
2. 自行练习实验指导书【实验1.1数据定义】部分。
四、实验报告
1. 简述本次实验所用到的SQL命令及其功能。
1.创建数据库createdatabase <数据库名称> 2.创建基本表 create table <表名>(<列名>< 数据类型> [列级完整性约束]) 3.建立表的索引create index <索引名>on <表名>(<列名> [次序]) 4.修改基本表alter table <表名>[add <新列名><数据类型>[完整性约束]] 5.删除索引drop index <索引名> 6.删除表中某一属性alter table <表名> dropcolumn <列名> 7.删除表droptable <表名> 8.删除数据库deletedatabase <数据库名>
2. 在MS SQL SERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?
数据库的“分离|添加”与“备份|还原”不是相同的功能,分离说的是断开这个数据库的连接,但不是删除,数据库仍然存在于硬盘上,这样就可以随意的挪动数据库了,附加和分离则刚好相反。
备份是为防止出现错误,还原是为了防止出现数据的丢失。
3. 总结(实验过程中出现的问题、解决方法、结果如何或其它)
实验查询外键名
select fk.name,fk.object_id,OBJECT_NAME(fk.parent_object_id) as referenceTableName
from sys.foreign_keys as fk
join sys.objects as o on fk.referenced_object_id=o.object_id
where o.name='students'
删除外键
ALTER TABLE dbo.choices DROP CONSTRAINT FK__choices__sid__1A14E395
删除表
drop table students;