数据库实验报告大全广工蔡延光版.docx

上传人:b****8 文档编号:10239081 上传时间:2023-02-09 格式:DOCX 页数:38 大小:288.71KB
下载 相关 举报
数据库实验报告大全广工蔡延光版.docx_第1页
第1页 / 共38页
数据库实验报告大全广工蔡延光版.docx_第2页
第2页 / 共38页
数据库实验报告大全广工蔡延光版.docx_第3页
第3页 / 共38页
数据库实验报告大全广工蔡延光版.docx_第4页
第4页 / 共38页
数据库实验报告大全广工蔡延光版.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

数据库实验报告大全广工蔡延光版.docx

《数据库实验报告大全广工蔡延光版.docx》由会员分享,可在线阅读,更多相关《数据库实验报告大全广工蔡延光版.docx(38页珍藏版)》请在冰豆网上搜索。

数据库实验报告大全广工蔡延光版.docx

数据库实验报告大全广工蔡延光版

自动化学院自动化专业班学号

姓名实验时间2011.3.14教师评定

实验题目数据定义

实验报告一

一、实验目的与要求

目的:

使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。

要求:

1、在SQLSERVER2000查询分析器中,利用SQL语言中CREATE、DROP命令实现数据库的创建及删除工作。

2、在SQLSERVER2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表的创建、更新、删除工作,并实现基本表中各类完整性约束条件的限定。

3、在SQLSERVER2000查询分析器中,利用SQL语言中CREATE、ALTER及DROP命令进行基本表中索引的创建、更新、删除工作。

4、完成上述工作后,在SQLSERVER2000企业管理器中,查看是否成功创建实验所要求数据库、基本表、各类完整性约束条件及索引等内容。

二、实验方案

所有实验内容必须在SQLServer2000的查询分析器中完成,设置查询分析器的结果区为StandardExecute(标准执行)或ExecutedGrid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。

要求完成如下内容:

1.定义数据库

定义一个借阅数据库,要求所定义的数据库大小为1M,且数据库名称为Labery_学号。

2.定义下列数据库基本表

在所定义的借阅数据库Labery_学号中,按要求定义如下数据库表:

1)书(book)

列名

别名

类型及长度

是否可为空

书号

bno

char(8)

类别

category

varchar(10)

书名

title

varchar(40)

出版社

press

varchar(30)

年份

book_year

Int

作者

author

char(20)

价格

price

decimal(7,2)

总藏书量

book_total

Int

2)借书证(card)

列名

别名

类型及长度

是否可为空

卡号

cno

char(7)

姓名

name

char(8)

单位

department

varchar(40)

类别

type

char

(1)

3)借书记录(borrow)

列名

别名

类型及长度

是否可为空

卡号

cno

char(7)

书号

bno

char(8)

借书日期

borrow_date

smalldatetime

还书日期

return_date

smalldatetime

3.完整性约束条件:

主要内容为:

1)确定各基本表的主码;

2)确定各基本表的外码;

3)要求在定义各基本表的同时,确定如下完整性约束条件

1、定义各基本表主码,并且要求主属性不能为空;

2、如果有外码,定义各基本表外码;

3、要求检查借书证中属性Type的值是否为('T','G','U','F'));

4、借书记录borrow基本表中borrow_date默认日期为当前时间。

4)确定各基本表哪些字段需要建立索引。

三、实验结果和数据处理

1.SQL语句:

CREATEDATABASELabery_3108001518

ONPRIMARY(NAME=Labery_3108001518,

FILENAME='C:

\DocumentsandSettings\Administrator\桌面\数据库实验\3108001518.MDF',

SIZE=1MB,

MAXSIZE=6MB,

FILEGROWTH=1MB)

运行结果:

2.SQL语句:

USElabery_3108001518;

CREATETABLEbook

(bnochar(8)notnullprimarykey,

categoryvarchar(10)notnull,

titlevarchar(40)notnull,

pressvarchar(30),

book_yearintnotnull,

authorchar(20),

pricedecimal(7,2)notnull,

book_totalintnotnull)

运行结果:

SQL语句:

CREATETABLEcard

(cnochar(7)notnullprimarykey,

namechar(8)notnull,

departmentvarchar(40),

typechar

(1)notnullcheck(typein('T','G','U','F')))

运行结果:

SQL语句:

CREATETABLEborrow

