sql语句查询(图书借阅)

数据库,BOOK,

表1:stuent ; 字段 stuID (学生编号), stuName(姓名), major(专业)

表2:book ;字段 Bid (图书编号) title (书名),autor(作者)

表3:borrow:字段borrowID(结束编号),stuID(学生编号),BID(图书编号), T_time (结束日期),B_time(还书日期)

题目:

1,查询所有借过书的学生编号,姓名,专业,?

2,借书但是未归还的学生姓名及该生未归还书的图书数量?

3,比如书名是《天龙八部》,请分别查询借过它的人的姓名,借书日期,看了多少天,要考虑若某人借了但是没还,则在看了多久一栏填上(尚未归还)

可以每个题目有多种查询方案,最好有,

请详细分析你的思路,以及哪一种比较优越,在查询性能方面或其他方面比较,

另外请兄台谨慎提交你的答案,不要误人子弟!

有劳各位解答!多谢!
百度全部分都在这里啦,
清家当产了啊,大恩不言谢啊,

第1个回答  2009-10-13
1. 借书学生的学生编号会出现在borrow表里面。
select stuID,stuName,major
from student
where stuID in
(
select stuID from borrow
)

2. 未规还的记录B_time字段应该是NULL值。
select stuname,count(*) as 借书数量
from student as a join borrow as b
on a.stuid=b.stuid
where b.B_time is NULL
group by b.stuid,a.stuname

3. select stuname,T_time,
(case when B_time is null then '尚未归还' else cast(datediff(day,T_time,B_time) as varchar(5)) end) as 借阅天数
from student a join borrow b
on a.stuid=b.stuid
join book c
on b.bookid=c.bookid
where bookname='天龙八部'

我自己测试过,符合要求,你再看看,希望对你有帮助,互相学习~本回答被提问者采纳
第2个回答  2009-10-13
--1
SELECT stuID,stuName, major FROM STUENT
WHERE STUID IN (SELECT STUID FROM borrow)
--1_1
SELECT A.stuID,A.stuName, A.major FROM STUENT A,borrow B
WHERE A.STUID=B.STUID
--2
borrow:字段borrowID(结束编号),stuID(学生编号),BID(图书编号), T_time (结束日期),B_time(还书日期)
SELECT A.stuName, COUNT(BID) AS 图书数量 FROM STUENT A,borrow B
WHERE A.STUID=B.STUID AND GETDATE()>=B.B_TIME)
GROUP BY A.stuName
--3
SELECT A.stuName, B.T_TIME,(case b_time is null when then
DAY(B.B_TIME-T_TIME)
else '尚未归还'
end) AS 看书天数 FROM STUENT A,borrow B,BOOK C
WHERE A.STUID=B.STUID AND B.BID=C.BID
AND C.TITLE='《天龙八部》'

SQL语句查询
4、select 出版单位,最高单价=max(单价),平均价=avg(单价),册数=count(出版单位) from t where 出版单位 in (select 出版单位 from t group by 出版单位) group by 出版单位 5、select 借出数量=count(*) from 借阅 6、select 班级,总人数=count(*) from 学生表 group by 班级 兄弟,我终...

【急】如图题目:请写出以下操作的SQL语句。(1~10题)
select [书名],[出版社]from [图书信息表]where [图书状态]='借出'--3.查询借阅信息表的全部信息 select * from [借阅信息表]--4.查询图书信息表中书籍价格最便宜的三本书的书籍名称和书籍价格 select top (3) [图书名称],[价格] from [图书信息表]order by asc --5.按出版社分组查询统计...

求图书馆管理系统的数据流图(数据流程图)!!!
·通过唤醒调用SQL查询分析器,交互地设计并测试SQL语句、批处理和脚本。 ·唤醒调用为SQLServer定义的各种向导。 · 第三章图书管理系统设计分析 §4.1应用需求分析 图书管理系统需要满足来自三方面的需求,这三个方面分别是图书借阅者、图书馆工作人员和图书馆管理人员。图书借阅者的需求是查询图书馆所存的图书、个人借...

用SQL语句查询借阅图书的总数超过5本的读者号及其借阅图书数量
select 读者号,借阅图书数量 from 表 group by 读者号,借阅图书数量 having count(读者号)>5

java数据库delete语言里面不可以用and吗
错误提示是你的参数太少。你调试一下啊,看一下这个语句返回的是什么。还有就是如果是表中的字段名称,如果是中文字符,或者是其他字符,你最好给他的字段名称加上[]、或者是'。你可以这样试一下:"DELETE FROM [借阅信息] WHERE [读者编号]='" + bookerID + "' AND [图书编号]='"+str+"'...

什么是数据库的概念结构
8、一个图书馆理系统中有如下 信息:图书:书号、书名、数量、位置借书人:借书证号、姓名、单位出版社:出版社名、邮编、地址、电话、E-mail其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,...

sql语句如何查询有些表中没有的数据?
select 借书证号,姓名,单位from 读者where 借书证号 not in (select 借书证号 from 借阅 where 借书日期>=cast('2005-10-01' as datetime))这样试试 可是你第一个,为什么要用10月10号啊,不是10月1号吗?

跪求高手赖解释代码!!!
sql="select * from [ebook] where tiaoxingma='"&tiaoxingma&"'" 'SQL语句 查询ebook表 tiaoxingma为tiaoxingma值的数据 rs.open sql,conn,1,1 '执行查询 if rs.eof then '如果没有数据 response.Write "" '输出JS response.Write "alert('该书暂未加入系统,请先加入系统!')...

powerbuilder如何更新access数据库
更新数据库,可以使用相应的sql语句,记得你以前贴过的登录窗口的代码里就使用过sql语句了啊。还有就是可以使用数据窗口直接更新,连接好数据库,建立一个数据窗口打开数据表,再使用datawindow控件连接使用数据窗口,运行后datawindow控件中显示的就是数据表中的内容,可以修改,然后使用一个update()函数就可以...

vb参数不足,期待是1
If Text1.Text = "" And Text2.Text = "" Then MsgBox "用户名、密码不能为空,请请输入用户名和密码!", vbOKOnly, "信息提示"End If If Text1.Text = "" And Text2.Text <> "" Then MsgBox "用户名不能为空,请请输入用户名!", vbOKOnly, "信息提示"End If If Text1.Text <...

相似回答