数据库实验报告册_第1页
数据库实验报告册_第2页
数据库实验报告册_第3页
数据库实验报告册_第4页
数据库实验报告册_第5页
已阅读5页,还剩3页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

8/8数据库实验报告册合肥师范学院实验报告册

2014/2015学年第1学期

系别计算机学院

实验课程数据库原理

专业

班级

姓名

学号

指导教师李宜兵

实验一——数据库基本操作

一、实验目的

1.熟悉MSSQLSERVER运行界面,掌握服务器的基本操作。

2.掌握界面操作方法完成用户数据库建立、备份和还原。

3.建立两个实验用的数据库,使用企业管理器和查询分析器对数据库和表进行基本操作。

二、实验预习内容

在认真阅读教材及实验指导书的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

1.熟悉SQLSERVER2000的运行环境,练习服务器基本操作:打开、停止、关闭。

2.使用SQLSERVER2000中的企业管理器完成以下任务。

数据库名称:STC

表:STU(snochar(9),snamevarchar(50),ssexchar(2),sageint,sdeptchar(2));

COURSE(cnochar(3),cnamevarchar(50),cpnochar(3),creditint);

SC(snochar(9),cnochar(3),gradeint);

说明:以上为表结构,以snochar(9)为例,说明sno属性设置为字符类型,宽度为9,int指整型数据。

1)建立数据库STC,分别建立以上三张表,并完成数据录入。(表结构及数据参见教材)2)分析并建立各表的主码,用下划线在上面表结构中标出主码。

createtablestu

(snochar(9)primarykey,

snamevarchar(50),ssexchar(2),sageint,sdeptchar(2)

);

select*fromcourse

createtablecourse

(cnochar(3)primarykey,cnamevarchar(50),cpnochar(3),creditint,

foreignkey(cpno)referencescourse(cno)

);

createtablesc

(snochar(9),cnochar(3),gradeint,

primarykey(sno,cno),

foreignkey(sno)referencesstu(sno),

foreignkey(cno)referencescourse(cno)

);

insert

intostu

values('95001','李勇','男','20','cs');

Stu表:

Sc表:

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

建立关联:右击SC表,设计表在任意一个空白处右击关系表和列规范选择主键表course对应的主码cno和外键表sc对应的cno以及主键表stu对应的主码sno和外键表sc对应的sno—确定即可

4)参考实验指导书的【第5章数据库的备份和还原】,使用企业管理器对数据库STC进行备份,并尝试在个人电脑与机房电脑上进行还原,请简述备份、还原操作的步骤。

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

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

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

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

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

createtablestudents

(sidchar(10)primarykey,

snamechar(30)notnull,

emailchar(30),

);

createtableteachers

(tidchar(10)primarykey,

tnamechar(30)notnull,

emailchar(30),

salaryint,

);

createtablecourses

(cidchar(10)primarykey,

cnamechar(30)notnull,

hourint,

);

createtablechoices

(nointprimarykey,

sidchar(10)notnull,

tidchar(10)notnull,

cidchar(10)notnull,

scoreint,

foreignkey(sid)referencesstudents(sid),

foreignkey(tid)referencesteachers(tid),

foreignkey(cid)referencescourses(cid),);

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

createindexconcourses(cidasc)

3)删除course上的索引,请写出相应的SQL命令。

dropindexconcourses

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

Altertablestudentsadd“出生日期”datetime

5)删除students中的“出生日期”字段,请写出对应的SQL命令。

Altertablestudentsdropclumn出生日期

6)删除SCHOOL数据库中的students表,请写出对应的SQL命令。

droptablestudentscascade

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

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

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

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

SERVER,并查看数据。

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

Dropdatabasestc

8.结束本次实验

三、实验课后训练

1.使用企业管理器练习数据的导入导出。

1)将SCHOOL数据库students表中的数据导出到STC数据库对应的stu表中;

2)向STC数据库courses表导入SCHOOL数据库courses表中的数据;

3)自行练习实验指导书【实验5.3SQLSERVER数据库的导入与导出】部分;

2.自行练习实验指导书【实验1.1数据定义】部分。

四、实验报告

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