(cnochar(7)notnullforeignkey(cno)referencescard(cno),

bnochar(8)notnullforeignkey(bno)referencesbook(bno),

borrow_datesmalldatetimenotnulldefaultgetdate(),

return_datesmalldatetime)

运行结果:

建立索引:

CREATEINDEXb_book_yearONbook(book_yeardesc)

CREATEINDEXb_borrow_dateONborrow(borrow_datedesc)

 

四、结论

通过本实验基本学会使用SQL语言实现数据库的创建、删除;基本表的创建、删除、更新工作;以及索引的创建、删除工作。

五、问题与讨论

1)如果在创建关系数据库基本表时,未创建完整性约束条件,对于数据库会有何影响?

答:

以后增加数据库数据时,有可能插入无效或重复的数据。

当想删除有多张表中的一张时,由于删除了该表导致其他表数据不完整不能用。

2)如果在创建关系数据库基本表时,未创建索引,对于数据库的运行性能会有何影响?

答:

索引是以牺牲内存空间换取检索时间的,未创建索引时会使运行时的检索变得很慢。

 

自动化学院自动化专业班学号

姓名实验时间2011.3.14教师评定

实验题目数据更新

实验报告二

一、实验目的与要求

目的:

要求学生熟练掌握和使用Transact-SQL及SQLserver企业管理器向数据库中输入数据、修改数据和删除数据的操作。

要求学生按要求实现基本表数据更新,并在数据更新过程中,验证各类数据完整性约束条件,即实体完整性、参照完整性及用户定义完整性约束条件。

要求:

1、使用SQLSERVER2000查询分析器,并用INSERT、UPDATE、DELETE语句进行基本表数据更新,要求在进行数据的更新时,所修改的记录不仅满足数据完整性约束条件,并注意各个数据表之间的关联性;

2、在数据更新过程中,通过分析SQL命令执行后数据的差异,来验证SQL命令的正确性,并通过查看运行结果的合法性,来验证各类完整性约束条件正确性。

3、熟练使用企业管理器进行数据库的建立和维护操作,并掌握利用查询分析器进行数据维护的方法。

二、实验方案

第1、2项实验内容必须在SQLServer2000的查询分析器中完成,设置查询分析器的结果区为StandardExecute(标准执行)或ExecutedGrid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。

具体实验步骤如下:

1、数据输入

分别向book、card、borrow三个基本表中输入10条数据(备注:

考虑到以后的可操作性,希望数据的数据具有一定的现实意义),其次插入的数据满足数据完整性约束条件及表与表之间的关联性的要求。

表1书

书号

类别

书名

出版社

年份

作者

价格

总藏书量

O001

计算机类

数据库系统

机械工业出版社

2004

张三

28

4

0002

计算机类

操作系统

清华大学出版社

2000

李四

35

3

0003

数学类

高等数学

科学出版社

1998

王五

15

10

0004

数学类

离散数学

机械工业出版社

2006

赵六

22

2

0005

计算机类

C语言

清华大学出版社

2005

钱七

40

1

0006

文学类

心灵鸡汤

电子工业出版社

2002

NULL

19

5

0007

文学类

白鹿原

1999

NULL

25

6

0008

历史类

中国近代史

文艺出版社

2001

李立

32

4

0009

历史类

中国古代史

文艺出版社

2001

李立

32

4

0010

计算机类

JAVA语言

机械工业出版社

2004

王明

38

2

表2借书证

卡号

姓名

单位

类别

T001

李媛媛

自动化学院

T

T002

王丽丽

自动化学院

T

T003

张强

计算机学院

T

T004

赵刚

理学院

T

G001

吴明

自动化学院

G

G002

钱清

计算机学院

G

U001

李峰

自动化学院

U

U002

白岚

艺术学院

U

F001

张卫国

F

F002

李爱国

F

表3借书记录

卡号

书号

借书日期(月/日/年)

还书日期(月/日/年)

T001

0001

2011-1-1

2011-1-4

T001

0002

2011-1-1

2011-1-4

T001

0005

2011-1-1

2011-1-4

T001

0010

2011-1-1

2011-1-4

T003

0001

2011-2-15

2011-3-4

T003

0002

2011-2-15

2011-3-4

T003

0003

20011-2-15

2011-3-4

T003

0004

2011-2-15

2011-3-4

G002

0005

2011-2-5

2011-3-14

G002

0007

2011-8-10

