数据库librarydb多表查询的操作方法
数据库librarydb多表查询
#全连接、内连接、右连接、左连接
1.查询张小东的基本情况和图书借阅情况
2.查询借阅状态为借阅的图书的书号和条码
3.查询每个读者的姓名、单位、可借天数和可借数量
4.查询每个读者的借阅信息,包括读者姓名、书名、借阅日期、借阅状态
5.查询库存表中每本书的条码、位置和借阅的读者编号。没有借阅的,读者编号用NULL表示
#查询张小东的基本情况和图书借阅情况 SELECT * FROM reader JOIN borrow ON reader.`读者编号` = borrow.`读者编号` WHERE reader.`姓名` = '张小东'; #查询借阅状态为借阅的图书的书号和条码 SELECT storeroom.`书号`, borrow.`条码` FROM borrow JOIN storeroom ON borrow.`条码` = storeroom.`条码` WHERE borrow.`借阅状态` = '借阅'; #查询每个读者的姓名、单位、`可借天数`和可借数量 SELECT reader.`姓名`,reader.`单位`,readertype.`可借天数`,readertype.`可借数量` FROM reader JOIN readertype ON reader.`类别号` = readertype.`类别号`; #查询每个读者的借阅信息,包括读者姓名、书名、借阅日期、借阅状态 SELECT reader.`姓名`,books.`书名`,borrow.`借阅日期`,borrow.`借阅状态` FROM borrow JOIN reader ON borrow.`读者编号` = reader.`读者编号` JOIN storeroom ON borrow.`条码` = storeroom.`条码` JOIN books ON storeroom.`书号` = books.`书号`; #查询库存表中每本书的条码、位置和借阅的读者编号。没有借阅的,读者编号用NULL表示 SELECT storeroom.`条码`, storeroom.`位置`,borrow.`读者编号` FROM borrow RIGHT JOIN storeroom ON borrow.`条码` = storeroom.`条码`;
补充案例:
MySQL数据库——图书管理系统中LibaryDB数据库中的查询
实验内容:
图书管理系统中的图书借阅数据库,数据库名为LibraryDB,对LibaryDB数据库完成以下查询。
项目1 单表查询
(1)查询库存表中书号和库存状态列,要求消除重复行。
(2)查询读者表中的姓名和单位列,显示的列标题改为姓名显示“name”,单位为“college”。
(3)查询图书表中每种书的书名和金额(金额=数量*单价)。
项目2 条件查询
(1)查询图书表中数量高于10本的图书的书名、数量和出版社。
(2)查询库存表中库存状态为“借出”的图书的信息。
(3)查询图书表中财经和文学类图书中数量大于5本的图书信息。
项目3 多表查询
(1)查询“张小东”的基本情况和图书借阅情况。
(2)查询借阅状态为“借阅”的图书的书号和条码。
实验结果截图如下:
项目1:
查询库存表中书号和库存状态列,要求消除重复行
select distinct 书号,库存状态
-> from 库存表;
查询读者表中的姓名和单位列,显示的列标题改为姓名显示“name”,单位为“college”:
select 姓名 as name,单位 as college
-> from 读者表;
查询图书表中每种书的书名和金额(金额=数量*单价):
select 书名,round(数量*单价,2) as 金额
-> from 图书表;
项目2:
查询图书表中数量高于10本的图书的书名、数量和出版社:
select 书名,数量,出版社
-> from 图书表
-> where 数量 > 10;
查询库存表中库存状态为“借出”的图书的信息:
select 条码,书号,位置,库存状态
-> from 库存表
-> where 库存状态 = '借出';
查询图书表中财经和文学类图书中数量大于5本的图书信息:
elect *
-> from 图书表
-> where (类别 ='文学' or 类别 ='财经')
and 数量 > 5;
项目3:
查询“张小东”的基本情况和图书借阅情况:
select 姓名,读者表.读者编号,借阅表.条码,借阅日期,还书日期,借阅状态
from 读者表 join 借阅表
on 读者表.读者编号 = 借阅表.读者编号
where 姓名 = '张小东';
查询借阅状态为“借阅”的图书的书号和条码:
mysql> select distinct 库存表.书号, 库存表.条码
from 借阅表,库存表
where 借阅状态 = '借阅' and 库存状态 = '借出';
到此这篇关于数据库librarydb多表查询的文章就介绍到这了,更多相关数据库librarydb多表查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
sqlserver和oracle中对datetime进行条件查询的一点区别小结
系统中涉及公文列表的部分,需要支持对时间列的搜索功能,但必须要同时支持sqlserver和oracle两种数据库,而这在这两种数据库中编写查询语句的时候有一些不大一样的地方,无法实现一条语句实现两个数据库的正常查询,所以需要做一些调整。2009-06-06
最新评论