mysql图书管理系统(39-48)源代码

-- 八、    多表连接查询

内连接 inner join

-- 39、    用条件连接查询每个读者的借书证编号、姓名、类别、可借数量、借期。

SELECT r.借书证编号, r.姓名, c.类别, c.可借数量, c.借期
FROM 读者 r
JOIN 读者类别 c ON r.读者类别编号 = c.读者类别编号;

SELECT r.借书证编号, r.姓名, c.类别, c.可借数量, c.借期
FROM 读者 r
JOIN 读者类别 c ON r.读者类别编号 = c.读者类别编号;

select 借书证编号,姓名,类别,可借数量,借期

from 读者,读者类别

where 读者.读者类别编号=读者类别.读者类别编号;

-- 40、    用条件连接查询“机械工业出版社”图书的借阅信息,包括:图书条码号、书名、出版社、借出日期。

select 图书.图书条码号,书名,出版社,借出日期

from 图书,图书详情,借阅

where 出版社='机械工业出版社' and 图书.图书条码号=借阅.图书条码号 and 图书详情.ISBN=图书.ISBN;

1、 select a.图书条码号,c.书名,c.出版社,b.借出日期 FROM 图书 a JOIN 借阅 b ON b.图书条码号=a.图书条码号 JOIN 图书详
情 c ON c.ISBN=a.ISBN WHERE c.出版社 ="机械工业出版社";

2、select tushu.图书条码号, tuxiang.书名, tuxiang.出版社, jieyue.借出日期
from 图书详情 tuxiang,
     图书 tushu,
     借阅 jieyue
where (tuxiang.ISBN = tushu.ISBN
  and jieyue.图书条码号 = tushu.图书条码号)
  and 出版社 = '机械工业出版社';

-- 41、    用内连接查询读者中有哪些人是教师,显示每个读者的借书证编号、姓名、类别、可借数量、借期。

select a.借书证编号,a.姓名,b.类别,b.可借数量,c.借出日期
FROM 读者 a JOIN 读者类别 b ON b.读者类别编号 = a.读者类别编号
    JOIN 借阅 c ON c. 借书证编号 = a.借书证编号 WHERE b.类别 = '教师';
select a.借书证编号,a.姓名,b.类别,b.可借数量,c.借出日期
FROM 读者 a JOIN 读者类别 b ON b.读者类别编号 = a.读者类别编号
    JOIN 借阅 c ON c. 借书证编号 = a.借书证编号 WHERE b.类别 = '教师';

-- 42、    用内连接查询借阅了“高等数学”的读者姓名、电话、借书证号、可借数量

select 姓名, 电话, a.借书证编号, 可借数量
from 读者类别 b join 读者 c join 借阅 a
    on b.读者类别编号 = c.读者类别编号 and c.借书证编号 = a.借书证编号 and a.图书条码号 in
(select 图书条码号 from 图书 join 图书详情 on 图书.ISBN = 图书详情.ISBN where 图书详情.书名 = '高等数学');
 select a.姓名,a.电话,c.借书证编号,b.可借数量,d.ISBN

   FROM 读者 a

   inner  JOIN 借阅 c ON c.借书证编号=a.借书证编号

   inner  JOIN 图书 d ON d.图书条码号=c.图书条码号

   inner   JOIN 读者类别 b ON b.读者类别编号=a.读者类别编号

     WHERE d.ISBN='964-223-154-3';

-- 43、    用内连接查询“信息工程学院”读者的借阅信息,包括:借书证号、姓名、部门、图书条码号、ISBN、书名、出版社、借出日期。

select a.借书证编号,a.姓名,a.部门,b.图书条码号,b.借出日期,c.ISBN,d.书名,d.出版社

FROM 读者 a

inner JOIN 借阅 b ON b.借书证编号=a.借书证编号

inner JOIN  图书 c ON c.图书条码号=b.图书条码号

inner JOIN 图书详情 d ON d.ISBN=c.ISBN

WHERE a. 部门 ='信息工程学院';


-- 自连接:即将同一个表的不同行连接起来
-- 自连接必须为表指定两个别名,使之在逻辑上成为两张表。
-- 44、    用自连接查询相同姓名读者的信息。

 SELECT * FROM 读者 a JOIN 读者 b ON a.姓名 = b.姓名 AND a.借书证编号 != b.借书证编号;

2、 SELECT * FROM 读者 a JOIN 读者 b ON a.姓名 = b.姓名 ;

-- 外连接
-- 45、    用外连接查询每个读者的个人信息及其借阅的图书条码号和借出日期、归还日期(含未借阅过的读者信息)。

select 读者.*,借阅.图书条码号,借阅.借出日期,借阅.归还日期

from 借阅

right join 读者 on 读者.借书证编号= 借阅.借书证编号;

-- 46、    用外连接查询每个读者借阅图书情况(含未借阅过的读者信息和未被借阅过的图书信息)。

select  读者.借书证编号,姓名,图书.图书条码号,借出日期,归还日期,ISBN
from 读者 left join 借阅  on 读者.借书证编号=借阅.借书证编号
         left join 图书 on 图书.图书条码号=借阅.图书条码号
union
select  读者.借书证编号,姓名,图书.图书条码号,借出日期,归还日期,ISBN
from 读者 right join 借阅  on 读者.借书证编号=借阅.借书证编号
right join 图书 on 图书.图书条码号=借阅.图书条码号;

-- 完全连接
-- 47、    用交叉连接查询所有读者可能的借阅情况。

SELECT *
FROM 读者 , 借阅 ;

--  UNION联合查询(并):查询结果的结构一致时可将两个查询进行并(UNION)操作。要求查询属性列的数目和顺序都必须相同,对应属性列的数据类型兼容。
-- 48、    查询借阅了0000001或0000019的读者的姓名,不包含重复的记录行。
 

select distinct 姓名 from 读者 left join 借阅 on 读者.借书证编号 = 借阅.借书证编号 where 图书条码号 = '0000001'

union

select 姓名 from 读者 left join 借阅 on 读者.借书证编号 = 借阅.借书证编号 where 图书条码号 = '0000019';

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 3
    评论
图书管理系统是一种用于管理图书信息、借阅记录和读者信息的软件系统。该系统通常包括图书信息管理、借阅管理、读者管理、权限管理等功能模块。Python是一种流行的编程语言,而MySQL是一种常用的关系型数据库管理系统,它们能够很好地配合进行软件开发。 在Python中,我们可以使用Django或Flask等框架来构建图书管理系统。通过这些框架,我们可以快速搭建起系统的基本结构和功能模块。比如,可以使用Django的模型(Model)来定义图书、借阅记录和读者等数据模型,使用视图(View)来处理用户请求和页面展示,使用模板(Template)来生成网页界面。 而数据库部分则可以使用MySQL来存储系统的数据,比如图书信息表、借阅记录表和读者信息表等。在Python中,我们可以使用pymysql或者SQLAlchemy等库来连接MySQL数据库,执行SQL语句并处理数据。 总体来说,图书管理系统的Python和MySQL源代码主要包括系统结构和功能的构建、数据模型的定义和数据库连接等部分。通过Python和MySQL的配合,我们可以建立一个高效、稳定的图书管理系统,为图书馆和读者提供方便快捷的服务。 当然,开发图书管理系统需要具备一定的编程知识和数据库操作经验,同时也需要对图书管理系统的需求进行充分的分析和设计,才能够编写出高质量的Python和MySQL源代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃java的羊儿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值