[考題] 國考歷屆考題與考題觀念討論(書裡看到的選這個)請附上想法、出處
五、假設某圖書館之關聯資料庫中有七個關聯資料表,其資料綱要(data schema)如下,
底線代表主要鍵。
BOOK(BookId, Title, PublisherName)
BOOK_AUTHORS(BookId, AuthorName)
PUBLISHER(Name, Address, Phone)
BOOK_COPIES(BookId, BranchId, No_Of_Copies)
BOOK_LOANS(BookId, BranchId, CardNo, DataOut, DueDate)
LIBRARY_BRANCH(BranchId, BranchName, Address)
BORROWER(CardNo, Name, Address, Phone)
寫出以下查詢之 SQL:(40分)
(一)該圖書館的所有分館各擁有多少本書名為“三國演義”的書?
(二)現在那些借閱人在各分館借出“三國演義”這本書?
(三)現在那些借閱人在各分館有逾期未還的書?
(四)該圖書館擁有多少不同的書籍?
這題小弟在對某補習班的答案時發現補習班的答案跟我的有很大的落差
不知道是小弟我自己觀念不清楚還是補習班答案錯了,所以PO上來與各位
高手們討論~希望各位高手們賜教~謝謝~
以下是小弟的寫法:
------------------------------------------------------------------
(一) SELECT LI.BookId,LI.BranchName,No_Of_Copies
FROM BOOK,BOOK_COPIES AS CP,LIBRARY_BRANCH AS LI
WHERE BOOK.BookId=CP.BookId AND
CP.BranchId=LI_BRANCH.BranchId AND
Title="三國演義"
GROUP BY LI.BranchId,LI.BranchName;
[註]假設No_Of_Copies是重複書的數量
(二) SELECT DISTINCT CardNo,Name
FROM BOOK,BOOK_LOANS,BORROWER
WHERE BOOK.BookId=BOOK_LOANS.BookId AND
BOOK_LOANS.CardNo=BORRPW.CardNo AND
Title="三國演義";
[註]假設可能有借閱者在不同分館借閱相同的書
(三) 此小題使用SQL SERVER語法查詢:
SELECT CardNo,Name
FROM BOOK_LOANS,BORROWER
WHERE BOOK_LOANS.CardNo=BORROWER.CardNo AND
GETDATE() > DueDate;
(四) SELECT COUNT(BookId)
FROM BOOK_COPIES;
[註]假設1.不同的書會有不同的BookId
假設2.可能有書圖書館沒有收藏但把書的資料先建到資料庫中
--
五、假設某圖書館之關聯資料庫中有七個關聯資料表,其資料綱要(data schema)如下,
底線代表主要鍵。
BOOK(BookId, Title, PublisherName)
BOOK_AUTHORS(BookId, AuthorName)
PUBLISHER(Name, Address, Phone)
BOOK_COPIES(BookId, BranchId, No_Of_Copies)
BOOK_LOANS(BookId, BranchId, CardNo, DataOut, DueDate)
LIBRARY_BRANCH(BranchId, BranchName, Address)
BORROWER(CardNo, Name, Address, Phone)
寫出以下查詢之 SQL:(40分)
(一)該圖書館的所有分館各擁有多少本書名為“三國演義”的書?
(二)現在那些借閱人在各分館借出“三國演義”這本書?
(三)現在那些借閱人在各分館有逾期未還的書?
(四)該圖書館擁有多少不同的書籍?
這題小弟在對某補習班的答案時發現補習班的答案跟我的有很大的落差
不知道是小弟我自己觀念不清楚還是補習班答案錯了,所以PO上來與各位
高手們討論~希望各位高手們賜教~謝謝~
以下是小弟的寫法:
------------------------------------------------------------------
(一) SELECT LI.BookId,LI.BranchName,No_Of_Copies
FROM BOOK,BOOK_COPIES AS CP,LIBRARY_BRANCH AS LI
WHERE BOOK.BookId=CP.BookId AND
CP.BranchId=LI_BRANCH.BranchId AND
Title="三國演義"
GROUP BY LI.BranchId,LI.BranchName;
[註]假設No_Of_Copies是重複書的數量
(二) SELECT DISTINCT CardNo,Name
FROM BOOK,BOOK_LOANS,BORROWER
WHERE BOOK.BookId=BOOK_LOANS.BookId AND
BOOK_LOANS.CardNo=BORRPW.CardNo AND
Title="三國演義";
[註]假設可能有借閱者在不同分館借閱相同的書
(三) 此小題使用SQL SERVER語法查詢:
SELECT CardNo,Name
FROM BOOK_LOANS,BORROWER
WHERE BOOK_LOANS.CardNo=BORROWER.CardNo AND
GETDATE() > DueDate;
(四) SELECT COUNT(BookId)
FROM BOOK_COPIES;
[註]假設1.不同的書會有不同的BookId
假設2.可能有書圖書館沒有收藏但把書的資料先建到資料庫中
--
All Comments