G002

0010

2011-8-10

U001

0009

2011-2-2

2011-3-9

U001

0008

2011-2-2

2011-3-9

U002

0007

2011-2-2

2011-3-9

U002

0004

2011-2-2

2011-3-9

F001

0001

2011-2-12

2011-3-11

F001

0002

2009-2-12

2011-3-11

F001

0003

2011-2-12

2011-3-11

F002

0006

2011-1-20

2、修改数据

修改book、card、borrow三个基本表的数据,并要求将book表中price属性的值全部打8折、‘清华大学出版社’的书籍总藏书量增加10本等,同时满足数据完整性约束条件。

3、删除操作

删除book、card、borrow三个数据表中的某些数据,并注意数据完整性约束条件的限制。

要求删除borrow表中借书日期为1年前的数据,以及要求删除‘电子工业出版社’的书籍。

三、实验结果和数据处理

1、输入数据SQL语句:

INSERTINTObookVALUES('0001','计算机','数据库系统','机械工业出版社',2004,'张三',28,4)

INSERTINTObookVALUES('0002','计算机','操作系统','清华大学出版社',2000,'李四',35,3)

INSERTINTObookVALUES('0003','数学类','高等数学','科学出版社',1998,'王五',15,10)

INSERTINTObookVALUES('0004','数学类','离散数学','机械工业出版社',2006,'赵六',22,2)

INSERTINTObookVALUES('0005','计算机','C语言','清华大学出版社',2005,'钱七',40,1)

INSERTINTObookVALUES('0006','文学类','心灵鸡汤','电子工业出版社',2002,null,19,5)

INSERTINTObookVALUES('0007','文学类','白鹿原',null,1999,null,25,6)

INSERTINTObookVALUES('0008','历史类','中国近代史','文艺出版社',2001,'李立',32,4)

INSERTINTObookVALUES('0009','历史类','中国近代史','文艺出版社',2001,'李立',32,4)

INSERTINTObookVALUES('0010','JAVA语言','数据库系统','机械工业出版社',2004,'王明',38,2)

Select*frombook运行结果如下:

INSERTINTOcardVALUES('T001','李媛媛','自动化学院','T')

INSERTINTOcardVALUES('T002','王丽丽','自动化学院','T')

INSERTINTOcardVALUES('T003','张强','计算机学院','T')

INSERTINTOcardVALUES('T004','赵刚','理学院','T')

INSERTINTOcardVALUES('G001','吴明','自动化学院','G')

INSERTINTOcardVALUES('G002','钱清','计算机学院','G')

INSERTINTOcardVALUES('U001','李峰','自动化学院','U')

INSERTINTOcardVALUES('U002','白岚','艺术学院','U')

INSERTINTOcardVALUES('F001','张卫国',NULL,'F')

INSERTINTOcardVALUES('F002','李爱国',NULL,'F')

Select*fromcard运行结果如下:

INSERTINTOborrowVALUES('T001','0001','2011-1-1','2011-1-4')

INSERTINTOborrowVALUES('T001','0002','2011-1-1','2011-1-4')

INSERTINTOborrowVALUES('T001','0005','2011-1-1','2011-1-4')

INSERTINTOborrowVALUES('T001','0010','2011-1-1','2011-1-4')

INSERTINTOborrowVALUES('T003','0001','2011-2-15','2011-3-4')

INSERTINTOborrowVALUES('T003','0002','2011-2-15','2011-3-4')

INSERTINTOborrowVALUES('T003','0003','2011-2-15','2011-3-4')

INSERTINTOborrowVALUES('T003','0004','2011-2-15','2011-3-4')

INSERTINTOborrowVALUES('G002','0005','2011-2-5','2011-3-14')

INSERTINTOborrow(cno,bno,borrow_date)VALUES('G002','0007','2011-8-10')

INSERTINTOborrow(cno,bno,borrow_date)VALUES('G002','0010','2011-8-10')

INSERTINTOborrowVALUES('U001','0009','2011-2-2','2011-3-9')

INSERTINTOborrowVALUES('U001','0008','2011-2-2','2011-3-9')

INSERTINTOborrowVALUES('U002','0007','2011-2-2','2011-3-9')

INSERTINTOborrowVALUES('U002','0004','2011-2-2','2011-3-9')

INSERTINTOborrowVALUES('F001','0001','2009-2-12','2011-3-11')