命令:creatdatabase(

[add[完整性约束]]增加新列和新的完整性约束条件

[Drop]删除指定的完整性约束条件

[altercolumn];修改原有的列定义,包括列名和数据类型。功能:修改基本表

2.在MSSQLSERVER中数据库的“分离|添加”与“备份|还原”是相同的功能吗?

答:在MSSQLSERVER中数据库的“分离|添加”与“备份|还原”的功能是不相同的。

分离之后的数据库在用户不更改路径的情况下会分离在系统默认的路径上,且分离之后在数据库的下属栏中找不到分离的数据库,除非重新按指定路径添加。而备份的数据库还会显示在数据库的下属栏中。

3.实验总结(实验过程中出现的问题、解决方法、结果如何或其它)

本次试验过程中遇到了很多问题,因为是第一次使用这个软件,有好多东西都不知道在哪,比如,不知道如何建立关联,如何备份还原数据库等,经过询问同学才知道。对书上的知识不是很了解,不知道如何建立索引和删除索引,在看书之后才知道如何做。经过这次实验,以后做实验要好好预习。

实验二——SQL语句

一、实验目的

1.熟悉SQL的数据查询语言,能使用SQL进行单表查询、连接查询、嵌套查询、集合查询

和统计查询,能理解空值的处理;

2.熟悉数据库的数据更新操作,能使用SQL语句对数据库进行数据的插入、更新、删除操

作;

3.熟悉SQL支持的有关视图的操作,能创建、查询及取消视图;

4.了解NULL在数据库中的特殊含义,掌握使用SQL进行与空值相关的操作;

二、实验预习内容

在认真阅读教材及实验指导书【实验1.2数据查询】、【实验1.3数据更新】、【实验1.4视图】和【实验1.6空值和空集的处理】的基础上,上机前请预习以下内容,并在空白处填写相应的步骤或命令。

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

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

1)查询年级为2001的所有学生的名称,按编号顺序排列;

selectsnamefromstudentswheregrade='2001'orderbysid

2)查询所有课程名称中含有data的课程编号;

selectcidfromcourseswherecnamelike'%data%'

3)统计所有老师的平均工资;

selectAVG(salary)平均工资

fromteachers

4)查询至少选了3门课的学生编号;

selectsid

fromchoices

groupbysidhavingcount(*)>=3

5)查询学号为80009026的学生的姓名、所选课名及成绩;selectsname,cname,score

fromstudents,courses,choices

wherestudents.sid=80009026andchoices.sid=students.sid

andchoices.cid=courses.cid

6)查询没有学生选的课程编号;

selectcid

fromcourses

wherecidnotin

(

selectcid

fromchoices)

7)查询既选了C++又选了Java课程的学生编号;

selectsid

fromchoices,courses

wherechoices.cid=courses.cidandcname='c++'

andsidin(

selectsid

fromchoices,courses

wherechoices.cid=courses.cidandcname='java')

)

8)查询选了C++但没选Java课程的学生编号;

selectsid

fromchoices,courses

wherechoices.cid=courses.cidandcname='c++'

andsidnotin(

selectsid

fromchoices,courses

wherechoices.cid=courses.cidandcname='java')

9)向STUDENTS表中插入“LiMing”的个人信息(编号:700045678,名字:LiMing,Email:LX@http://./doc/e8f3ce25e109581b6bd97f19227916888586b9d5.html,年级:1992);

insertintostudents

values('700045678','liming','LX@http://./doc/e8f3ce25e109581b6bd97f19227916888586b9d5.html','1992')

10)将“LiMing”的年级改为2002;

updatestudents

setgrade='2002'

wheresname='liming'

11)删除所有选了Java课程的学生选课记录;

delete

fromchoices

wherecid=

(selectcid

fromcourses

wherecname='java')

12)求出每门课的课程号、选课人数,结果存入数据库表T1中。

createtableT1

(cidchar(10)primarykey,

renshuint

)

insert

intot1

selectcid,count(distinctsid)

fromchoices

groupbycid;

13)查询所有选课记录的成绩并换算为五分制(注意NULL的情况);

selectdistinctscore,score/20五分制

fromchoices;

14)查询成绩小于0的选课记录,统计总数、平均分、最大值和最小值(注意查询结果中NULL的情况);

selectsid,cid

fromchoices

wherescore=0);

7)创建规则rule_sex,规定更新或插入的值只能是M或F,并绑定到Worker的sex字段;

Go

CreateRulerule_sexas@valuein('F','M')

Go

execsp_bindrulerule_sex,'Worker.[sex]';

8)插入2条记录,一条满足规则rule_sex,一条违反规则,观察结果。

InsertintoWorker

values('00005','小李','m',15,'科技部')

InsertintoWorker

values('00005','小李','a',15,'科技部')

5.使用查询分析器创建触发器并测试,请写出相应的语句:

1)为Worker表创建触发器T1,当插入或更新表中数据时,保证所操作记录的sage大于0;

createtriggert1

onworker

forinsert,update

as

if(selectsagefrominserted)@b

set@c=@a

else

set@c=@b

return@c

end

4)在查询分析器中,调用此函数,输出两个数中的最大值;

printdbo.func(29,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论