实验2SQL语言文档格式.docx
- 文档编号:17455395
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:16
- 大小:20.94KB
实验2SQL语言文档格式.docx
《实验2SQL语言文档格式.docx》由会员分享,可在线阅读,更多相关《实验2SQL语言文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
4、通过SQL语句对图书信息表进行修改:
将定价的数据类型改为REAL。
5、通过SQL语句删除课程信息表。
(三)创建和删除索引
1、使用SQL语句在图书信息表上创建一个非聚簇索引IX_S_QUANTITY,要求按照该表中库存数字段的降序创建。
2、使用SQL语句在读者信息表上创建一个唯一的非聚簇索引IX_S_NAME,要求按照该表中的字段的升序创建。
3、使用SQL语句删除之前创建的两个索引。
(四)数据库及数据表设计
根据周围的实际应用情况,自选一个小型的数据库应用项目进行研究,完成该系统的设计。
通过需求分析,列出系统的主要功能,并完成该系统数据库的逻辑结构设计。
例如可选择学籍管理系统、企业进销存管理系统、人事管理系统或在线考试系统等。
(五)数据查询
通过SSMS向各数据表中添加以下记录。
(1)图书类别信息表
类别编号
类别名称
1
数学
4
文学
7
建筑
2
英语
5
艺术
8
化学
3
计算机
6
电子信息
9
物理
(2)图书信息表
图书编号
书名
作者
定价
库存数
10001
数据库管理
王珊
高等教育
35.50
10
10002
软件测试
贺平
机械工业
24.60
10003
C++程序设计
谭浩强
清华大学
30.00
10004
红楼梦
雪芹
人民文学
70.00
10005
西游记
罗贯中
60.00
10006
红与黑
司汤达
50.00
10007
高等数学
翼
28.00
10008
有机化学
翔
29.00
10009
大学英语
王琳
25.00
10010
英语教程
(3)读者信息表
读者编号
性别
学号
班级
所在系
R10001
小航
男
1351101
13511
计算机系
R10002
王文广
女
1351102
R10003
理
1351103
R10004
彦宏
1351201
13512
R10005
丽霞
1351202
R10006
王强
1221104
12211
电子系
R10007
宝田
1221204
12212
R10008
宋文霞
1261104
12611
建工系
R10009
芳菲
1381104
13811
外语系
R10010
常江宁
1381204
13812
(4)借阅信息表
借阅日期
归还日期
2014-9-20
2014-10-20
2014-9-30
2014-10-30
2014-5-20
2014-6-20
2014-5-30
2014-6-30
2014-5-22
2014-6-22
对以上数据表,完成以下操作:
(1)查询每本图书的所有信息;
(2)查询每个读者的读者编号、和班级;
(3)查询每条借阅记录的借阅天数(函数DATEDIFF获取两个日期的差);
(4)查询被借阅过的图书的图书编号;
(5)查询图书编号为“10006”的书名和作者;
(6)查询库存数在5到10本之间的图书的图书编号和书名;
(7)查询计算机系或电子系姓的读者信息;
(8)查询书名包括“英语”的图书信息;
(9)统计男读者、女读者的人数;
(10)统计各类图书的类别编号、平均定价以及库存总数;
(11)统计每本书籍借阅的人数,要求输出图书编号和所借人数,查询结果按人数降序排列;
(12)查询有库存的各类别图书的类别编号、类别名称和借阅数量;
(13)查询借阅了“大学英语”一书的读者,输出读者、性别、系部;
(14)查询每个读者的读者编号、、所借图书编号以及所借阅日期;
(LEFTOUTERJOIN)
(15)查询现有图书中价格最高的图书,输出书名、作者、定价;
(16)查询借阅了“大学英语”但没有借阅“C++程序设计”的读者,输出读者、性别、系部;
(17)统计借阅了2本以上图书的读者信息;
(18)查询借阅了“大学英语”一书或者借阅了“C++程序设计”一书的读者信息;
(用集合查询完成)
(19)查询既借阅了“大学英语”一书又借阅了“C++程序设计”一书的读者信息;
(20)查询计算机系中比其他系所有读者借书数量都多的读者的信息;
(21)在读者信息表中插入一条新的记录(读者编号:
R10011;
:
三;
所在系:
电子系);
(22)定义一个表tb_bknew,包含图书编号、书名和类别名称字段,要求将类别编号为“3”的图书的图书编号、书名和类别名称插入到tb_bknew表中;
(23)将类别编号为“3”的所有图书的库存数增加5;
(24)将“C++程序设计”这本书的归还日期增加一个月(函数DATEADD)。
(25)删除为“三”的读者的信息;
(26)删除tb_bknew表中的所有数据;
(27)创建一个名为“读者借阅信息_VIEW”的视图,要求显示计算机系所有读者的借阅信息,包括读者编号、、所在系、图书编号、书名和借阅日期等字段,更新该视图时要保证只有计算机系的读者借阅信息;
(28)创建一个名为“图示借阅信息_VIEW”的视图,要求显示图书的借阅情况,包括图书编号、书名、库存数、借阅次数字段;
(29)查询借阅次数大于2的图书的图书编号、书名、库存数和借阅次数;
(30)删除“图示借阅信息_VIEW”视图。
三、实验步骤
createdatabased_library
on
(name=db_library_data,
filename='
d:
2015405A607武俊其\db_library_data.mdf'
size=10,
maxsize=300,
filegrowth=1)
logon
(name=db_library_log,
filename='
2015405A607武俊其\db_library_data.ldf'
size=5,
maxsize=200,
filegrowth=2)//创建数据库
createschema"
L_C"
AUTHORIZATIONWU//创建模式
CREATETABLEtb_course
(
课程编号int,
课程名char(20),
先修课char(20),
学分int
);
CREATETABLEtb_booktype
类别编号int,
类别名称char(20)
CREATETABLEtb_book
图书编号int,
书名char(20),
作者char(20),
char(20),
定价float,
库存数int
);
CREATETABLEtb_reader
读者编号char(20),
char(20),
性别char
(2),
学号int,
班级char(10),
系部char(20)
CREATETABLEtb_borrow
借阅日期char(20),
归还日期char(20),
go
ALTERTABLEtb_readerDROPCOLUMN系部;
//删除系部
ALTERTABLEtb_readerADD所在系CHAR;
//添加所在系
LTERTABLEtb_bookALTERCOLUMN定价REAL;
//定价的数据类型改为REAL
DROPTABLEtb_courseCASCADE;
//删除课程信息表
CREATEUNIQUEINDEXIX_S_QUANTITYONtb_book(库存数);
CREATEUNIQUEINDEXIX_S_NAMEONtb_reader();
//创建索引
DROPINDEXIX_S_QUANTITYONtb_book;
DROPINDEXIX_S_NAMEONtb_reader;
//删除索引
1.查询每本图书的所有信息
select*
fromtb_book;
2.查询每个读者的读者编号,和班级
select读者编号,,班级
fromtb_reader;
3.查询每条借阅记录的借阅天数(函数DATEDIFF获取两个日期的差)
selectdatediff(DAY,借阅日期,归还日期)借阅天数
fromtb_borrow
4.查询被借阅过的图书的图书编号
selectdistinct图书编号
fromtb_borrow;
5.查询图书编号为"
10006"
的书名和作者
select书名,作者
fromtb_book
where图书编号='
10006'
;
6.查询库存数在到本之间的图书的图书编号和书名
select图书编号,书名
where库存数between5and10;
7.查询计算机系或电子系姓的读者信息
select*
fromtb_reader
wherelike'
%'
and(所在系='
计算机系'
or所在系='
电子系'
8.查询书名包括"
英语"
的图书信息
where书名like'
%英语'
9.统计男读者,女读者的人数
select性别,COUNT(*)人数
groupby性别;
10.统计各类图书的类别编号,平均定价以及库存总数
select类别编号,AVG(定价)平均定价,sum(库存数)库存总数
groupby类别编号;
11.统计每本书籍借阅的人数要求输出图书编号和所借人数查询结果按人数降序排列
select图书编号,COUNT(*)所借人数
groupby图书编号
orderbyCOUNT(*)desc;
12.查询有库存的各类别图书的类别编号,类别名称和借阅数量
selecttb_book.类别编号,类别名称,COUNT(*)借阅数量
fromtb_book,tb_booktype,tb_borrow
wheretb_book.类别编号=tb_booktype.类别编号andtb_book.图书编号=tb_borrow.图书编号
groupbytb_book.类别编号,tb_booktype.类别名称;
13.查询借阅了大学英语一书的读者,输出读者,性别,系部
select,性别,所在系
where读者编号in
(select读者编号
where图书编号in
(select图书编号
fromtb_book
where书名='
大学英语'
)
)
14.查询每个读者的读者编号,,所借图书编号及所借阅日期
selecttb_reader.读者编号,,借阅日期
fromtb_readerleftouterjointb_borrowontb_reader.读者编号=tb_borrow.读者编号;
15.查询现有图书中价格最高的图书,输出书名,作者,定价
select书名,作者,定价
where定价=
(selectMAX(定价)
16.查询借阅了大学英语但没有借阅C++程序设计的读者输出读者,性别,系部
select,性别,所在系
fromtb_reader
wherein
(select
where图书编号in
(select图书编号
))
andnotin(select
fromtb_borrow
where书名='
C++程序设计'
)
17.统计借阅了本以上图书的读者信息
(select读者编号
groupby读者编号
havingCOUNT(*)>
2);
18.查询计算机系中比其他系所有读者借书数量都多的读者的信息
fromtb_readertb
where所在系='
and读者编号in
(selecttb_reader.读者编号
fromtb_reader,tb_borrow
wheretb_reader.读者编号=tb_borrow.读者编号
andtb_reader.读者编号=tb.读者编号
groupbytb_reader.读者编号
havingcount(图书编号)>
any
(
selectcount(图书编号)
wheretb_reader.读者编号=tb_borrow.读者编号and所在系<
>
'
19.查询借阅了大学英语一书或者借阅了C++程序设计一书的读者信息用集合查询完成
where读者编号in
(selecttb_borrow.图书编号
fromtb_borrow,tb_book
wheretb_borrow.图书编号=tb_book.图书编号and书名='
union
wheretb_borrow.图书编号=tb_book.图书编号and书名='
20.查询既借阅了大学英语一书又借阅了C++程序设计一书的读者信息用集合查询完成
where读者编号in(select读者编号
wheretb_borrow.图书编号=tb_book.图书编号and书名='
intersect
(select读者编号
21.在读者信息表中插入一条新的记录
insert
intotb_reader(读者编号,,所在系)
values('
R10011'
'
三'
22.定义一个表tb_booknew,要求将类别编号为"
3"
的图书的图书编号,书名和类别名称插入到tb_bknew表中
CREATETABLEtb_booknew
书名char(10),
类别名称char(10),
insert
intotb_booknew
select图书编号,书名,类别名称
fromtb_book,tb_booktype
wheretb_booktype.类别编号=tb_book.类别编号andtb_book.类别编号='
3'
23.将类别编号为的所有图书的库存数增加
updatetb_book
set库存数=库存数+5
where类别编号='
24.将"
C++程序设计"
这本书的归还日期增加一个月
updatetb_borrow
set借阅日期=DATEADD(MONTH,1,归还日期)
(select图书编号
25.删除为三的读者的信息
delete
where="
三"
26.删除tb_bknew表中的所有数据
fromtb_booknew;
27.创建一个名为"
读者借阅信息_VIEW”的视图
createview读者借阅信息_VIEW
as
selecttb_borrow.读者编号,,所在系,tb_book.图书编号,书名,借阅日期
fromtb_book,tb_reader,tb_borrow
wheretb_book.图书编号=tb_borrow.图书编号
andtb_reader.读者编号=tb_borrow.读者编号
and所在系='
28.创建一个名为“图书借阅信息_VIEW”的视图
createview图书借阅信息_VIEW
selecttb_book.图书编号,书名,库存数,COUNT(*)借阅次数
fromtb_book,tb_borrow
groupbytb_book.图书编号,书名,库存数;
29.查询借阅次数大于2的图书的图书编号,书名,库存数和借阅次数
from读者借阅信息_VIEW
where借阅次数>
2;
30.删除"
图示借阅信息_VIEW"
视图
dropview图书借阅信息_VIEWcascade;
四.实验总结
1.通过本章学习,创建数据库,创建模式,创建基本表。
2.对基本表进行删除,查询,更新,修改。
3.创建视图,并对视图进行更新,删除。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 SQL 语言
![提示](https://static.bdocx.com/images/bang_tan.gif)