学生图书借阅管理数据库查询练习及答案

发布时间: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.图书类别)

学生图书借阅管理数据库查询练习及答案

相关推荐