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

数据库实验报告册

合肥师范学院实验报告册2014 / 2015 学年第1 学期系别计算机学院实验课程数据库原理专业班级姓名学号指导教师李宜兵实验一——数据库基本操作一、实验目的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) );COURSE(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)分析并建立各表的主码,用下划线在上面表结构中标出主码。

create table stu(sno char(9) primary key,sname varchar(50),ssex char(2),sage int,sdept char(2));select* from coursecreate table course( cno char(3) primary key,cname varchar(50),cpno char(3),credit int ,foreign key (cpno) references course(cno));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 course(cno));insertinto stuvalues('95001','李勇','男','20','cs');Stu表:Sc表:3)建立各表之间的关联,请简述操作步骤。

建立关联:右击SC表,设计表---在任意一个空白处右击---关系---表和列规范---选择主键表course对应的主码cno和外键表sc对应的cno以及主键表stu对应的主码sno和外键表sc对应的sno—确定即可4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC 进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

右击STC数据库----任务—备份—备份到(添加到你要备份到的地方)---确定。

右击STC数据库----任务—还原----数据库---(从原数据库或源设备)----选择路径--确定。

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

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

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

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

create table students(sid char(10) primary key,sname char(30) not null,email char(30),);create table teachers(tid char (10) primary key,tname char(30) not null,email char(30),salary int,);create table courses(cid char(10) primary key,cname char(30) not null,hour int,);create table choices(no int primary key,sid char(10) not null,tid char(10) not null,cid char(10) not null,score int ,foreign key (sid) references students(sid),foreign key (tid) references teachers(tid),foreign key (cid) references courses(cid),);2)为students表、courses建立按主键増序排列的索引,请写出相应的SQL命令。

create index s on students(sid asc)create index c on courses(cid asc)3)删除course上的索引,请写出相应的SQL命令。

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

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

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

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

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

点开数据库---找到school数据库----(右击)所有任务----分离数据库----确定。

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

7.使用查询分析器,删除数据库STC,请写出对应的SQL命令。

Drop database stc8.结束本次实验三、实验课后训练1.使用企业管理器练习数据的导入导出。

1)将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中;2)向STC数据库courses表导入SCHOOL数据库courses表中的数据;3)自行练习实验指导书【实验5.3 SQL SERVER数据库的导入与导出】部分;2.自行练习实验指导书【实验1.1数据定义】部分。

四、实验报告1.简述本次实验所用到的SQL命令及其功能。

命令:creat database <数据库名> 功能:建立数据库命令:Creat table <表名> (<列名> <数据类型> [列级完整性约束条件])[,<表级完整性约束条件>]功能:定义基本表命令:alter table <表名>[add<新列名> <数据类型> [完整性约束]]-----增加新列和新的完整性约束条件[Drop <完整性约束名>]----删除指定的完整性约束条件[alter column <列名> <数据类型> ];---修改原有的列定义,包括列名和数据类型。

功能:修改基本表2.在MS SQL SERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?答:在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 sname from students where grade='2001' order by sid2)查询所有课程名称中含有data的课程编号;select cid from courses where cname like '%data%'3)统计所有老师的平均工资;select A VG(salary) 平均工资from teachers4)查询至少选了3门课的学生编号;select sidfrom choicesgroup by sid having count(*)>=35)查询学号为80009026的学生的姓名、所选课名及成绩;select sname,cname,scorefrom students,courses,choiceswhere students.sid=80009026 and choices.sid=students.sidand choices.cid =courses.cid6)查询没有学生选的课程编号;select cidfrom courseswhere cid not in(select cidfrom choices )7)查询既选了C++又选了Java课程的学生编号;select sidfrom choices,courseswhere choices.cid=courses.cid and cname='c++'and sid in(select sidfrom choices,courseswhere choices.cid=courses.cid and cname='java'))8)查询选了C++但没选Java课程的学生编号;select sidfrom choices,courseswhere choices.cid=courses.cid and cname='c++'and sid not in(select sidfrom choices,courseswhere choices.cid=courses.cid and cname='java')9)向STUDENTS表中插入“LiMing”的个人信息(编号:700045678,名字:LiMing,Email:LX@,年级:1992);insert into studentsvalues ('700045678','liming','LX@','1992')10)将“LiMing”的年级改为2002;update studentsset grade='2002'where sname='liming'11)删除所有选了Java课程的学生选课记录;deletefrom choiceswhere cid=(select cidfrom courseswhere cname='java')12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

相关主题