实验名称课时实验报告成绩实验(一)——数据库基本操作 2实验(二)——SQL语句 6实验(三)——数据库完整性与4安全性实验实验(四)——数据库编程 4备注:实验一——数据库基本操作一、实验目的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(cno char(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,分别建立以上三张表,并完成数据录入。
(表结构及数据参见教材)A.新建STU数据库单击STU数据库,选择表,然后新建,依次用相同的步骤建立STU、COURSES 和SC表,见图BB.新建表数据录入:2)分析并建立各表的主码,用下划线在上面表结构中标出主码。
右击新建的表,选择设计表,再右击要设置成主码的属性,选择“设置主键”选项。
STU表的主码是sno;COURSES的主码是cno;SC表的主码是sno和cno3)建立各表之间的关联,请简述操作步骤。
先打开要建立关联的主表,比如说SC表中的主码分别是STC,COURSES表的主码,就打开SC表,右击一下,选择“关系”选项;然后新建关系,将STC 表选为主键表,并勾住属性sno。
最后再按相同的方法建立SC表与COURSES 表之间的关系。
见图C。
图C4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。
备份:首先要打开数据库,然后选择需要备份的数据库,比如STU数据库。
然后右击STU数据库,选择“所有任务”子菜单中的“备份数据库”;这是出现备份的向导界面,在目的中点击“添加(A)...”选择自己的U盘以及要保存的具体文件及。
见图D。
图D还原:打开数据库,右击鼠标,选择“所有任务”“还原数据库”;在还原界面中有还原选项,选择“从设备”,然后就是选择路径,就是要还原的数据库在自己U盘里存储的具体位置。
见图E。
图E3.在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下任务。
参考实验指导书《数据库系统实验指导教程》【实验1.1 数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236 【附录A】。
1)用SQL语言创建数据库、建表。
建表时为各表建立关键字、设置外码数据暂不录入,请写出对应的SQL命令。
创建数据库:create database stc on(name=stc_dat,filename='F:\stc\stcdat.mdf',size=2,maxsize=4,filegrowth=1)log on(name='stc_log',filename='F:\stc\stclog.ldf',size=1mb,maxsize=2mb,filegrowth=1mb)建表:create table students /*建立students表*/(sid char(10)primary key,sname char(30)not null,email char(30),grade int)create table teachers /*建立teachers表*/(tid char(10)primary key,tname char(30)not null,email char(30),salary int)create table courses /*建立courses表*/(cid char(10)primary key,cname char(30)not null,hour int)create table choices /*建立choices表*/(no int primary key,sid char(10)not null,foreign key(sid) references students(sid),tid char(10),foreign key(tid) references teachers(tid),cid char(10),foreign key(cid)references courses(cid),score int )2)为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。
create unique index stusid on students(sid);create unique index cousid on courses(cid);3)删除course上的索引,请写出相应的SQL命令。
drop index courses.cousid;4)在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应的SQL命令。
alter table students add s_birth datetime;5)删除students中的“出生日期”字段,请写出对应的SQL命令。
alter table students drop column s_birth;6)删除SCHOOL数据库中的students表,请写出对应的SQL命令。
drop table students;3.使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。
4.使用企业管理器,将SCHOOL数据库分离出MS SQL SERVER,请简述步骤。
先打开数据库,然后右击school数据库,接着选择“所有任务”子菜单中的“分离数据库”就行了。
见图F。
图F5.使用企业管理器,使用【数据库/所有任务/附加数据库】将SCHOOL数据库添加进SQL SERVER,并查看数据。
见图G。
图G6.使用查询分析器,删除数据库STC,请写出对应的SQL命令。
drop database stc;7.结束本次实验三、实验课后训练1.使用企业管理器练习数据的导入导出。
1)将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中;2)向STC数据库courses表导入SCHOOL数据库courses表中的数据;3)自行练习实验指导书【实验5.3 SQL SERVER数据库的导入与导出】部分;2.自行练习实验指导书【实验1.1数据定义】部分。
四、实验报告1)简述本次实验所用到的SQL命令及其功能。
答:本次试验用到了:①create table<表名>SQL命令,功能是建表;②alter table<表名>SQL命令,功能是修改基本表;③drop table<表名>SQL命令,功能是删除基本表,其中又分为“alter table students drop column s_birth;”的功能是删除具体的s_birth这一列;④create unique index<索引名>SQL命令,功能是创建索引,且索引项的默认顺序为升序;drop index<索引名>功能是删除索引;⑤drop table<数据库名>功能是删除数据库。
2)在MS SQL SERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?答:显然,数据库中的“分离|附加”与“备份|还原”的功能是不相同的。
在数据库中分离目标数据库如”SCHOOL”以后,在数据库中便不再存在SCHOOL这个数据库,但备份后仍然是存在的。
而还原时如果SQL Server中存在和当前数据库备份名字相同的数据库,新的数据库会覆盖掉当同名的数据库,而且路径必须正确,附加则直接在目标硬盘里找“.MDF”文件,选中就可以了,然后就可以用了。
3)实验总结(实验过程中出现的问题、解决方法、结果如何或其它)答:由于这是学习数据库以来的第一次试验,很多东西都不熟悉,导致课堂上完成的任务很少,有些东西都是回来后自己在电脑上完成,当然,这其中也出现了不少的错误,后来在同学的帮助和自己的摸索下,总算是顺利了完成的了本次实验。
下面是我在实验过程中遇到的一些问题:①图H是在建立两个表的关系的时候,对于主键表的错误,在建立参照完整性的时候,应该选择courses表为主键表,然后同时选择cno属性;而且在设置sc 表的主键时,没有同时选择cno和sno为主属性,后来追加了ctrl键同时选择了两个属性同时为主属性。
图H②在使用SQL查询分析器些语句想实现删除索引时出现“出现语法错误”的提示,但是课本中的格式确实是“drop index cousid;”,后来看到系统提示,得知正确格式应该“drop index courses.cousid;”。
见图I。
图I③相类似的问题又出现删除属性列的问题,关于“alter table students drop column s_birth;”中的“column”必须也要加进去。
整体来说,这次实验课对我来说还是一次新的学科的接触,而SQL软件在实验室版本较低,导致为了能达到一致性的我们再win8系统使用时出现了很多的问题。
实验二——SQL语句一、实验目的1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;二、实验预习内容在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。