⑴ 請用sql語句完成下面設計 1創建以存儲過程 pro borrow,通過輸入參數學號,判斷該學生是否有書未還
你這樣問,沒人會回答的,最少要把有哪些表列出來,表裡面有哪些欄位
比如是不是有 借書信息表、學生信息表 這些表裡麵包含哪些欄位都要列出來,不然沒法回答
⑵ SQL 圖書管理系統的查詢語句
1. 求總藏書量、藏書總金額,總庫存冊數、最高價、最低價。
select count(圖書編號) as 總藏書量,
sum(定價) as 藏書總金額,
sum(實際數量) as 總庫存冊數,
max(定價) as 最高價,
min(定價) as 最低價
from 圖書卡片
go
2. 列出藏書在10本以上的書(書名、作者、出版社、年份)。
select 圖書名稱,作者姓名,出版社,出版日期
from 圖書卡片
group by 圖書編號 having(coung(1)>10)
order by 圖書名稱
go
3. 哪些出版社的藏書種類數超過100種。
select 出版社 as '藏書種類數超過100種的出版社'
from 圖書卡片
group by 出版社 having(count(類別)>100)
order by 出版社
go
4. 目前實際已借出多少冊書?
select sum(借出數量) as '借出數量'
from 圖書卡片
go
5. 年份最久遠的書。
select top 1 with ties 圖書名稱 from 圖書卡片
order by 出版日期
go
6. 「資料庫系統原理教程,王珊編,清華大學出版社,1998年出版」還有幾本?
select count(1) from 圖書卡片
where concaints(摘要,'"資料庫系統原理教程,王珊編,清華大學出版社,1998年出版"')
go
7. 哪一年的圖書最多?
select top 1 with ties convert(substring(出版日期,1,4)) as 年份,count(1) as '圖書數量'
from 圖書卡片
group by 出版日期
order by 圖書數量 desc
go
8. 哪本借書證未歸還的圖書最多?
select top 1 with ties A.讀者編號,count(1) as '借書數量'
from 圖書卡片 A,借閱 B
where A.圖書編號=B.圖書編號
group by A.讀者編號
order by 借書數量 desc
go
9、平均每本借書證的借書冊數。
select avg(借閱數量) as '平均每本借書證的借書冊數'
from 借閱
go
10.哪個系的同學平均借書冊數最多?
select top 1 with ties A.工作單位,avg(借閱數量) as '平均借閱數量'
from 讀者 A,借閱 B
where A.讀者編號=B.讀者編號
group by A.工作單位
order by 平均借閱數量' desc
go
11. 最近兩年都未被借過的書。
select 圖書名稱
from 圖書卡片
where 圖書編號 in(select 圖書編號 from 借閱 where datediff(year,借閱日期,getdate())>2)
go
12. 列出那些借了圖書逾期未歸還的借書證號和圖書名。
select A.讀者編號 as '借書證號',B.圖書名稱
from 讀者 as A inner join 圖書卡片 as B on A.圖書編號=B.圖書編號
where A.應歸還日期<getdate() and A.實際歸還日期 is null
go
13.今年未借過書的借書證。
select 讀者編號
from 讀者
where 讀者編號 not in(select 讀者編號
from 讀者
where datediff(year,借閱日期,getdate())=0)
go
14. 今年那種書出借最多?
select top 1 with ties A.類別,count(1) as '借出數量'
from 圖書卡片 A,借閱 B
where datediff(year,B.借閱日期,getdate())=0
group by A.類別
order by 借出數量' desc
go
⑶ 使用SQL語言完成下列問題
1.
select b.借書證號,b.圖書ID,a.書名,a.出版社ID,b.借書日期
from 圖書表 a
inner join 借閱表 b on a.圖書ID=b.圖書ID
where b.借書證號 in ('J001','J002','J005')
2.
select b.借書證號,c.姓名,b.圖書ID,a.書名,a.出版日期
from 圖書表 a
inner join 借閱表 b on a.圖書ID=b.圖書ID
inner join 讀者表 c on b.借書證號=c.借書證號
where b.借書證號 in ('J001','J002','J005')
3.
select *
into #JY1
from 借閱表
where 標記=false
4.
select 版次,avg(單價) as 平均單價
from 圖書表
group by 版次
5.
select 出版社ID,avg(單價) as 平均單價,max(單價) as 最高單價,min(單價) as 最低單價
from 圖書表
group by 出版社ID
6.
select a.*
from 圖書表 a
where
exists
(
select 1
from 借閱表
where 借書日期>'2008-01-01 00:00:00'
and 圖書ID=a.圖書ID
)
⑷ SQL server查詢已借閱圖書達兩個月(60天)及以上,至今沒有歸還的讀者信息情況(要求利用子
語句如下:
select dzh as 讀者號,(select dzm from reader where dzh=a.dzh) as 讀者名,(select sfz from reader where dzh=a.dzh) as 身份證,(select dh from reader where dzh=a.dzh) as 電話,(select dz from reader where dzh=a.dzh) as 地址 from record as a where ghbj='否' and datediff(dd,jyrq,getdate())>=60
其實這題用Inner Join來做更好,用子查詢會大大影響查詢速度,不過既然題目是這樣出的就這么寫吧。
⑸ sql查詢問題
這年頭學生都當起老師來了。還會使用激勵模式。
告訴你簡單的辦法,只要你會操作SQLSERVER就可以了。
建立這幾個表,然後選擇表右鍵,生成SQL腳本,建立表的SQL語句就有了。
其他的SQL你選擇表右鍵,打開表,查詢,然後自己填一下,SQL也就有了。
如果這也不會,那還是乖乖看書。
⑹ sql語句查詢(圖書借閱)
1,查詢所有借過書的學生編號,姓名,專業,?SELECT DISTINCT borrow.stuid, student.major
FROM borrow LEFT OUTER JOIN
student ON borrow.stuid = student.stuID2,借書但是未歸還的學生姓名及該生未歸還書的圖書數量?SELECT student.stuName, COUNT(1) AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid
WHERE (borrow.b_time IS NULL)
GROUP BY student.stuName3,比如書名是《天龍八部》,請分別查詢借過它的人的姓名,借書日期,看了多少天,要考慮若某人借了但是沒還,則在看了多久一欄填上(尚未歸還)SELECT student.stuName, borrow.t_time, CASE WHEN borrow.b_time IS NULL THEN '尚未歸還' ELSE cast(datediff(day,t_time,b_time) as varchar) END AS Expr1
FROM borrow LEFT OUTER JOIN
student ON student.stuID = borrow.stuid LEFT OUTER JOIN
book ON borrow.bid = book.Bid
WHERE (book.title = '天龍八部')
⑺ SQL查詢過期未還書的讀者的信息和所借的書的信息
select 圖書信息表.*,讀者信息表.* from 圖書信息表 a,讀者信息表 b ,圖書借還表 c where a.讀者編號 =c.讀者編號 and b.圖書編號=c.圖書編號 and datetime()>應該還書時間 and 實際還書時間=(實際還書時間的默認值)