幾道經典的SQL筆試題目(轉載)

幾道經典的SQL筆試題目(轉載)

上一篇 / 下一篇  2008-12-11 13:23:20php

查看( 2340 ) / 評論( 0 ) / 評分( 0 / 0 )html

幾道經典的SQL筆試題目(有答案)


(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)
ide

相關文章
相關標籤/搜索