当前位置:文档之家› 数据库实验报告

数据库实验报告

合肥师范学院实验报告册2014 / 2015 学年第2学期系别计算机学院实验课程数据库原理专业班级姓名学号指导教师实验一——数据库基本操作一、实验目的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,分别建立以上三张表,并完成数据录入。

(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。

3)建立各表之间的关联,请简述操作步骤。

(1)CREATE TABLE Stu( sno char(9),sname varchar(50),ssex char(2),sage int,sdept char(2) );CREATE TABLE COURSE( cno char(3),cname varchar(50),cpno char(3),credit int);CREATE TABLE SC( sno char(9),cno char(3),grade int);4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC 进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

3.在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下任务。

参考实验指导书《数据库系统实验指导教程》【实验 1.1 数据定义】,建立数据库SCHOOL,分别建立students、teachers、courses、choices四张表,表结构见实验指导书P236 【附录A】。

1)用SQL语言创建数据库、建表。

建表时为各表建立关键字、设置外码,数据暂不录入,请写出对应的SQL命令。

2)为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。

CREATE INDEX sno_index on stu(sno)CREATE INDEX course_index on stcourse(cno)3)删除course上的索引,请写出相应的SQL命令。

drop index course.course_index4)在SCHOOL数据库中的students表中增加一个“出生日期”字段,类型为日期时间型,请写出对应的SQL命令。

alter table stu add "出生日期" datetime5)删除students中的“出生日期”字段,请写出对应的SQL命令。

alter table stu drop column "出生日期"6)删除SCHOOL数据库中的students表,请写出对应的SQL命令。

Drop table stu restrict4.使用企业管理器创建数据库SCHOOL,实现内容与实验预习内容3完全相同。

5.使用企业管理器,将SCHOOL数据库分离出MS SQL SERVER,请简述步骤。

6.使用企业管理器,使用【数据库/所有任务/附加数据库】将SCHOOL数据库添加进SQLSERVER,并查看数据。

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命令及其功能。

Create database创建数据库CREATE TABLE建立表CREATE INDEX建立索引drop index删除索引alter add增加字段alter drop删除字段drop table删除表2.在MS SQL SERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?不是3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)出现的问题:中英文状态没有切换,语法错误解决方法:分析查询后改正错误结果或其它:程序正确运行实验二——SQL语句一、实验目的1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询和统计查询,能理解空值的处理;2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操作;3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;二、实验预习内容在认真阅读教材及实验指导书【实验1.2 数据查询】、【实验1.3 数据更新】、【实验1.4 视图】和【实验1.6 空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.使用SCHOOL数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。

请在空白处填写相应的SQL命令。

1)查询年级为2001的所有学生的名称,按编号顺序排列;select snamefrom studentswhere grade like '2001'order by sid DESC2)查询所有课程名称中含有data的课程编号;select cidfrom courseswhere cname like '%data%'3)统计所有老师的平均工资;select avg(salary)from teachers4)查询至少选了3门课的学生编号;select sidfrom choicesgroup by sidhaving count(*)>=35)查询学号为80009026的学生的姓名、所选课名及成绩;select sname,cname,scorefrom students,choices,courseswhere students.sid='80009026'6)查询没有学生选的课程编号;select cidfrom courseswhere cid not in(select cidfrom choices)7)查询既选了C++又选了Java课程的学生编号;select sidfrom studentswhere sid in(select sidfrom choiceswhere cid in(select cidfrom courseswhere cname='C++' and cname='Java'))8)查询选了C++但没选Java课程的学生编号;select sidfrom studentswhere sid in(select sidfrom choiceswhere cid in(select cidfrom courseswhere cname='C++' and cname!='Java'))9)向STUDENTS表中插入“LiMing”的个人信息(编号:700045678,名字:LiMing,Email:LX@,年级:1992);insertinto students(sid,sname,email,grade)values('700045678','LiMing','LX@',1992)10)将“LiMing”的年级改为2002update studentsset grade=2002where sid='700045678'11)删除所有选了Java课程的学生选课记录;delete from choiceswhere cid=(select cidfrom courseswhere cname='java')12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);15)按成绩顺序排序显示CHOICES表中所有记录。

(使用ORDER BY排序,注意NULL的情况);16)创建视图V1,显示学生姓名、所选课名称、任课教师名;17)取消V1视图;2.使用STC数据库,在SQL SERVER 2000 的查询分析器中使用SQL语言完成以下操作。

请在空白处填写相应的SQL命令或其它内容。

1)创建视图V2,显示计算机(CS)系学生信息;(结合下面的b)小题,V2视图创建22)插入元组(99999,张三,20岁,男,PH)到V2中,运行结果如何?(观察WITH CHECK3)在V2基础上,查询所有计算机系女生信息;3.结束本次实验三、实验课后训练1.掌握SQL SERVER中流控制语句及其它常用编程语句;1)使用查询分析器,编写代码,输出乘法口诀表。

2.自行练习实验指导书P24【实验1.2 数据查询】1.2.5自我实践部分;3.自行练习实验指导书P30【实验1.3 数据更新】1.3.5自我实践部分;4.自行练习实验指导书P36【实验1.4 视图】1.4.5自我实践部分;5.自行练习实验指导书P49【实验1.6 空值和空集的处理】1.6.5自我实践部分;四、实验报告1.SQL SERVER中变量声明的命令是什么?输出命令是什么?2.SQL SERVER中实现分支和循环的语句分别是什么?3.在SQL SERVER里使用ORDER BY排序时,NULL值如何处理?使用GROUP BY分组时,NULL值又如何处理的?4.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)实验三——数据库完整性与安全性一、实验目的1.理解实体完整性、参照完整性、用户自定义完整性的概念,学习三类完整性的实现,了解违反完整性的结果;2.掌握MS SQL SERVER中的有关用户登录认证及管理方法,熟练使用自主存取控制进行权限管理;二、实验预习内容在认真阅读教材及实验指导书【2.1 实体完整性】、【2.2 参照完整性】、【2.3 用户自定义完整性】、【2.4 触发器】、【2.5 综合案例】和【3.1 用户标识与鉴别】、【3.2 自主存取控制】、【3.3 视图机制在自主存取控制上的应用】、【3.4 Public角色在安全性中的应用】、【3.8 综合案例】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

相关主题