环境:Windows 10操作系统,SQL Server 2019开发平台。
根据数据库db_Book中的tb_BookInfo表、tb_ReaderInfo表、tb_BookType表、tb_LentInfo表,完成下列查询操作,各表结构如下:
书籍信息表(tb_BookInfo)
存储内容 |
存储书籍信息情况 |
|||
字段名称 |
中文意义 |
数据类型 |
数据长度 |
其它 |
SJBH |
书籍编号 |
varchar |
50 |
NOT NULL |
SJMC |
书籍名称 |
varchar |
50 |
NOT NULL |
LBBH |
类别编号 |
char |
2 |
|
CBS |
出版社 |
varchar |
50 |
|
ZZ |
作者 |
varchar |
20 |
|
DJRQ |
登记日期 |
Datetime |
||
SFJC |
是否借出 |
bit |
读者信息表(tb_ReaderInfo)
存储内容 |
存储读者基本信息情况 |
|||
字段名称 |
中文意义 |
数据类型 |
数据长度 |
其它 |
DZBH |
编号 |
char |
12 |
主键 |
DZMC |
姓名 |
varchar |
50 |
NOT NULL |
BZSJ |
办证日期 |
Datetime |
默认getdate() |
|
LXDH |
联系电话 |
varchar |
30 |
NOT NULL |
书籍类别表(tb_BookType)
存储内容 |
存储书籍类别信息 |
|||
字段名称 |
中文意义 |
数据类型 |
数据长度 |
其它 |
LBBH |
类别编号 |
char |
2 |
主键 |
LBMC |
类别名称 |
char |
30 |
NOT NULL |
借书信息表(tb_LentInfo)
存储内容 |
存储书籍借阅信息情况 |
|||
字段名称 |
中文意义 |
数据类型 |
数据长度 |
其它 |
DZBH |
读者编号 |
char |
12(外键) |
复合主键 |
SJBH |
书籍编号 |
varchar |
50(外键) |
|
JSRQ |
借书日期 |
Datetime |
NOT NULL |
|
YHSRQ |
应还书日期 |
Datetime |
约束 应还>借书日 |
NOT NULL |
HSRQ |
实还书日期 |
Datetime |
1.查询tb_BookInfo(书籍信息表)中的所有书籍的书籍编号、书籍名称、是否
借出字段的信息。
Select SJBH,SJMC,SFJC from tb_BookInfo
2.查询tb_ReaderInfo(读者信息表)中所有读者的信息。
select * from tb_ReaderInfo
3.使用别名定义的三种方法(括号内为别名)查询每个读者的DZBH (编号)、DZXM(姓名)和LXDH (联系电话)。
select DZBH as '编号',DZXM as '姓名',LXDH as '联系电话' from tb_ReaderInfo
4.查询tb_BookInfo(书籍信息表)中前5条记录的书籍编号、书籍名称。
select top 5 SJBH,SJMC from tb_BookInfo
5.查询tb_BookInfo(书籍信息表)中2017年4月份登记的图书名称和登记日期。
select SJMC,DJRQ from tb_BookInfo where year(DJRQ)=2017 and month(DJRQ)=4
6.查询在2017-3-1到2017年4-1之间借出的书籍编号、读者编号。
select DZBH,SJBH from tb_LentInfo where JSRQ>='20170301' and JSRQ<='20170401'
7.查询不是清华大学出版社、大连理工大学出版社出版的书籍信息。
select * from tb_BookInfo where CBS not in ('清华大学出版社','大连理工大学出版社')
8.在tb_ReaderInfo(读者信息表)中找到所有姓名中姓李并且带飞字的读者。
select * from tb_ReaderInfo where DZXM like '李%飞%'
9.查询书籍信息表,按书籍名称降序排序,书名相同按登记日期先后顺序排列。
注:由高到低为降序,由低到高为升序(由于日期为小在前,大在后,所以日期的先后顺序为升序)
select * from tb_BookInfo order by SJMC desc,DJRQ asc
10.查询tb_BookInfo(书籍信息表),按书籍类别统计各类书籍的数量。
select LBBH,count(*) as 数量 from tb_BookInfo group by LBBH
11.按出版社统计各个出版社的书籍数量,并显示数量超过100本的出版社名称
select CBS,count(*) as sum1 from tb_BookInfo group by CBS having (count(*)>100)
12.统计2017年4月份借出书籍的数量,并按数量降序排列
select SJMC,count(*) 数量 from tb_BookInfo where year(DJRQ)=2017 and month(DJRQ)=4
group by SJMC order by 数量 desc
13.按书籍名称统计各种书籍的数量,并按书籍名称升序排序。
select SJMC,COUNT(*) 数量 from tb_BookInfo group by SJMC order by SJMC