学生图书借阅管理数据库查询练习及答案
发布时间:2018-06-30 12:24:43
发布时间:2018-06-30 12:24:43
学生图书借阅管理数据库数据查询
一、简单查询
1. 查询所有学生的信息
Select * from 学生信息
2. 查询学生的借书证号,姓名,班级
Select 借书证号,姓名,班级
from 学生信息
3. 按图书定价从高到低查询所有图书的图书名称和定价,定价相同再按图书名称升序排列
Select 图书名称,定价
From 图书信息
Order by 定价 desc, 图书名称
4. 查询图书定价最高的三本图书信息
Select top 3 with ties *
From 图书信息
Order by 定价 desc
5. 查询图书信息表中的图书类别,并消除重复记录
Select distinct 图书类别
From 图书信息
6. 查询图书信息表中的图书名称、书号,输出结果以书名和ISBN为列标题
Select 图书名称 as 书名,书号 as ISBN
From 图书信息
7. 查询所有图书名称,和打八折之后的定价,并以折后价命名
Select 图书名称,定价*0.8 as 折后价
From 图书信息
8. 查询所有图书的入馆年数
Select 图书名称,year(getdate())-year(入馆时间) as 入馆年数
From 图书信息
二、条件查询
查询计算机类的图书信息
Select * from 图书信息
Where 图书类别=’计算机’
2.查询图书定价大于30的图书名称和定价
Select 图书名称,定价
from 图书信息
Where 定价>30
3.查询图书定价在20~30之间的图书信息
Select *
from 图书信息
Where 定价 between 20 and 30
4.查询图书定价大于30的计算机类图书信息
Select *
from 图书信息
Where 定价>30 and 图书类别=’计算机’
5.查询图书定价大于30或计算机类的图书信息
Select *
from 图书信息
Where 定价>30 or图书类别=’计算机’
6.查询计算机、英语和电子类的图书信息
Select *
from 图书信息
Where 图书类别 in(’计算机’,’英语’,’电子’)
7.查询姓李的学生信息
Select *
From 学生信息
Where 姓名 like ‘李%’
8.查询姓李的名为一个汉字的学生信息
Select *
From 学生信息
Where 姓名 like ‘李_’
9.查询图书名称包含“网页”的图书信息
Select *
From 图书信息
Where 图书名称 like ‘%网页%’
10.查询姓张、王、李、赵的学生信息
Select * from 学生信息
Where 姓名 like ‘[张王李赵]%’
11.查询借书证号第五位字符为2~5的学生信息
Select * from 学生信息
Where 借书证号 like ‘____[2-5]%’
12. 查询没有还书的借阅信息
Select *
From 借阅信息
Where 还书日期 is null
三、统计查询
1.查询所有图书的平均定价,最高定价,最低定价和定价总和
Select avg(定价),max(定价),min(定价),sum(定价)
From 图书信息
2.查询计算机类图书的数目
Select count(*) as 计算机类图书数目
From 图书信息
Where 图书类别=’计算机’
3.查询图书类别的种数
Select count(distinct 图书类别) as 图书类别种数
From 图书信息
4.查询各类别图书数目和平均定价
Select 图书类别,count(*) as 图书数目,avg(定价) as 平均定价
From 图书信息
Group by 图书类别
5.查询各类别图书平均定价大于25元的图书类别和平均定价,并按平均定价进行降序排列
Select图书类别,avg(定价) as 平均定价
From 图书信息
Group by 图书类别
Having avg(定价)>25
Order by 平均定价 desc
6.查询计算机类图书信息,并计算图书数目和平均定价
Select *
From 图书信息
Where 图书类别=’计算机’
Compute count(图书编号),avg(定价)
7.查询各类别图书信息,并计算各类图书数目和平均定价
Select *
From 图书信息
Order by图书类别
Compute count(图书编号),avg(定价) by 图书类别
四、连接查询
1. 查询学生信息表和借阅信息表的所有组合
Select *
From 学生信息 cross join 借阅信息
2. 查询借过书的学生借书证号,姓名,借书的图书编号,借书日期和还书日期。
Select a.借书证号,姓名,图书编号,借书日期,还书日期
From 学生信息 as a join 借阅信息 as b
on a.借书证号=b.借书证号
3. 查询06电子商务1班学生的借阅信息。
Select 姓名,班级,b.*
From 学生信息 as a join 借阅信息 as b
on a.借书证号=b.借书证号
where 班级='06电子商务1班'
4. 查询借过书的学生借书证号,姓名,借书的图书编号,图书名称,借书日期和还书日期。
Select a.借书证号,姓名,c.图书编号,图书名称,借书日期,还书日期
From 学生信息 as a join 借阅信息 as b
on a.借书证号=b.借书证号
join 图书信息 as c
on c.图书编号=b.图书编号
5. 查询姓李的借过计算机类图书的学生姓名,借书的图书名称和图书类别。
Select 姓名,图书名称,图书类别
From 学生信息as a join 借阅信息as b
on a.借书证号=b.借书证号
join 图书信息as c
on c.图书编号=b.图书编号
where 姓名like '李%' and 图书类别='计算机'
6. 查询图书名称相同,但作者不同的图书信息。
Select a.图书名称,a.作者
From 图书信息 as a join 图书信息 as b
on a.图书名称=b.图书名称
where a.作者<>b.作者
7. 查询所有学生的借阅信息。
Select *
From 学生信息 as a left join 借阅信息 as b
on a.借书证号=b.借书证号
8. 查询所有图书和学生的借阅信息。
Select *
From 学生信息 as a full join 借阅信息 as b
on a.借书证号=b.借书证号
full join 图书信息 as c
on c.图书编号=b.图书编号
五、嵌套查询
1.查询王大力同学借书的图书编号
Select 图书编号 from 借阅信息
Where 借书证号=(select 借书证号 from 学生信息
Where 姓名=’王大力’)
2.查询图书定价大于平均定价的图书信息
Select * from 图书信息
Where 定价>(select avg(定价) from 图书信息)
3.查询计算机类图书的名称、图书类别、定价和平均定价
Select 图书名称,图书类别,定价,(select avg(定价) from 图书信息
Where 图书类别=’计算机’)
from 图书信息
Where 图书类别=’计算机’
4.查询借过图书的学生借书证号和姓名
Select 借书证号,姓名
From 学生信息
Where 借书证号 in(select 借书证号 from 借阅信息)
5.查询被王大力同学借过的图书名称
Select 图书名称 from 图书信息
Where 图书编号 in(select 图书编号 from借阅信息
Where 借书证号=(select 借书证号
from 学生信息
where 姓名=’王大力’)
6.查询计算机类图书定价比电子类图书最高定价还高的图书信息
Select * from 图书信息
Where 图书类别=’计算机’ and 定价>all(select 定价 from 图书信息
Where 图书类别=’电子’)
7.查询计算机类图书定价比电子类图书最低定价高的图书信息
Select * from 图书信息
Where 图书类别=’计算机’ and 定价>any(select 定价 from 图书信息
Where 图书类别=’电子’)
8.利用exists查询所有被借过的图书信息
Select * from 图书信息
Where exists(select * from 借阅信息
Where 借阅信息.图书编号=图书信息.图书编号)
9.查询图书信息表中大于同类图书平均定价的图书名称和定价
Select 图书名称,定价 from 图书信息 as a
Where 定价>(select avg(定价) from 图书信息 as b
Where b.图书类别=a.图书类别)