SQL---实验四
作者:互联网
1. 在BookDb数据库中,使用下列SQL语句将输出什么?
(1) SELECT Count(*) FROM 读者信息
输出的是“读者信息”表中的记录的总数:
(2) SELECT Substring(姓名,1,2) FROM 读者信息
输出的是“读者信息”表中“姓名”列的第一个字符开始进行字符串截取,截取的字符长度为2
(3) SELECT Upper('database')
输出的结果是将字段'database'转化成大写’DATABASE’:
(4) SELECT Replicate('database',3)
输出的结果是将字段''里面的字符(包括空格)重复输出三次:
(5) SELECT 2,3,Power(2,3)
输出的是2,3,8(power是幂运算,Power(2,3)表示2的3次幂):
(6) SELECT Year(Getdate()),Month(Getdate()),Day(Getdate())
输出的是年月日:
2. 在BookDb数据库中使用SELECT语句进行基本查询。
(1) 在读者信息表中,查询每个读者的借书证号、姓名、办卡时间信息。
语句:
SELECT 借阅证号 ,姓名,办卡时间 FROM 读者信息
(2) 在图书信息表中,查询所有图书的图书编号、书名、作者和出版单位。
语句:
SELECT 图书编号,书名,作者,出版单位 FROM 图书信息
(3) 在借阅信息表中,查询所有借阅信息。
语句:
SELECT * FROM 借阅信息
(4) 在读者信息表中查询各单位的读者人数。
语句:
select 单位,COUNT(*)人数 from 读者信息,借阅信息
where 读者信息.借阅证号=借阅信息.借阅证号
group by 读者信息.单位
(5) 将借阅信息表的借阅记录按借阅日期降序进行排序。
语句:
select * from 借阅信息 order by 借阅日期 desc
(6) 对借阅信息表使用GROUP BY查询子句列出各个读者借书的本数。
语句:
select 借阅证号,COUNT(*)本数 from 借阅信息
group by 借阅信息.借阅证号
3. 使用SELECT语句进行条件查询。
(1) 找出所有信息学院的读者的姓名和联系电话。
select 姓名,联系电话 from 读者信息
where 单位='信息学院'
(2) 在借阅信息表中查询借阅了图书编号为“10160003”的图书的借阅证号和归还日期。
select 借阅证号,归还日期 from 借阅信息
where 图书编号='10160003'
(3) 查询所有书名中有“数据库”的图书的编号、书名、作者和出版单位。
select 图书编号,书名,作者,出版单位 from 图书信息 where 书名 LIKE'%数据库%'
(4) 查询办卡时间在“2010-1-1” 之前的读者的所有信息。
select * from 读者信息 where 办卡时间<'2010-1-1'
(5) 对借阅信息表,查询借阅状态为“1” 的借阅证号和图书编号。
select 借阅证号,图书编号 from 借阅信息 where 借阅状态='1'
(6) 对图书信息表,查询分类号为“15” 的图书信息。
select * from 图书信息 where 分类号='15'
(7) 查询“人民邮电出版社”出版的所有图书信息。
select * from 图书信息 where 出版单位 ='人民邮电出版社'
(8) 找出借书超过6本的读者,输出借书证号及所借图书册数。
select 借阅证号,count(*) AS 借书册数 from 借阅信息 group by 借阅证号 having count(*)>6;
(9)查询过期未还图书,输出借阅者证号、书号及还书日期
4.嵌套查询。
(1) 在读者信息表中查找与“刘卫华”单位相同的所有读者的姓名、联系电话。
select 姓名,联系电话 from 读者信息 where 单位=
(select 单位 from 读者信息 where 姓名='刘卫华')
(2) 使用IN子查询查找所借图书编号为“10160001” 和“10160002” 的读者的借阅证号、姓名和单位。
select 读者信息.借阅证号,姓名,单位 from 读者信息
where 读者信息.借阅证号 in
(select 借阅信息.借阅证号 from 借阅信息 where 图书编号
in ('10160001','10160002'))
(3) 查询现有图书中价格最高的图书,输出书名及作者。
select 书名,作者 from 图书信息 where 单价=
(select Max(单价) from 图书信息)
5. 联结查询。
(1) 查询在当天借阅了图书的读者的借阅证号、姓名。
select 读者信息.借阅证号,姓名 from 读者信息,借阅信息
where 读者信息.借阅证号=借阅信息.借阅证号
AND 借阅日期=GETDATE()
(2) 查询借阅了“数据库技术与应用”图书的读者的借阅证号、姓名和借阅日期。
select 读者信息.借阅证号,姓名,借阅日期 from 读者信息
INNER JOIN 借阅信息 on 读者信息.借阅证号=借阅信息.借阅证号
INNER JOIN 图书信息 on 图书信息.图书编号=借阅信息.图书编号
where 图书信息.书名='数据库技术与应用'
(3) 查询所有研究生的借书情况,要求列出借阅证号、姓名、图书书名。
select 读者信息.借阅证号,姓名,书名 from 读者信息 JOIN 借阅信息 on
读者信息.借阅证号=借阅信息.借阅证号
JOIN 图书信息 on 借阅信息.图书编号=图书信息.图书编号
where 读者信息.借阅证件类型='研究生'
(4) 查询所有读者的借阅信息,要求列出借阅证号、姓名、借阅书的本数,没有借阅图书的读者的借阅本数为空。
提示:使用左外联结。
select 读者信息.借阅证号 ,读者信息.姓名, count(借阅信息.图书编号) AS 借书数目 from 读者信息
left outer JOIN 借阅信息 on 读者信息.借阅证号=借阅信息.借阅证号
group by 读者信息.借阅证号,读者信息.姓名
(5) 查询所有图书的借阅情况,要求列出借书证号、书名、借阅日期,没有被借阅的图书的借阅证号值为空。
提示:使用右外联结。
select 借阅信息.借阅证号 ,图书信息.书名 ,借阅日期 from 借阅信息
right outer JOIN 图书信息 on 图书信息.图书编号 =借阅信息.图书编号
group by 借阅信息.借阅证号,图书信息.书名,借阅日期
(6) 查询当前借了“计算方法”但没有借“计算方法习题集”的读者,输出其借书证号,并按证号降序排序输出。
select a.借阅证号 from 借阅信息 a,图书信息 b
where a.图书编号=b.图书编号
AND 书名='计算方法'
AND NOT EXISTS(select * from 借阅信息 c,图书信息 d
where c.图书编号=d.图书编号
AND 书名='计算方法习题集'
AND c.借阅证号=a.借阅证号) order by a.借阅证号 DESC
标签:读者,信息,实验,select,证号,SQL,借阅,图书 来源: https://blog.csdn.net/qq_39566715/article/details/96360662