請會做的高手,請詳細給出答案給我啊!!!謝謝


有如下三個基本表,表結構如下:
BORROWER:
借書證號 姓 名 系名 班級
98001 歐陽 信息系 98-1
98002 劉誠 信息系 98-1
98101 趙林 計算機系 98-2
……
LOANS:
借書證號 圖書登記號 借書日期
98001 T00101 2005-04-01
98002 T00102 2005-05-01
99001 T00201 2005-05-11
……
BOOKS:
索引書號 書名 作者 圖書登記號 出版社 價格
TP311.13 數據庫原理與應用 李昭原 T00101 科學 19.00
TP.065 數據庫系統原理與技術 李昭原 T00201 北航 6.50
TP.1599 數據庫系統原理教程 王珊 T00301 清華 18.50
……
請用SQL語言完成以下要求,每題均要求寫出完整語法。
①檢索借了5本書以上的學生的借書證號、姓名、系名和借書數量。
②檢索借書和劉誠同學所借圖書中任意一本相同的學生的姓名、系名、書名和借書日期。
③建立計算機系學生借書的視圖S_View,該視圖的屬性列由借書證號、姓名、班級、圖書登記號、書名、出版社和借書日期組成。
④建立一個存儲過程N_Procedure,該存儲過程的功能是向BOOKS表中添加新紀錄,如果添加成功則存儲過程返回0,否則返回1。
⑤在BORROWER表上建立一個instead of delete觸發器,該觸發器的功能是當被刪除的借書證號在LOANS表中沒有借書紀錄時則刪除該借書證號,否則不刪除該紀錄。
請會做的高手,請詳細給出答案給我啊!!!謝謝!

13 个解决方案

#1


又是作業題...

#2


是幫朋友問的,會的說一下,偶不是學計算機的

#3


貌似就是作業來着。:)

#4


不是作業,是公考的題目,請達人幫幫忙,十分感謝~

#5


很簡單的,就是沒有什么時間

#6


哦,那還是謝謝你啊,哪位大蝦有時間幫小弟寫一下呀?

#7


1.
select b.*,s.數量 from borrower b, (select 借書證號,count(*) as 數量) from loans group by 借書證號 having count(*)>5) s
where s.借書證號 = b.借書證號

2.
select a.姓名,a.系名,c.書名,b.借書日期
from borrower a,loans b,books c
where a.借書證號 = b.借書證號
and b.圖書登記號 = c.圖書登記號
and b.圖書登記號 in
(select 圖書登記號 from loans where 借書證號 in (select 借書證號 from borrower where 姓名 = '劉誠'))

3.
create view s_view
as
select a.借書證號,a.姓名,a.班級,b.圖書登記號,c.書名,c.出版社,b.借書日期
from borrower a,loans b,books c
where a.借書證號 = b.借書證號
and b.圖書登記號 = c.圖書登記號

4.
create procedure n_procedure
(
@索引書號
@書名
@作者
@圖書登記號
@出版社
@價格
)
as
begin
insert into books(索引書號,書名,作者,圖書登記號,出版社,價格) 
values(@索引書號,@書名,@作者, @圖書登記號, @出版社, @價格)
if @@rowcount > 0 then return 0  --@@rowcount當這個數大於0時,說明插入成功
return 1
end

5.觸發器我很少用過,不好意思,幫不上忙了,

#8


累呀

#9


非常感謝您,謝謝這位熱心的朋友!!
您已經幫我很多了,THX~辛苦了~~

#10


3. 
create view S_View
as
select a.借書證號,a.姓名a.班級,b.圖書登記號,b.借書日期c.書名,c.出版社 
from Borrower a,Loans b,Books c
where a.借書證號=b.借書證號 and b.圖書登記號=c.圖書登記號

#11


不用客氣,哪里不清楚,你就問吧,我會上來看的,不過不知道能不能解決, :)

#12


第五個解決了,問了一個我們公司的高手,如下
5.
create trigger t_borrower
on borrower
for delete
as
begin
if exists (select 1 from loans where 借書證號 = (select 借書證號 from deleted))
--刪除的學生還有書沒還,不讓刪除,寫回原表
begin
insert into borrower select * from deleted
end;
end;

#13


朋友真是熱心人,認識您很高興,多謝了,這就發給我朋友的~

再次感謝您!!!

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com