图书管理系统综合习题.doc

上传人:b****1 文档编号:235693 上传时间:2022-10-07 格式:DOC 页数:6 大小:56.50KB
下载 相关 举报
图书管理系统综合习题.doc_第1页
第1页 / 共6页
图书管理系统综合习题.doc_第2页
第2页 / 共6页
图书管理系统综合习题.doc_第3页
第3页 / 共6页
图书管理系统综合习题.doc_第4页
第4页 / 共6页
图书管理系统综合习题.doc_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

图书管理系统综合习题.doc

《图书管理系统综合习题.doc》由会员分享,可在线阅读,更多相关《图书管理系统综合习题.doc(6页珍藏版)》请在冰豆网上搜索。

图书管理系统综合习题.doc

图书管理系统

1需求说明(分用户分解各项功能)

图书管理系统包括图书管理,学生借阅图书管理两大功能,具体的业务功能为:

l管理员进行新书入库

l管理员对图书基本信息进行修改

l管理员记录学生的借书信息和还书信息

l管理员对图书基本信息进行查询

l管理员对图书的借出还入情况进行查询

l管理员对学生的借书还书信息进行查询

l管理员对学生的基本信息进行查询

2数据库设计

2.2实体属性分析

由图1所示的E-R模型转换成的关系模式如下:

l读者(借书证号,姓名,性别,年龄,住址),借书证号设为主键;

l图书(图书编号,图书名,图书作者,图书价格,图书类别,出版日期,出版社),图书编号设为主键;

2.1数据库概念模型设计(E-R模型)

经过分析,一个学生可以借阅多本图书,一本图书也可以被多个

系统包含的实体有学生和图书,两个实体之间通过借阅发生联系,联系的类型为多对多。

其对应的E-R模型如图1所示。

m

n

借书时间

图书

借阅

读者

还书时间

图1系统E-R模型

2.3数据库逻辑模型设计

根据数据库逻辑结构设计结果,在SQLServer2005数据库管理系统中,创建Library数据库,并在该数据库中创建3张数据表,分别为学生表student、图书表book、借阅表borrow,表结构如表1至表3所示。

表1读者表reader

字段名

数据类型

长度

约束

备注

ReaderId

char

12

主键

借书证号

Sname

Varchar

10

非空

姓名

Ssex

Char

2

默认值为“男”

性别

Sbirthday

Datetime

出生日期

Saddress

Varchar

50

住址

表2图书表book

字段名

数据类型

长度

约束

备注

Bno

Varchar

20

主键

图书编号

Bname

Varchar

20

非空

图书名

Bauthor

Varchar

20

图书作者

Bprice

tinyint

图书价格

Bcategory

Varchar

20

图书类别

Bpressday

Datetime

出版日期

Bpress

Varchar

20

出版社

表3借阅表borrow

字段名

数据类型

长度与格式

约束

备注

Bno

Varchar

20

主键,外键

图书编号

ReaderId

char

12

主键,外键

学号

Borrowday

Datetime

主键

借书时间

Returnday

Datetime

还书时间

确认转换生成的3个关系模式都符合第三范式。

3SQL语句练习

1.写出创建学生表student、借阅表borrow的SQL语句。

2.查询每个学生的基本信息,按学号升序排序。

3.查询每个学生的借阅情况(学号、姓名、书号、借书日期、还书日期),包括没有借书的学生的借阅情况。

4.查询每本图书被借阅的情况,包括没有被借阅的图书情况。

5.查询同名的图书。

6.查询借阅过“高等教育出版社”出版的图书的学生信息。

7.查询没有借过书的学生信息。

8.查询图书的总册数、最高价、最低价、总价值和平均价。

9.查询定价在30到40元之间的图书信息。

10.查询书名以“数据库”起始的图书信息。

11.统计各出版社图书的数量。

12.统计每本书的借阅次数。

13.查询每本书的基本信息,按价格降序排序。

14.统计每个学生的借书数量。

(包括已经还的书和正在借的书)

