1. 程式人生 > >Mysql筆試題(二)

Mysql筆試題(二)

num 準考證 成績表 score 語句 ike team having distinct

(1)表名:購物信息
購物人 商品名稱 數量
A 甲 2
B 乙 4
C 丙 1
A 丁 2
B 丙 5
……
其他用戶實驗的記錄大家可自行插入)

給出所有購入商品為兩種或兩種以上的購物人記錄

答:select * from 購物信息 where 購物人 in (select 購物人 from 購物信息 group by 購物人 having count(*) >= 2);


(2)表名:成績表
姓名 課程 分數
張三 語文 81
張三 數學 75
李四 語文 56
李四 數學 90
王五 語文 81
王五 數學 100
王五 英語 49
……
(其他用戶實驗的記錄大家可自行插入)

給出成績全部合格的學生信息(包含姓名、課程、分數),註:分數在60以上評為合格

答:select * from 成績表 where 姓名 not in (select distinct 姓名 from 成績表 where 分數 < 60)
或者:
select * from 成績表 where 姓名 in (select 姓名 from 成績表 group by 姓名 having min(分數) >=60)


(3)表名:商品表
名稱 產地 進價
蘋果 煙臺 2.5
蘋果 雲南 1.9
蘋果 四川 3
西瓜 江西 1.5
西瓜 北京 2.4
……
(其他用戶實驗的記錄大家可自行插入)

給出平均進價在2元以下的商品名稱

答:select 名稱 from 商品表 group by 名稱 having avg(進價) < 2

(4)表名:高考信息表
準考證號 科目 成績
2006001 語文 119
2006001 數學 108
2006002 物理 142
2006001 化學 136
2006001 物理 127
2006002 數學 149
2006002 英語 110
2006002 語文 105
2006001 英語 98
2006002 化學 129
……
(其他用戶實驗的記錄大家可自行插入)

給出高考總分在600以上的學生準考證號

答:select 準考證號 from 高考信息表 group by 準考證號 having sum(成績) > 600

(5)表名:高考信息表
準考證號 數學 語文 英語 物理 化學
2006001 108 119 98 127 136
2006002 149 105 110 142 129
……
(其他用戶實驗的記錄大家可自行插入)

給出高考總分在600以上的學生準考證號

答:select 準考證號 from 高考信息表 where (數學+語文+英語+物理+化學) > 600



(四部分)
(一)表名:club

id gender age
67 M 19
68 F 30
69 F 27
70 F 16
71 M 32
……(其余測試數據請自行插入)

查詢出該俱樂部裏男性會員和女性會員的總數

答:select gender,count(id) from club group by gender

(二)表名:team
ID(number型) Name(varchar2型)
1 a
2 b
3 b
4 a
5 c
6 c
要求:執行一個刪除語句,當Name列上有相同時,只保留ID這列上值小的
例如:刪除後的結果應如下:
ID(number型) Name(varchar2型)
1 a
2 b
5 c
請寫出SQL語句。

delete from team where id not in (select min(id) from team group by name)

(三)表名:student

name course score
張青 語文 72
王華 數學 72
張華 英語 81
張青 物理 67
李立 化學 98
張燕 物理 70
張青 化學 76

查詢出“張”姓學生中平均成績大於75分的學生信息

答:select * from student where name in (select name from student
where name like ‘張%‘ group by name having avg(score) > 75)

Mysql筆試題(二)