高端前端开发,西安官网seo公司,附近的网站设计开发,医院英文网站建设1查找借阅了ISBN为“4-6045-1023-4”的借书证号#xff0c;读者姓名#xff0c;专业名和借书时间
use tsgl
go
select Reader.Lno,Rname,Spec,Lend.Bordate
FROM Reader,Lend
WHERE Reader.LnoLend.Lno AND ISBN 4-6045-1023-42查找借阅了《数据库原理》一书的借阅信息读者姓名专业名和借书时间
use tsgl
go
select Reader.Lno,Rname,Spec,Lend.Bordate
FROM Reader,Lend
WHERE Reader.LnoLend.Lno AND ISBN 4-6045-1023-42查找借阅了《数据库原理》一书的借阅信息结果显示借书证号读者姓名专业名借书时间要求用WHERE方法实现
use tsgl
go
select Reader.Lno,Rname,Spec,Lend.Bordate
FROM Reader,Lend,Book
WHERE Reader.LnoLend.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 DESC4从Lend表中查询至少被两名同学借阅的图书显示ISBN号、书名、和借阅人数。
USE tsgl
GO
SELECT Lend.ISBN, Bname, count(Lend.Lno) AS 借阅人数
FROM Lend JOIN BookON Lend.ISBNBook.ISBN
GROUP BY Lend.ISBN ,Book.Bname Having count(Lend.Lno)25 查询与“王朋”同一专业的读者信息
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仅供个人参考后面几题我也不知道对不对