INSERTINTOborrowVALUES('F001','0002','2009-2-12','2011-3-11')

INSERTINTOborrowVALUES('F001','0003','2009-2-12','2011-3-11')

INSERTINTOborrow(cno,bno,borrow_date)VALUES('F002','0006','2011-1-20')

Select*fromborrow运行结果:

2、修改数据

UPDATEBOOKSETPRICE=0.8*PRICE

UPDATEBOOKSETbook_total=book_total+10WHEREpress='清华大学出版社'

3、删除操作

deletefromborrowwhereborrow_date<=getdate()-365

deletefromborrowwherebnoin(selectbnofrombookwherepress='电子工业出版社')

deletefrombookwherepress='电子工业出版社'

四、结论

通过本实验基本学会掌握和使用Transact-SQL及SQLserver企业管理器向数据库中输入数据、修改数据和删除数据的操作,实现带参照完整性的数据操作。

五、问题与讨论

1)如果在实验一中,没有定义数据完整性约束条件,则在数据录入或删除过程中会对数据库造成什么影响?

答:

录入数据时,有可能插入无效或重复的数据。

删除数据时系统没提示有可能残留一些待删除的数据,导致其他表数据不完整不能用。

2)思考如何利用SQLServer2000中所提供的时间函数实现对时间的操作,如需要查询当前时间50天以前的图书的借阅数据该如何处理?

答:

调用getdate()函数可以返回当前系统日期,如下:

Select*fromborrowwhereborrow_date<=getdate()-50

自动化学院自动化专业班学号

姓名实验时间2011.3.16教师评定

实验题目简单查询和连接查询

实验报告三

一、实验目的与要求

目的:

使学生熟练掌握简单表的数据查询、数据联接查询以及数据排序的操作方法,并加深对SQL和Transact-SQL语言的查询语句的理解。

要求:

使用SQLSERVER2000查询分析器,并用SELECT语句及WHERE查询条件进行简单查询及连接查询实验,其次使用ORDERBY排序子句实现输出结果的排序。

主要实验内容包括:

1、简单查询

2、连接查询

二、实验方案

所有查询必须在SQLServer2000的查询分析器中完成,设置查询分析器的结果区为StandardExecute(标准执行)或ExecutedGrid(网格执行)方式.发布执行命令.并在结果区中查看查询结果,如果结果不正确则需要进行修改,直到正确为止。

要求完成以下查询要求:

1、将计算机类的书存入永久的计算机图书表;

2、查询发生了借阅关系的借书证卡号,并按卡号降序排列;

3、查询清华大学出版社出版的图书情况;

4、查询目前被借出去的书籍的书号、借书证号以及借出日期,并按借出日期排序;

5、查询“李媛媛”老师所借阅的书籍的书名;

6、查询借书者的编号,姓名,单位,所借书号,书名和借阅日期,并按读者编号排序。

三、实验结果和数据处理

1、输入SQL语句:

CREATETABLEbcompute

(bnochar(8)notnullprimarykey,

categoryvarchar(10)notnull,

titlevarchar(40)notnull,

pressvarchar(30),

book_yearintnotnull,

authorchar(20),

pricedecimal(7,2)notnull,

book_totalintnotnull)

insertintobcompute

select*frombookwherecategory='计算机'

2、selectdistinctcnofromborroworderbycnodesc

3、select*frombookwherepress='清华大学出版社'

4、selectbno,cno,borrow_datefromborrow

wherereturn_dateisnullorderbyborrow_date

5、selecttitlefrombook,card,borrow

where(o=o)and(borrow.bno=book.bno)and(name='李媛媛')

6、selecto,name,department,borrow.bno,title,borrow_datefromborrow,card,book

where(o=o)and(borrow.bno=book.bno)orderbyo

三、结论

通过本实验基本学会掌握简单表的数据查询、数据联接查询以及数据排序的操作方法,并加深对SQL和Transact-SQL语言的查询语句的理解。

四、问题与讨论

1、对于该条查询语句——查询"U002"所借阅的书籍的信息,分别使用左连接、右连接和自然连接命令,试比较所产生的结果有何不同,说明其原因,并指出对于该查询要求,哪种连接更符合实际要求。

答:

使用左连接:

selectbook.*frombookleftjoinborrowon(book.bno=borrow.bnoandcno='U002')

使用右连接:

selectbook.*f

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 文学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1