15.将“人民邮电出版社”出版的图书的价格减少3元。

16.删除没有人借阅的图书信息。

17.删除图书“数据库基础及应用”的借阅信息。

18.创建一个视图,查询每个男生的借阅情况(学号,书号,借书日期,还书日期)。

然后使用该视图,统计每个男生的借书数量。

(包括已经还的书和正在借的书)

1.写出创建读者表reader、图书表book、借阅表borrow的SQL语句。

CREATETABLEstudent(

ReaderIdchar(12)PRIMARYKEY,

Snamevarchar(10)NOTNULL,

Ssexchar

(2)default'男',

Sbirthdaydatetime,

Saddressvarchar(50)

CREATETABLEbook(

Bnovarchar(20)PRIMARYKEY,

Bnamevarchar(20)NOTNULL,

Bauthorvarchar(20),

Bpricetinyint,

Bcategoryvarchar(10),

Bpressdaydatetime,

Bpressvarchar(10)

CREATETABLEborrow(

Bnovarchar(20),

ReaderIdchar(12),

Borrowdaydatetime,

Returndaydatetime,

PRIMARYKEY(Bno,ReaderId,Borrowday),

FOREIGNKEY(Bno)

REFERENCESbook(Bno),

FOREIGNKEY(ReaderId)

REFERENCESstudent(ReaderId)

2.查询每个学生的基本信息,按学号升序排序。

select*fromstudent

orderbyReaderId

3.查询每个学生的借阅情况(学号、姓名、书号、借书日期、还书日期),包括没有借书的学生信息。

selects.ReaderId,sname,bno,borrowday,returnday

fromstudentsleftjoinborrowons.ReaderId=borrow.ReaderId

4.查询每本图书被借阅的情况,包括没有被借阅的图书情况。

select*frombookbleftjoinborrowonb.bno=borrow.bno

5.查询同名的图书。

selectdistinctb1.bno,b1.bnamefrombookb1joinbookb2onb1.name=b2.name

6.查询借阅过“高等教育出版社”出版的图书的学生信息。

select*fromstudentsjoinonborrowons.ReaderId=borrow.ReaderId

joinonbookbonb.bno=borrow.bno

wherebpress='高等教育出版社'

7.查询没有借过书的学生信息。

select*fromstudent

whereReaderIdnotin(selectdistinctReaderIdfromborrow)

8.查询图书的总册数、最高价、最低价、总价值和平均价。

selectcount(bno),max(bprice),min(bprice),sum(bprice),avg(bprice)

frombook

9.查询定价在30到40元之间的图书信息。

select*frombook

wherebpricebetween30and40

10.查询书名以“数据库”起始的图书信息。

select*frombook

wherebnamelike'数据库%'

11.统计各出版社图书的数量。

selectcount(bno)

frombook

groupbybpress

12.统计每本书的借阅次数。

selectcount(bno)

fromborrow

groupbybno

13.查询每本书的基本信息,按价格降序排序。

select*frombook

orderbybpricedesc

14.统计每个学生的借书数量。

(包括已经还的书和正在借的书)

selectcount(ReaderId)

fromborrow

groupbyReaderId

15.将“人民邮电出版社”出版的图书的价格减少3元。

updatebook

setbprice=bprice-3

wherebpress='人民邮电出版社'

16.删除没有人借阅的图书信息。

deletefrombook

wherebnonotin(selectdistinctbnofromborrow)

17.删除书名为“数据库基础及应用”的图书信息。

deletefrombook

wherebname='数据库基础及应用'

18.创建一个视图,查询每个男生的借阅情况(学号,书号,借书日期,还书日期)。

然后使用该视图,统计每个男生的借书数量。

(包括已经还的书和正在借的书)

createviewv1

as

selectborrow.ReaderId,bno,borrowday,returndayfromborrowjoinstudentsonborrow.ReaderId=s.ReaderId

wheressex='男'

selectcount(ReaderId)

fromv1

groupbyReaderId

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

当前位置:首页 > 考试认证 > IT认证

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

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