MySQL练习题及答案(图书管理数据库)
生活随笔
收集整理的這篇文章主要介紹了
MySQL练习题及答案(图书管理数据库)
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
文章目錄
- 1、查找出價格位于10元和20元之間的圖書種類,結(jié)果按出版單位和單價升序排序
- 2、找出藏書中各個出版社的冊數(shù)、價值總額
- 3、求出各個出版社圖書的最高價格、最低價格和總冊數(shù)
- 4、查找所有借了書的讀者的姓名以及所在單位
- 5、找出李某所借圖書的所有圖書的書名及借書日期
- 6、查詢1997年10月以后借書的讀者借書證號、姓名和單位
- 7、找出借閱了 FoxPro大全一書的借書證號以及作者
- 8、分別找出借書人次超過1人次的單位及人次數(shù)
- 9、找出與趙正義在同一天借書的讀者姓名、所在單位以及借書日期
- 10、求信息系當(dāng)前借閱圖書的讀者人次數(shù)
- 11、找出當(dāng)前至少借閱了2本書的讀者及所在單位
- 12、找出姓李的讀者姓名和所在單位
- 13、求科學(xué)出版社圖書的最高單價、最低單價和平均單價
- 14、查找出高等教育出版社的所有圖書及單價,結(jié)果按單價降序排列
現(xiàn)有圖書管理數(shù)據(jù)庫的三個關(guān)系模式,他們的字段分別如下:
圖書表:總編號, 分類號, 書名, 作者, 出版單位, 單價
讀者表:借書證號, 單位, 姓名, 性別, 職稱, 地址
借閱表:借書證號, 總編號, 借書日期
以上表對應(yīng)的字段明細(xì)如下:
book :
b_no ,b_type ,b_name , b_author ,b_publish ,b_price
reader :
r_no , r_unit , r_name ,r_sex ,r_pro ,r_address
borrow :
r_no , b_no ,b_time
1、查找出價格位于10元和20元之間的圖書種類,結(jié)果按出版單位和單價升序排序
#1、查找出價格位于10元和20元之間的圖書種類,結(jié)果按出版單位和單價升序排序 SELECTb_publish as "出版社" ,b_price as "價格" FROMbook WHERE b_price BETWEEN 10 AND 20 ORDER BY b_price, b_publish; #默認(rèn)升序
2、找出藏書中各個出版社的冊數(shù)、價值總額
# 2、找出藏書中各個出版社的冊數(shù)、價值總額 SELECTb_publish as "出版社",COUNT( b_no ) as "冊數(shù)",sum( b_price ) as "價值總額" FROMbook GROUP BYb_publish3、求出各個出版社圖書的最高價格、最低價格和總冊數(shù)
#3、求出各個出版社圖書的最高價格、最低價格和總冊數(shù) SELECTb_publish as "出版社" ,MAX( b_price ) as "最高價格",min( b_price ) as "最低價格",COUNT(b_no) as "冊數(shù)" FROMbook GROUP BYb_publish4、查找所有借了書的讀者的姓名以及所在單位
-- 4、查找所有借了書的讀者的姓名以及所在單位 SELECT distinct #distinct刪除重復(fù)的結(jié)果r_name as "姓名" ,r_unit as "所在單位" FROM borrow,reader WHERE borrow.r_no =reader.r_no
5、找出李某所借圖書的所有圖書的書名及借書日期
#5、找出李某所借圖書的所有圖書的書名及借書日期 SELECTb_name as "圖書名",b_time as "借閱時間" FROMborrow as a,reader as b,book as c WHEREa.b_no = c.b_no AND a.r_no = b.r_no AND r_name LIKE '李%'6、查詢1997年10月以后借書的讀者借書證號、姓名和單位
#6、查詢1997年10月以后借書的讀者借書證號、姓名和單位SELECTborrow.r_no as "借書證號", #對于重復(fù)出現(xiàn)的列。必須寫具體的borrow.r_no因為有兩個表都有r_no列 b_name as "姓名",r_unit as "單位" FROMborrowINNER JOIN reader ON borrow.r_no = reader.r_noINNER JOIN book ON borrow.b_no = book.b_no WHEREb_time > '1997-10-1'# 方法二 SELECTa.r_no as "借書證號", b_name as "姓名",r_unit as "單位" FROMborrow as a,reader as b,book as c WHEREa.b_no = c.b_no AND a.r_no = b.r_no AND b_time > '1997-10-1'
7、找出借閱了 FoxPro大全一書的借書證號以及作者
#7、找出借閱了 FoxPro大全一書的借書證號以及作者 SELECT borrow.r_no as "借書證號" ,b_author as "作者" FROMborrowINNER JOIN book ON borrow.b_no = book.b_no WHEREb_name = 'FoxPro大全'8、分別找出借書人次超過1人次的單位及人次數(shù)
#8、分別找出借書人次超過1人次的單位及人次數(shù) SELECTr_unit as "單位",COUNT(borrow.r_no) as "人次數(shù)" FROMborrowINNER JOIN reader ON borrow.r_no = reader.r_no GROUP BYr_unit HAVINGcount(borrow.r_no) > 1;9、找出與趙正義在同一天借書的讀者姓名、所在單位以及借書日期
#9找出與趙正義在同一天借書的讀者姓名、所在單位以及借書日期SELECTr.r_name as 姓名,r.r_unit as 所在單位,b.b_time as 借書日期 FROMborrow as b,reader as r WHEREb.r_no = r.r_no AND b.b_time = (SELECTb.b_time FROMborrow as b,reader as rWHEREb.r_no = r.r_no AND r.r_name = '趙正義' )
10、求信息系當(dāng)前借閱圖書的讀者人次數(shù)
#10、求信息系當(dāng)前借閱圖書的讀者人次數(shù) SELECTCOUNT(*) AS 人次數(shù) FROMborrow b,reader r WHEREr.r_no = b.r_no AND r.r_unit = '信息系'
11、找出當(dāng)前至少借閱了2本書的讀者及所在單位
#11、找出當(dāng)前至少借閱了2本書的讀者及所在單位 SELECT DISTINCTr1.r_name as 姓名,r1.r_unit as 單位 FROMreader as r1INNER JOIN borrow as b1 ON r1.r_no = b1.r_no WHEREr1.r_name IN (SELECTr2.r_name FROMreader r2INNER JOIN borrow b2 ON r2.r_no = b2.r_no GROUP BYr2.r_name HAVINGCOUNT(*)>= 2 )
12、找出姓李的讀者姓名和所在單位
#12、找出姓李的讀者姓名和所在單位 SELECT r_name ,r_unit FROM reader WHERE r_name LIKE'李%';
13、求科學(xué)出版社圖書的最高單價、最低單價和平均單價
#13、求科學(xué)出版社圖書的最高單價、最低單價和平均單價 SELECTb_publish as 出版社,MAX( b_price ) as 最高價,MIN( b_price ) as 最低價,AVG( b_price ) as 平均價 FROMbook GROUP BYb_publish HAVINGb_publish = '科學(xué)出版社';14、查找出高等教育出版社的所有圖書及單價,結(jié)果按單價降序排列
#14、查找出高等教育出版社的所有圖書及單價,結(jié)果按單價降序排列 SELECT DISTINCTb_name AS 圖書 ,b_price as 單價 FROMbook WHEREb_publish = '高等教育出版社' ORDER BYb_price DESC; #desc 是降序。 默認(rèn)是按升序輸出#### 15、列出圖書庫中所有藏書的書名以及出版單位 -- 15、列出圖書庫中所有藏書的書名以及出版單位 SELECTb_name AS 書名,b_publish AS 出版單位 FROMbook GROUP BYb_name
總結(jié)
以上是生活随笔為你收集整理的MySQL练习题及答案(图书管理数据库)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天勤2022数据结构(四)数组、矩阵与广
- 下一篇: 反激电源基本原理和简单的使用例程 学习笔