当前位置: 首页 > news >正文

sql第二次上机作业

1查找借阅了ISBN为“4-6045-1023-4”的借书证号,读者姓名,专业名和借书时间

use tsgl
go
select Reader.Lno,Rname,Spec,Lend.Bordate
FROM Reader,Lend
WHERE Reader.Lno=Lend.Lno AND ISBN = '4-6045-1023-4'

在这里插入图片描述
2查找借阅了《数据库原理》一书的借阅信息,结果显示借书证号,读者姓名,专业名,借书时间(要求用WHERE方法实现)

use tsgl
go
select Reader.Lno,Rname,Spec,Lend.Bordate
FROM Reader,Lend,Book
WHERE Reader.Lno=Lend.Lno AND Lend.ISBN = Book.ISBN AND Bname = '数据库原理'

在这里插入图片描述
3查询读者的借阅信息,显示借书证号、姓名、专业名、ISBN、书名、借书时间,并按借阅时间降序排序(要求用JOIN方法实现)

USE tsgl
GO
SELECT Reader.Lno, Rname, Spec, Lend.ISBN, Bname, Lend.Bordate
FROM Reader 
INNER JOIN Lend ON Reader.Lno = Lend.Lno 
INNER JOIN Book ON Lend.ISBN = Book.ISBN 
ORDER BY Lend.Bordate DESC

在这里插入图片描述
4从Lend表中查询至少被两名同学借阅的图书,显示ISBN号、书名、和借阅人数。

USE tsgl
GO
SELECT Lend.ISBN, Bname, count(Lend.Lno) AS 借阅人数
FROM Lend JOIN BookON Lend.ISBN=Book.ISBN
GROUP BY Lend.ISBN ,Book.Bname Having count(Lend.Lno)>=2

在这里插入图片描述
5 查询与“王朋”同一专业的读者信息

USE tsgl
GO
SELECT *
FROM Reader
WHERE Dept = (SELECT DeptFROM ReaderWHERE Rname = '王朋'
)

在这里插入图片描述
如果已知王朋是哪个系

USE tsgl
GO
SELECT *
FROM Reader
WHERE Dept = '计算机系'

在这里插入图片描述
结果是一样的
6 查询从来没有借阅过图书的学生信息

USE tsgl
GO
SELECT *
FROM Reader
WHERE Lno NOT IN(SELECT DISTINCT LnoFROM LendWHERE Lno IS NOT NULL
)

在这里插入图片描述
一开始我写的没有让Lend里的Lno不等于NULL时查询出来的是空我很纳闷

USE tsgl
GO
SELECT *
FROM Reader
WHERE Lno NOT IN(SELECT DISTINCT LnoFROM Lend
)

在这里插入图片描述
然后问gpt说可能我的Lno 存在空值:如果 Reader 表或 Lend 表中的 Lno 列中存在 NULL 值,则导致该查询无法正确匹配,结果集为空。您可以使用 IS NOT NULL 运算符或 INNER JOIN 语句的方式规避这个问题。
于是我查了一下Lend的Lno发现真的存在NULL值我也不知道为什么!!!
在这里插入图片描述
7 查询没有借书未还的读者信息(利用Lend和Reader表的外连接实现查询)

USE tsgl
GO
SELECT *
FROM Reader FULL JOIN Lend ON Reader.Lno = Lend.Lno
WHERE Lend.Lno IS NULL

在这里插入图片描述
第七题有点儿不懂可能写的不对hhh
8 查询曾借阅了同一种图书的所有读者对

USE tsgl
GO
SELECT L1.Lno, L2.Lno
FROM Lend L1
INNER JOIN Lend L2 ON L1.ISBN = L2.ISBN AND L1.Lno < L2.Lno
WHERE L1.ISBN IN (SELECT ISBNFROM LendGROUP BY ISBNHAVING COUNT(*) > 1
)

在这里插入图片描述
感觉这个题有点儿坑,因为三个人借了同一本书有三个读者对,两个人借了同一本书只有一个读者对,只有一个人借了同一本书就没有读者对,也不知道我理解的对不对~
9从lend表和Reader表中查询各专业读者的人数,平均借阅册数,结果显示专业名、专业人数和人均节约图书册数、统计借阅册数不要直接使用Reader表中的Bornum属性值来实现。

USE tsgl
GO
SELECT Reader.Spec AS 专业名, COUNT(DISTINCT Reader.Lno) AS 专业人数, ROUND(COUNT(Lend.ISBN) / COUNT(DISTINCT Reader.Lno),2) AS 人均借阅册数
FROM Reader
LEFT JOIN Lend 
ON Reader.Lno = Lend.Lno
GROUP BY Reader.Spec;

在这里插入图片描述
人数是没错的,但人均借阅册数我不知道对不对
10 列出有超期还书记录的读者的借书证号、姓名及书名

USE tsgl
GO
SELECT L.Lno, R.Rname, B.Bname
FROM Lend L
JOIN Reader R ON L.Lno = R.Lno
JOIN Book B ON L.ISBN = B.ISBN
WHERE DATEDIFF(day, L.Bordate, GETDATE()) > 60

在这里插入图片描述
仅供个人参考后面几题我也不知道对不对

http://www.lryc.cn/news/210012.html

相关文章:

  • 辅助驾驶功能开发-功能规范篇(22)-3-L2级辅助驾驶方案功能规范
  • Python基础入门例程16-NP16 发送offer(列表)
  • Web前端面试之Vue—对Vue的理解
  • C/C++晶晶赴约会 2020年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析
  • js 解决 H 指数
  • 在JS中,var 、let 、const 总结
  • 关于网络安全运营工作与安全建设工作的一些思考
  • 【机器学习可解释性】4.SHAP 值
  • OpenCV官方教程中文版 —— 直方图均衡化
  • 如何使用navicat图形化工具远程连接MariaDB数据库【cpolar内网穿透】
  • 【uniapp】uview1.x使用upload上传图片
  • 基于nodejs+vue食力派网上订餐系统
  • 软件测试常用的8种功能测试类型有哪些?
  • 动态规划之01背包问题
  • 安防监控项目---boa服务器的移植
  • Gson 字符串常用转换方式(集合转换为Json数组
  • MyBatis的使用(XML映射文件)
  • localhost知识
  • PyTorch入门学习(八):神经网络-卷积层
  • 【EI会议征稿】 2024年遥感、测绘与图像处理国际学术会议(RSMIP2024)
  • MySQL 8 - 处理 NULL 值 - is null、=null、is not null、<> null 、!= null
  • 高教社杯数模竞赛特辑论文篇-2018年C题:大型百货商场会员画像描述(附获奖论文及MATLAB代码实现)
  • #力扣:2315. 统计星号@FDDLC
  • 设计模式——单例模式详解
  • 一、W5100S/W5500+RP2040树莓派Pico<静态配置网络信息>
  • 【C++的OpenCV】第十四课-OpenCV基础强化(二):访问单通道Mat中的值
  • elementUI el-collapse 自定义折叠面板icon 和 样式 或文字展开收起
  • 如何用个人数据Milvus Cloud知识库构建 RAG 聊天机器人?(上)
  • 2023年江西省“振兴杯”工业互联网安全技术技能大赛暨全国大赛江西选拔赛 Write UP
  • PostMan 之 Mock 接口测试