當前位置:首頁 » 編程語言 » sql超難練習題
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql超難練習題

發布時間: 2023-05-07 14:04:56

sql經典50題

一、查詢課程編號為「01」的課程比「02」的課程成績高的所有學生的學號(重點)
一刷:
excel思路:
觀察原始表格數據,在excel中想得到01比02高,我們需要將原始表格拆分成兩個表,課程01表和課程02表,再進行vlookup得到c表,根據if條件判斷篩出最終數據。
重點是:1.拆表 2.匹配
轉成SQL語言:
1.拆表語言:

2.關聯加匹配語言 :

3.完整語言:

----到這里其實就可以結束了;
4.若想加student的信息,則需要以上所有結果再作為c表再關聯匹配:

若想讓欄位1和2為上下結果,即重復前面的信息,則語言如下:

二刷:

擴展一:查詢成績小於60分的學生的學號和姓名
1、先反向找出大於等於60分的學號 :

2、匹配:

擴展二:查詢平均成績小於60分的學生的學號、姓名和平均成績
第一種
1、先找出小於60分和空的作為c表:

2、匹配:

三、查詢所有學生的學號、姓名、選課數、總成績(不重要)

四、查詢姓「李」的老師的個數(不重要)

五、查詢沒學過「張三」老師課的學生的學號、姓名(重點)

六、查詢學過「張三」老師所教的所有課的同學的學號、姓名(重點)

七、查詢學過編號為「01」的課程並且也學過編號為「02」的課程的學生的學號、姓名(重點)

八、查詢課程編號為「02」的總成績(不重點)

九、查詢成績小於60分的學生的學號和姓名(同題目二)
十、查詢沒有學全所有課的學生的學號、姓名(重點)

十一、查詢至少有一門課與學號為「01」的學生所學課程相同的學生的學號和姓名(重點)

十二、查詢和「01」號同學所學課程完全相同的其他同學的學號(重點)

十五、查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績(重點)

十六、檢索"01"課程分數小於60,按分數降序排列的學生信息(和34題重復,不重點

十七、按平均成績從高到低顯示所有學生的所有課程的成績以及平均成績(重重點與35一樣)

十八、查詢各科成績最高分、最低分和平均分:以如下形式顯示:課程ID,課程name,最高分,最低分,平均分,及格率,中等率,優良率,優秀率
-- 及格為>=60,中等為:70-80,優良為:80-90,優秀為:>=90 (超級重點)

十九、按各科成績進行排序,並顯示排名

二十、查詢學生的總成績並進行排名(不重點)

二十一、查詢不同老師所教不同課程平均分從高到低顯示(不重點)

二十二、查詢所有課程的成績第2名到第3名的學生信息及該課程成績(重要 25類似

二十三、 使用分段[100-85],[85-70],[70-60],[<60]來統計各科成績,分別統計各分數段人數:課程ID和課程名稱(重點和18題類似)

二十四、查詢學生平均成績及其名次(同19題,重點)

二十五、查詢各科成績前三名的記錄(不考慮成績並列情況)(重點 與22題類似)

二十六、查詢每門課程被選修的學生數(不重點)

二十七、查詢出只有兩門課程的全部學生的學號和姓名(不重點)

二十八、查詢男生、女生人數(不重點)

二十九、查詢名字中含有"風"字的學生信息(不重點)

三十一、 查詢1990年出生的學生名單(重點year)

三十二、查詢平均成績大於等於85的所有學生的學號、姓名和平均成績(不重要)

三十三、查詢每門課程的平均成績,結果按平均成績升序排序,平均成績相同時,按課程號降序排列(不重要)

三十四、查詢課程名稱為"數學",且分數低於60的學生姓名和分數(不重點)

三十五、查詢所有學生的課程及分數情況(重點)

三十六、 查詢任何一門課程成績在70分以上的姓名、課程名稱和分數(重點)

三十七、 查詢不及格的課程並按課程號從大到小排列(不重點)

三十八、 查詢課程編號為03且課程成績在80分以上的學生的學號和姓名(不重要)

三十九、求每門課程的學生人數(不重要)

四十、查詢選修「張三」老師所授課程的學生中成績最高的學生姓名及其成績(重要top)

四十一、查詢不同課程成績相同的學生的學生編號、課程編號、學生成績 (重點)

四十二、查詢每門功課成績最好的前兩名(同22和25題)

四十三、統計每門課程的學生選修人數(超過5人的課程才統計)。要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列(不重要)

四十四、檢索至少選修兩門課程的學生學號(不重要)

四十五、查詢選修了全部課程的學生信息(重點劃紅線地方)

四十六、查詢各學生的年齡(精確到月份)

四十七、 查詢沒學過「張三」老師講授的任一門課程的學生姓名(還可以,自己寫的,答案中沒有)

四十八、 查詢兩門以上不及格課程的同學的學號及其平均成績

四十九、查詢本月過生日的學生(無法使用week、date(now())

五十、 查詢下月過生日的學生

② 請教SQL高手,高難度問題

declare @s nvarchar(4000),@s2 nvarchar(4000),@sql nvarchar(4000)
Select @s=isnull(@s+',','')+quotename(name) from t1 group by name
select @s
Select @s2=isnull(@s2+',','')+quotename(name)+' as name'+name from t1 group by name
select @s2
--因為你的列名改變了悶隱,所以多添加了一部處理.否則可以直接使用下面的句子
--Set @sql= 'select * from t1 pivot (max([name]) for [name] in('+@s+'))b'
Set @sql= 'select id,'+@s2+' from t1 pivot (max([name]) for [name] in('+@s+'))b'
exec(@sql)
記得把t1改成你的表名
把id列改成你的uid列.把name改成你螞遲廳的uname列.(我寫的是我自己做的測試~~)
希望這些對你旦胡有所幫助!

③ Mysql|數據分析搞懂這15道SQL題目筆試就穩了

現有以下三張表

寫出SQL語句:查詢產品名稱=「A葯品」,在北京醫院2018~2019兩年的銷售「金額」,排除兩年銷售金額總和>1000000的醫院,要求查詢結果如下表。

寫出SQL語句,查詢題1的銷量表中2019年任意連續三個月銷售額都>0的醫院。
返回欄位:HospitalId,SalesMonth(2019年銷量>0的所有月份,逗號隔開)

以下是微信聊天記錄表

寫出SQL語句:按月統計2020年的微信回復率

發送次數 = 一組好友在一個自然天內的所有發送記錄計為1次。

回復率計算公式 =(發送次數在兩個自然天內被回復)/發送次數*100%

未完。。。 持續更新中。。。

④ SQL的練習,求答案!!!

有一些類似的題看看吧 一定有幫助
實驗一
練習1、請查詢表DEPT中所有部門的情況。
select * from dept;

練習2、查詢表DEPT中的部門號、部門名稱兩個欄位的所有信息。
select deptno,dname from dept;

練習3、請從表EMP中查詢10號部門工作的雇員姓名和工資。
select ename,sal from emp where deptno=10;

練習4、請從表EMP中查找工種是職員CLERK或經理MANAGER的雇員姓名、工資。
select ename,sal from emp where job='CLERK' or job='MANAGER';

練習5、請在EMP表中查找部門號在10-30之間的雇員的姓名、部門號、工資、工作。
select ename,deptno,sal,job from emp where deptno between 10 and 30;

練習6、請從表EMP中查找姓名以J開頭所有雇員的姓名、工資、職位。
select ename,sal,job from emp where ename like 'J%';

練習7、請從表EMP中查找工資低於2000的雇員的姓名、工作、工資,並按工資降序排列。
select ename,job,sal from emp where sal<=2000 order by sal desc;

練習8、請從表中查詢工作是CLERK的所有人的姓名、工資、部門號、部門名稱以及部門地址的信息。
select ename,sal,emp.deptno,dname,loc from emp,dept where emp.deptno=dept.deptno and job=』CLERK』;

練習9、查詢表EMP中所有的工資大於等於2000的雇員姓名和他坦鄭芹的經理的名字。
select a.ename,b.ename from emp a,emp b where a.mgr=b.empno(+) and a.sal>=2000;

練習10、在表EMP中查詢所有工資高於JONES的所有雇員姓名、工作和工資。
select ename,job,sal from emp where sal>(select sal from emp where ename=』JONES』);

練習11、列出沒有對應部門表信息的所有雇員的姓名、工作以及部門號。
select ename,job,deptno from emp where deptno not in (select deptno from dept);

練習讓畢12、查找工資在1000~3000之間的雇員所在部門的所有人叢悶員信息
select * from emp where deptno in (select distinct deptno from emp where sal between 1000 and 3000);

練習13、雇員中誰的工資最高。
select ename from emp where sal=(select max(sal) from emp);
select ename from (select * from emp order by sal desc) where rownum<=1;

*練習14、雇員中誰的工資第二高(考慮並列第一的情況,如何處理)。
select ename,sal from (select ename ,sal from emp where sal<(select max(sal) from emp) order by sal desc) where rownum<=1;
實驗二
1. 查詢所有雇員的姓名、SAL與COMM之和。
select ename,sal+nvl(comm,0) 「sal-and-comm」 from emp;

2. 查詢所有81年7月1日以前來的員工姓名、工資、所屬部門的名字
select ename,sal,dname from emp,dept where emp.deptno=dept.deptno and hiredate<=to_date(『1981-07-01』,』yyyy-mm-dd』);

3. 查詢各部門中81年1月1日以後來的員工數
select deptno,count(*) from emp where hiredate>=to_date(『1981-01-01』,』yyyy-mm-dd』) group by deptno;

4. 查詢所有在CHICAGO工作的經理MANAGER和銷售員SALESMAN的姓名、工資
select ename,sal from emp where (job=』MANAGER』 or job=』SALES』) and deptno in (select deptno from dept where loc=』CHICAGO』);

5. 查詢列出來公司就職時間超過24年的員工名單
select ename from emp where hiredate<=add_months(sysdate,-288);

6. 查詢於81年來公司所有員工的總收入(SAL和COMM)
select sum(sal+nvl(comm,0)) from emp where to_char(hiredate,』yyyy』)=』1981』;

7. 查詢顯示每個雇員加入公司的准確時間,按××××年××月××日 時分秒顯示。
select ename,to_char(hiredate,'yyyy-mm-dd hh24:mi:ss') from emp;

8. 查詢公司中按年份月份統計各地的錄用職工數量
select to_char(hiredate,'yyyy-mm'),loc,count(*) from emp,dept
where emp.deptno=dept.deptno group by to_char(hiredate,'yyyy-mm'),loc;

9. 查詢列出各部門的部門名和部門經理名字
select dname,ename from emp,dept where emp.deptno=dept.deptno and job=』MANAGER』;

10. 查詢部門平均工資最高的部門名稱和最低的部門名稱
select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) ) where rownum<=1)
union all select dname from dept where deptno=(select deptno from (select deptno from emp group by deptno order by avg(sal) desc ) where rownum<=1);

11. *查詢與雇員號為7521員工的最接近的在其後進入公司的員工姓名
select ename from (select ename from
(select ename from emp where hiredate>(select hiredate from emp where empno=7521) order by hiredate ) where rownum<=1)

⑤ 挑戰SQL經典題(一)

建表語句:

表說明:
student(sid,sname,sage,ssex) 學生表
course(cid,cname,tid) 課程表
sc(sid,cid,score) 成績表
teacher(tid,tname) 教師表

問題:
1、查詢「1」課程比「2」課程成績高的所有學生的學號;(3號-張三)

2、查詢平均成績大於60分的同學的學號和平均成績;(1、2、3、4號)

3、查詢所有同學的學號、姓名、選課數、總成績;

4、查詢姓「李」的老師的個數;(0個)

5、查詢沒學過「葉平」老師課的同學的學號、姓名; (4號-李四)

6、查詢學過「1」並且也學過編號「2」課程的同學的學號、姓名;
(1號-劉一 2號-錢二 3號-張三 6號-趙六 除了4號和5號)---考查EXISTS

7、查詢學過「葉平」老師所教的所有課的同學的學號、姓名; (除了4號)

8、查詢課程編號「2」的成績比課程編號「1」課程低的所有同學的學號、姓名;
(3號-張三)

9、查詢所有課程有成績小於60分的同學的學號、姓名;
(1號、3號、5號、6號 除了2號和4號)

10、查詢沒有學全所有課的同學的學號、姓名; (4號、5號、6號)

11、查詢至少有一門課與學號為「1」的同學所學相同的同學的學號和姓名; (All)

12、查詢跟學號為「1」的同學學的所有課一樣的其他同學學號和姓名; (2號和3號)

13、把「sc」表中「葉平」老師教的課的成績都更改為此課程的平均成績; (61.4)

14、刪除學習「葉平」老師課的SC表記錄;

15、向sc表中插入一條記錄,要求符合以下條件:沒有上過編號「3」課程的同學學號、2號課的平均成績;(6號童鞋沒有上過3號課程)

16、按平均成績從高到低顯示所有學生的「語文」、「數學」、「英語」三門的課程成績,按如下形式顯示: 學生ID,語文,數學,英語,有效課程數,有效平均分(待更正 語句有錯)

17、查詢各科成績最高和最低的分:以如下形式顯示:課程ID,最高分,最低分

18、按各科平均成績從低到高和及格率的百分數從高到低順序

19、查詢如下課程平均成績和及格率的百分數(用"1行"顯示):
語文-1、數學-2、英語-3、物理-4

20、查詢不同老師所教不同課程平均分從高到低顯示

21、統計列印各科成績,各分數段人數:課程ID,課程名稱,[100-85],[85-70],[70-60],[ <60]

22、查詢學生平均成績及其名次

23、查詢各科成績前三名的記錄:(不考慮成績並列情況)---------SQL不識別TOP

24、查詢每門課程被選修的學生數

25、查詢出只選修了一門課程的全部學生的學號和姓名

26、查詢男生、女生人數

27、查詢姓「張」的學生名單

28、查詢同名同姓學生名單,並統計同名人數

29、查詢平均成績大於85的所有學生的學號、姓名和平均成績

30、查詢「物理」課分數不及格的學生姓名和分數

31、查詢所有學生的選課情況;

32、查詢課程的成績在80分以上的學生姓名、課程名稱和分數;

33、查詢選修「周磊」老師所授課程的學生中,成績最高的學生姓名及其成績(李四-93)

34、查詢不同課程成績相同的學生的學號、課程號、學生成績

35、查詢兩門以上課程大於80分的同學的學號及其平均成績

36、檢索「4」課程分數小於60,按分數降序排列的同學學號

⑥ SQL 45道題

1.學生表 Student(SId,Sname,Sage,Ssex)

2.課程表 Course(CId,Cname,TId)

3.教師表 Teacher(TId,Tname)

4.成績表 SC(SId,CId,score)

學生表 Student

科目表 Course

教師表 Teacher

成績表 SC

1.查詢" 01 "課程比" 02 "課程成績高的學生的信息及課程分數

1.1 查詢同時存在" 01 "課程和" 02 "課程的情況

1.2 查詢存在" 01 "課程但可能不存在" 02 "課程的情況(不存在時顯示為 null )

1.3 查詢不存在" 01 "課程但存在" 02 "課程的情況

2.查詢平均成績大於等於 60 分的同學的學生編號和學生姓名和平均成績

3.查詢在 SC 表存在成績的學生信息

4.查詢所有同學的學生編號、學生姓名、選課總數、所有課程的總成績(沒成績的顯示為 null )

4.1 查有成績的學生信息



5.查詢「李」姓老師的數量

6.查詢學過「張三」老師授課的同學的信息

*7.查詢沒有學全所有課程的同學的信息

*8.查詢至少有一門課與學號為" 01 "的同學所學相同的同學的信息

*9.查詢和" 01 "號的同學學習的課程 完全相同的其他同學的信息

10.查詢沒學過"張三"老師講授的任一門課程的學生姓名

*11.查詢兩門及其以上不及格課程的同學的學號,姓名及其平均成績

12.檢索" 01 "課程分數小於 60,按分數降序排列的學生信息

13.按平均成績從高到低顯示所有學生的所有課程的成績以及平均成績

14.查詢各科成績最高分、最低分和平均分: 以如下形式顯示:課程 ID,課程 name,最高分,最低分,平均分,及格率,中等率,優良率,優秀率 及格為>=60,中等為:70-80,優良為:80-90,優秀為:>=90 要求輸出課程號和選修人數,查詢結果按人數降序排列,若人數相同,按課程號升序排列

*15.按各科成績進行排序,並顯示排名, Score 重復時保留名次空缺

*15.1 按各科成績進行排序,並顯示排名, Score 重復時合並名次

*16.查詢學生的總成績,並進行排名,總分重復時保留名次空缺

*16.1 查詢學生的總成績,並進行排名,總分重復時不保留名次空缺

*17.統計各科成績各分數段人數:課程編號,課程名稱,[100-85],[85-70],[70-60],[60-0] 及所佔百分比

*18.查詢各科成績前三名的記錄

19.查詢每門課程被選修的學生數

*20.查詢出只選修兩門課程的學生學號和姓名

21.查詢男生、女生人數

22.查詢名字中含有「風」字的學生信息

*23.查詢同名同性學生名單,並統計同名人數

*24.查詢 1990 年出生的學生名單

25.查詢每門課程的平均成績,結果按平均成績降序排列,平均成績相同時,按課程編號升序排列

26.查詢平均成績大於等於 85 的所有學生的學號、姓名和平均成績

27.查詢課程名稱為「數學」,且分數低於 60 的學生姓名和分數

28.查詢所有學生的課程及分數情況(存在學生沒成績,沒選課的情況)

29.查詢任何一門課程成績在 70 分以上的姓名、課程名稱和分數

30.查詢不及格的課程

31.查詢課程編號為 01 且課程成績在 80 分以上的學生的學號和姓名

32.求每門課程的學生人數

*33.成績不重復,查詢選修「張三」老師所授課程的學生中,成績最高的學生信息及其成績

*34.成績有重復的情況下,查詢選修「張三」老師所授課程的學生中,成績最高的學生信息及其成績

*35.查詢不同課程成績相同的學生的學生編號、課程編號、學生成績

*36.查詢每門功成績最好的前兩名

37.統計每門課程的學生選修人數(超過 5 人的課程才統計)

*38.檢索至少選修兩門課程的學生學號

39.查詢選修了全部課程的學生信息

*40.查詢各學生的年齡,只按年份來算

*41.按照出生日期來算,當前月日 < 出生年月的月日則,年齡減一

*42.查詢本周過生日的學生

*43.查詢下周過生日的學生

*44.查詢本月過生日的學生

*45.查詢下月過生日的學生

⑦ sql語句相關測試

sql語句相關測試

篇一:SQL語句測試

1、(10分)要求:

選擇受理時間在2008-5-1 到 2008-6-1之間的所有申請人姓氏為「劉」的數據,並把「新受理編號」列表示成當前機器時間的年月和原受理編號年月後的數值組合

格式如下:

受理編號,新受理編號,受理時間, 申請人

200801112 201008112 2008-01-13劉XX

需要的表

I_Optinst 業務實例表

REGDATE(受理日期)

Regnum(受理編號)

Proposer(申請人)

解答:select Regnum as 受理編號, as 新受理編號,REGDATE as 受理時間,Proposer as申請人 from Optinst 2、(15分)要求:

前提:只統計業務小類「存量房買賣」

①按照月份分12月列出2008年每個月份的月份對應月份的交易總面積

②按照月份分12月列出2008年每個月份的月份對應月份的交易均價(申報價格/建築面積)

格式

年度月份 交易總面積 年度月份交易均價(元/平方米)

2008-01 23232 2008-01 2323

2008-02 23232008-02 232

2008-03 232323 2008-03 7656

2008-04 232323 2008-03 565

2008-05 232323 2008-03 5656

2008-06 232323 2008-03 565

2008-07 232323 2008-03 67

2008-08 232323 2008-03 676

2008-09 232323 2008-03 6767

2008-10 232323 2008-03 8686

2008-11 232323 2008-03 867

2008-12 232323 2008-03 454

需要的表:

Fc_room 房間表

BAREA(建築面積)

I_Optinst業務實例表

regdate(受理時間)

fc_owner 產權表

COSTVAL(申報價格)

EVLVAL(評估價格)

fc_owoom 房間明細表

1.select regdate as年度月份,BAREA as 交易總面積 from Fc_room,Optinst where

3、(20分)要求:

①:按照時間統計收費明細 統計格式如下

受理編號繳費人收費日期 收費名稱收費金額核費人收費人

②:按照時間匯總(2008年度)統計收費項目分類 統計格式如下

收費名稱 總金額

需要的表:

I_OptInst(業務實例表)

Regnum 受理編號

Proposer 申請人

I_Charge(收費實例表)

HEFEIMAN 核費人

PAYEE 收款人

CDATE 收費日期

I_ChrDtl(收費實例明細表

CNAME 收費名稱

MONEY 收費金額

4、(15分)要求:用途是住宅並且建築面積<=140>140 定義為 「非普通住宅」

用途是商業並且建築面積>140 定義為 「商業A級」

其他情況定義為「非住宅」

根據用途和面積列表出所有數據

格式

受理編號, 用途

200406000386 普通住宅

200406004631 非普通住宅

200406004633 普通住宅

200406004638 普通住宅

200406004641 非住宅

200501000004 普通住宅

200406004568 非住宅

200406005677 商業A級

表:

fc_room

barea 建築面積

BUse 用途

i_optinst

regnum 受理編號

5、(30分)工作量統計

① 選擇出以下格式的數據;並創建視圖名稱為view_AAAA

業務小類業務實例 交易價格建築面積 登記時間

1 存量房買賣 14100 19400.0029.98 2005-11-10 11:32:50 2 新建商品房 15041 229530.00 124.07 2005-11-21 08:59:36 3 新建商品房 15043 177363.00 101.35 2005-11-21 09:15:59 4 新建商品房 13046 71130.0023.71 2005-11-02 10:15:37 5 新建商品房 11280 148563.00 87.39 2005-10-11 09:50:48 6 新建商品房 11353 267369.00 116.04 2005-10-11 15:34:53 7 房改售房 2689 35.22 2004-06-17 08:43:00 8 產權人名稱變更 11701 724.18 2005-10-17 10:05:20 9 新建商品房 7206 158257.00 88.69 2005-09-16 14:50:57 10 存量房買賣 (轉 載於:wWw.cnboThwiN.cOM 博 威範文 網: sql語句測試 )10100 103.07 2005-08-31 20:27:06 11 存量房買賣 12980 51500.0046.66 2005-11-01 14:41:32 12 新建商品房 13000 136782.00 80.46 2005-11-01 15:37:05 13 新建商品房 16946 300844.00 146.33 2005-12-15 14:15:07 14 存量房買賣 10091 509.18 2005-08-31 19:19:25 ② 使用視圖 view_AAAA 當做表 選擇出如下樣式數據

業務小類 件數合計金額 合計面積

1 用途變更 1151.3

2 轉移登記 184.03

3 新建商品房 31 263243643197.34

4 房改售房 8252.43

5 產權人名稱變更 3 778.6

6 單位產新建 311697.49

7 贈與 1 28.48

8 存量房買賣 24 4379004134.67

9 判決仲裁 2 439.41

10 繼承遺贈 1 49.17

11 換證 2 228.88

12 新建房屋 17 928.91

③ 用水晶報表關聯視圖 view_AAAA 設計出類似於②的數據格式 需要的表

FC_Owner

EvlVal交易價格

I_OptInst,

SOName 業務小類

fc_owoom,

BArea 建築面積

FC_Room

regdate 受理日期

篇二:sql查詢語句學習測試答案

第一部分SQL查詢語句的學習

單表查詢 1、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、客戶ID和雇員ID等欄位的值

use eee

SELECT 訂購日期,訂單ID,客戶ID,

雇員ID

FROM 訂單

WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'

2、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。條件是「地區等於華北」並且「聯系人頭銜等於銷售代表」。

use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區='華北' AND 聯系人職務='銷售代表'

3、--查詢「Northwind」示例資料庫中供應商的ID、公司名稱、地區、城市和電話欄位的值。其中的一些供應商位於華東或華南地區,另外一些供應商所在的城市是天津 use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區IN('華東', '華南') OR 城市='天津'

4、--查詢「Northwind」示例資料庫中位於「華東」或「華南」地區的供應商的ID、公司名稱、地區、城市和電話欄位的值

use eee

SELECT 供應商ID,公司名稱,地區,城市,電話

FROM 供應商

WHERE 地區IN('華東', '華南')

多表查詢 5、--查詢訂購日期在1996年7月1日至1996年7月15日之間的訂單的訂購日期、訂單ID、相應訂單的客戶公司名稱、負責訂單的雇員的姓氏和名字等欄位的值,並將查詢結果按雇員的「姓氏」和「名字」欄位的升序排列,「姓氏」和「名字」值相同的記錄按「訂單 ID」的降序排列

use eee

SELECT 訂購日期,訂單ID,公司名稱,姓氏,名字

FROM 訂單,雇員,客戶

WHERE 訂購日期BETWEEN '1996-7-1 00:00:00' AND '1996-7-15 23:59:59'

AND 訂單.雇員ID = 雇員.雇員ID

AND 訂單.客戶ID = 客戶.客戶ID

ORDER BY 姓氏,名字ASC,訂單ID DESC

6、--查詢「10248」和「10254」號訂單的訂單ID、運貨商的公司名稱、訂單上所訂購的產品的名稱

use eee

SELECT 訂單.訂單ID,公司名稱,產品名稱

FROM 訂單,運貨商,產品,訂單明細

WHERE 訂單.訂單ID IN('10248','10254')

AND 訂單.訂單ID = 訂單明細.訂單ID

AND 訂單明細.產品ID = 產品.產品ID

AND

訂單.運貨商= 運貨商.運貨商ID

7、--查詢「10248」和「10254」號訂單的訂單ID、訂單上所訂購的產品的名稱、數量、單價和折扣

use eee

SELECT 訂單.訂單ID,產品名稱,數量,訂單明細.單價,折扣

FROM 訂單,產品,訂單明細

WHERE 訂單.訂單ID IN('10248','10254')

AND 訂單.訂單ID = 訂單明細.訂單ID

AND 訂單明細.產品ID = 產品.產品ID

篇三:sql語句練習題及答案

一 在資料庫 school 中建立student , sc, course 表。

學生表、課程表、選課表屬於資料庫 School ,其各自的數據結構如下:

學生 Student (Sno,Sname,Ssex,Sage,Sdept)

課程表 course(Cno,Cname,Cpno,Ccredit)

學生選課 SC(Sno,Cno,Grade)

二 設定主碼

1 Student表的主碼:sno2 Course表的主碼:cno 3 Sc表的主碼:sno,cno

1寫出使用 Create Table 語句創建表 student , sc, course 的SQL語句

2

3 刪除student表中的元組

4在資料庫school中刪除關系student

5在student表添加屬性sbirthdate 類型 datetime

Delete

1 刪除所有 JSJ 系的男生 from Student where Sdept=』JSJ』 and Ssex=』男』; 2 刪除「資料庫原理」的課的選課紀錄

from SC where Cno in (select Cno fromCourse where Cname=』資料庫原理』);

Update

1 修改 0001 學生的系科為: JSJ

2 把陳小明的年齡加1歲,性別改為女。 2 修改李文慶的1001課程的成績為 93 分 3 把「資料庫原理」課的成績減去1分

Select 查詢語句

一 單表

1查詢年齡在19至21歲之間的女生的學號,姓名,年齡,按年齡從大到小排列。 2查詢姓名中第2個字為「明」字的學生學號、性別。 3查詢 1001課程沒有成績的學生學號、課程號

4查詢JSJ 、SX、WL 系的年齡大於25歲的學生學號,姓名,結果按系排列 5按10分制查詢學生的sno,cno,10分製成績

(1-10分 為1 ,11-20分為2 ,30-39分為3,。。。90-100為10) 6查詢 student 表中的學生共分布在那幾個系中。(distinct) 7查詢0001號學生1001,1002課程的成績。

二 統計

1查詢姓名中有「明」字的學生人數。 2計算『JSJ』系的平均年齡及最大年齡。 3查詢學生中姓名為張明、趙英的人數

4計算每一門課的總分、平均分,最高分、最低分,按平均分由高到低排列 5 計算 1001,1002 課程的'平均分。

6 查詢平均分大於80分的學生學號及平均分 7 統計選修課程超過 2 門的學生學號

8 統計有10位成績大於85分以上的課程號。 9 統計平均分不及格的學生學號

10 統計有大於兩門課不及格的學生學號

三 連接

1查詢 JSJ 系的學生選修的課程號

2查詢選修1002 課程的學生的學生姓名 (不用嵌套及嵌套2種方法) 3查詢資料庫原理不及格的學生學號及成績

4查詢選修「資料庫原理」課且成績 80 以上的學生姓名(不用嵌套及嵌套2種方法) 5查詢平均分不及格的學生的學號,姓名,平均分。 6查詢女學生平均分高於75分的學生姓名。

7查詢男學生學號、姓名、課程號、成績。(一門課程也沒有選修的男學生也要列出,不能

四 嵌套、相關及其他

1 查詢平均分不及格的學生人數

2 查詢沒有選修1002 課程的學生的學生姓名

3 查詢平均分最高的學生學號及平均分 (2種方法 TOP , any , all) *4 查詢沒有選修1001,1002課程的學生姓名。

5 查詢1002課程第一名的學生學號(2種方法) 6 查詢平均分前三名的學生學號

7 查詢 JSJ 系的學生與年齡不大於19歲的學生的差集

8 查詢1001號課程大於90分的學生學號、姓名及平均分大於85分的學生學號、姓名 9 查詢每門課程成績都高於該門課程平均分的學生學號 10 查詢大於本系科平均年齡的學生姓名

答案

參考答案

1 create table student (sno6), sname var8), ssex2), sagesmallint, sdept var15), primary key(sno));

create table sc

(sno6), cno 4),

grade decimal(12,2), primary key(sno,cno));

into student

values( 』4001』,』趙茵』,』男』,20,』SX』)

from student

student

alter table student add sbirthdate datetime

1 select sno, sname, sage from student

where ssex=』女』 and sage between 19 and 21order by sage desc; 2 select sno, ssexfrom student

where sname like 』_明% 』 ; 3 select sno, cnofrom sc

where grade is null and cno=』1001』 ; 4 select sno, sname from student

where sdept in (』JSJ』,』SX』,』WL』) and sage>25 group by sdept;

select sno, cno, grade/10.0+1 as levelfrom sc ;

select distinct sdept from student ; select grade from sc

where sno=』0001』 and (cno=』1001』 or cno=』1002』) ;

select count(*) from student where sname like 』%明% 』 ; select avg(sage),max(sage) from student where sdept=』JSJ』 ; select cno,sum(grade),avg(grade),max(grade),min(grade) from sc group by cno

order by avg(grade) desc ;

select cno, avg(grade) from sc where cno in(『1001』,』1002』) group by cno ;

select sc.sno ,avg(grade) from scgroup by sc.sno

having avg(grade)>80 ;

select sno from sc group by sno having count(*)>2 ;

select cno from sc where grade>85 group by cno having count(*)=10 ; select sno from sc group by sno having avg(grade)<60 ;

select sno from sc where grade<60 group="" by="" sno="" having="">2 ;

select cno from student,sc where student.sno=sc.sno and sdept=』JSJ』 ; a:select sname from student,sc where student.sno=sc.sno and cno=』1002』

b:select sname from student where sno in (select sno from sc where cno=』1002』)

select sno,grade from sc,course

where sc.cno=course.cno and cname=』資料庫原理』 and grade<60 a:select sname from student ,sc,course

where student.sno=sc.sno and sc.cno=course.cno and grade>80 and cname=』 資料庫原理』 b:select sname from student where sno in (select sno from sc where grade>80 and cno in (select cno from course where cname=』 資料庫原理』)) select sno,sname,avg(grade) from sc,studentwhere student.sno=sc.snogroup by student.sno having avg(grade)<60

a:select sname from student where ssex=』女』 and sno in(select sno from sc group by sno having avg(grade)>75)

b:select sname from sc,student where student.sno=sc.sno and ssex=』女』group by student.sno having avg(grade)>75

select student.sno,sname,cno,grade from student left join sc on student.sno=sc.sno and ssex=』男』

select count(*) from student where sno in( select sno from sc group by sno havingavg(grade)<60)

select sname from student where sno not in(select sno from sc where cno=』1002』)

student

0001 aaX 0002 bb

0003 ccX Sc

0001 1001 0001 1002 0002 1001 0003 1002

Select sname from student where not exists(select* from sc where cno=』1002』 and sc.sno=student.sno)

a:select top 1 sno,avg(grade) from sc group by sno order by avg(grade) desc b:select sno, avg(grade) from sc group by sno

having avg(grade)=(select top 1 avg(grade) from scgroup by sno order by avg(grade) desc) c:select sno, avg(grade) from sc group by sno

having avg(grade)>=all ( select avg(grade) from sc group by sno)

select sname from student where not exists(

select * from course where cno in(『1001』,』1002』) and

not exists(select * from sc where sno =student.sno and cno=course.cno) ) a:select top 1 sno from sc cno=』1002』 order by grade desc b:select sno from sc where cno=』1002』 and grade >=all (

;

⑧ 求 3道SQL選擇題,稍微有點難度的

1.隱藏系統資料庫操作中使用到的菜單命令是( )。
A 、選中要隱藏的系統資料庫後選擇 [ 操作 ] 4 [ 屬性 ] 菜單命令
B 、選中要隱藏的系統資料庫後選擇 [ 查看 ] 4 [ 自定義 ] 菜單命令
C 、選中 SQL Server 伺服器後選擇 [ 操作 ] 4 [ 編輯 SQL Server 注冊屬性 ] 菜單命令
D 、都可以
2.下面關於 SQL Server 登錄賬戶敘述錯誤的是( )。
A 、 默認情況下, Windows 的系統管理員賬戶自動成為 SQLServer 登錄賬戶
B 、在企業管理器中可修改 Windows 登錄賬戶的登錄密碼
C 、在企業管理器中可修改 SQL Server 登錄賬戶的登錄密碼
D 、SQL Server 安裝在 Windows NT 或 2000 中才有 BUILTI NAdministrators 登錄賬戶,否則只有 sa 賬戶
3.下列關於對象瀏覽器敘述錯誤的是( )。
A 、在編輯查詢時,可將資料庫、表或欄位名稱拖放到查詢窗口中
B 、將資料庫或欄位名稱拖放到查詢窗口中可直接添加資料庫或欄位名稱
C 、拖放表名,可在查詢中添加該表的所有欄位名稱
D 、拖放模板,可添加模板中的 SQL 命令
4.下列關於關系資料庫敘述錯誤的是( )。
A、 關系資料庫的結構一般保持不變,但也可根據需要進行修改
B 、一個數據表組成一個關系資料庫,多種不同的數據則需要創建多個資料庫
C 、關系數據表中的所有記錄的關鍵字欄位的值互不相同
D 、 關系數據表中的外部關鍵字不能用於區別該表中的記錄
5.下列關於資料庫的數據文件敘述錯誤的是( )。
A 、創建資料庫時必須指定數據文件
B 、創建資料庫時, PRIMARY 文件組中的第一個文件為數數據文件
C 、一個資料庫可以有多個數據文件
D 、一個資料庫只能有一個主數據文件
6.在使用 Recordset 對象時,如果要查看其他用戶的更改操作,則應將游標類型定義為( )。
A 、動態游標或鍵集游標
B 、鍵集游標或靜態游標
C 、靜態游標或僅向前游標
D 、僅向前游標或動態游標

⑨ 速求高手解答SQL一道上機練習題

1:select 姓名,單位 from 讀者 where 姓名悉兄 like '李%'

2:select 書名,出版單位 from 圖書庫

3:
select 書兆早名,單價 from 圖書表 where 出版單位='高等教育出版社' order by 單價 desc

4:

select 分類號 from 圖書表 where 價格 between 10 and 20 order by 單位出版社,單價

5:
select * from 書名,作者 from 圖書 where 書名 like '計算機%'

6:

select 讀者.姓名,讀者族陸雀.單位 from 讀者 join 圖書 on 圖書.總編號=讀者.借書證號
太多了!不想寫! 哎!

⑩ SQL練習題

一 學生 – 課程資料庫
1 查詢 7號課程沒有考試成績的學生學號
select sno from sc where cno=』7』 and grade is not null
2 查詢 7號課程成績在90分以上或60分以下的學生學號
select sno from sc where grade>90 or grade<60
3 查詢課程名以「數據」兩個字開頭的所有課程的課程號和課程名。
Select cno,cname from c where cname like 『數據%』
4 查詢每個學生所有課程的平均成績,輸出學生學號、平均成績
select sno,avg(grade) from sc group by sno
5 查詢每門課程的選修人數,輸出課程號、選修人數。
Select cno,count(*) from sc group by cno
6 查詢選修 7號課程的學生的學號、姓名、性別。
Select s.sno, sname,ssex from s , sc where s.sno=sc.sno and cno = 『7』
7 查詢選修7號課程學生的平均年齡。
Select avg(sage) from s , sc where s.sno=sc.sno and cno = 『7』
8 查詢由30名以上學生選修的課程號。
Select sno from sc group by cno having count(*)>30
9 查詢至今沒有考試不及格的學生學號
a: select sno from s where sno not in ( select sno from sc where grade<60 )
b: select sno from sc group by sno having min(grade)>=60

1 找出選修課程號為 C2 的學生學號與成績。
Select sno,grade from sc where cno=』C2』
2 找出選修課程號為C4 的學生學號與姓名。
Select s.sno , sname from s,sc where s.sno=sc.sno and cno=』C4』
3 找出選修課程名為 Maths 的學生學號與姓名。
Select s.sno ,sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and cname = 『Maths』
4找出選修課程號為C2或C4 的學生學號。
Select distinct sno from sc where cno in (『C2』,』C4』)
或: Select distinct sno from sc where cno=』C2』 or cno =』C4』
5找出選修課程號為C2和C4 的學生學號。
Select sno from sc where cno =』C2』 and sno in (
select sno from sc where cno = 『C4』 )
6 找出不學C2課程的學生姓名和年齡
select sname , sage from s where sno not in ( select sno from sc where cno=』C2』 )
或:
select sname , sage from s where not exists ( select * from sc where sc.sno=s.sno and cno=』C2』 )
7 找出選修了資料庫課程的所有學生姓名。(與3同)
Select s.sno ,sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and cname = 『資料庫』

8 找出資料庫課程不及格的女生姓名
嵌套:
select sname from s where ssex = 『女』 and sno in ( select sno from sc where grade<60 and cno in ( select cno from c where cname=』資料庫』) )
連接:
Select sname from s,sc,c
where s.sno=sc.sno and c.cno=sc.cno and ssex=』女』 and cname = 『資料庫』 and grade<60
9 找出各門課程的平均成績,輸出課程名和平均成績
select cname , avg(grade) from sc , c where c.cno =sc.cno group by sc.cno
10找出各個學生的平均成績,輸出學生姓名和平均成績
select sname , avg(grade) from s , sc where s.sno=sc.sno group by sc.sno
11 找出至少有30個學生選修的課程名
select cname from c where cno in ( select cno from sc group by cno having count(*)>=30 )
12 找出選修了不少於3門課程的學生姓名。
Select sname from s where sno in ( select sno from sc group by sno having count(*)>=3)
13 找出各門課程的成績均不低於90分的學生姓名。
Select sname from s where sno not in ( select sno from sc where grade<90)
14* 找出資料庫課程成績不低於該門課程平均分的學生姓名。
Select sname from s where sno in (
Select sno from sc , c where sc.cno=c.cno and cname=』資料庫』 and
Grade > (Select avg(grade) from sc , c where sc.cno=c.cno and cname=』資料庫』 ) )
15 找出各個系科男女學生的平均年齡和人數。
Select sdept,ssex , avg(sage) , count(*) from s
Group by sdept , ssex
16 找出計算機系(JSJ)課程平均分最高的學生學號和姓名。
Select sc.sno , sname from s, sc where s.sno=sc.sno and sdept=』JSJ』
Group by sc.sno Having avg(grade) =
( Select top 1 avg(grade) from sc, s where s.sno=sc.sno and sdept=』JSJ』
group by sc.sno order by avg(grade) DESC )
三 客戶 – 商品資料庫中包括3按各表:KH,FP,YWY
1 查詢工資在 1000 到3000 元之間的男性業務員的姓名和辦公室編號。
Select Yname , Ono from YWY where salary between 1000 and 3000 and Ysex=』男』
2 查詢各個辦公室的業務員人數,輸出辦公室編號和對應的人數。
Select Ono , count(*) from YWY group by Ono
3 查詢每個客戶在2002年5月購買的總金額,輸出客戶號和相應的總金額。
Select Kno,sum(Fmoney) from FP where fdate between 『2002.5.1』 and 『2002.5.31』
Group by Kno
4 查詢2002年5月購買次數超過5次的所有客戶號,且按客戶號升序排序。
Select Kno from FP where fdate between 『2002.5.1』 and 『2002.5.31』
Group by Kno having count(*)>5
Order by Kno ASC
5 查詢各辦公室男性和女性業務員的平均工資。
Select Ono,Ysex ,avg(salary) from YWY group by Ono , Ysex
6 查詢2002年5月曾經在王海亮業務員手中購買過商品的客戶號、客戶姓名、聯系電話。
Select Kno,Kname,phone from KH where Kno in (
Select kno from FP where fdate between 『2002.5.1』 and 『2002.5.31』 and
Yno=(select Yno from YWY where Yname = 『王海亮』 )
7 查詢所有工資比1538號業務員高的業務員的編號、姓名、工資。
Select yno ,Yname, salary from YWY where salary >
( Select salary from YWY where Yno=』1538』 )
8 查詢所有與1538號業務員在同一個辦公室的其他業務員的編號、姓名。
Select Yno , Yname from YWY where Yno<>』1538』 and Ono in (
Select Ono from YWY where Yno=』1538』 )
9 查詢銷售總金額最高的業務員的編號。
Select Yno from FP Group By Yno Having sum(Fmoney) =
(Select top 1 sum(Fmoney) from FP group by Yno ORDER BY sum(Fmoney) DESC)
10 查詢所有業務員的編號、姓名、工資以及工資比他高的其他業務員的平均工資。
利用自身連接
Select y1.Yno ,y1.Yname ,y1.salary , avg( y2. salary) from YWY y1 , YWY y2
Where y1.Yno<>y2.Yno and y1.salary < y2.salary
Group by y1.Yno
Sno salary sno salary
1 100 1 100
2 120 2 120
3 90 3 90
4 110 4 110
四 某中學資料庫中由一張表:
學生選課表:由板及代碼、班內學號、姓名、科目、成績五個屬性組成,關系模式為
SC(BJDM,BNXH,XSXM,KM,CJ) ,其中(BJDM,BNXH)為主碼。
說明:每個學生每門科目存放一個記錄,科目有「語文」、「數學」、「外語」三門。
1 找出每個班級的班級代碼、學生人數、平均成績。
Select BJDM,count(*) ,avg(CJ) from SC group by BJDM
2 找出每個學生的班級代碼、學生姓名、考試科目數、總成績。
Select BJDM,XSXM,count(*) , sum(CJ) from SC
Group by BNXH
3 輸出一張表格,每位學生對應一條記錄,包括:班級代碼、姓名、語文成績、數學成績、外語成績。
方法一:利用視圖
create view v1 (bjdm,xsxm, yw,sx,wy ) AS
select bjdm , xsxm , cj , 0,0 from sc where km=』語文』
union
select bjdm , xsxm , 0 , cj,0 from sc where km=』數學』
union
select bjdm , xsxm , 0,0,cj from sc where km=』外語』

select bjdm, xsxm , sum(yw) as 語文, sum(sx) as 數學, sum(wy) as 外語 from v1 group by bjdm, xsxm
方法二:自身連接
select a.bjdm,a.xsxm , a.km,a.cj , b.km,b.cj , c.km,c.cj from sc a , sc b , sc c
where a.bjdm=b.bjdm and a.bnxh= b.bnxh and b.bjdm=c.bjdm and b.bnxh= c.bnxh
and a.km=』語文』 and b.km=』數學』 and c.km=』外語』
方法三:利用存儲過程(略)
4 輸出一張表格:由成績低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、最低成績。
Select bjdm,xsxm ,min(CJ) from sc where grade<60 group by bjdm,xsxm
5輸出一張表格:由成績低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、最高成績、平均成績。
得到平均成績:create view V1 (bjdm,bnxh ,avg_cj) AS
select bjdm,bnxh ,avg(cj) from sc where bjdm , bnxh
select sc.bjdm,sc.xsxm ,max(cj) , avg_cj from sc , V1
where sc.bjdm=v1.bjdm and sc.bnxh=V1.bnxh and cj<60
group by sc.bjdm,sc.xsxm
6輸出一張表格:所有成績不低於60分的每位學生對應一條記錄,包括欄位:班級代碼、姓名、平均成績。
select bjdm, xsxm , avg(cj) from sc
where sno not in ( select sno from sc where grade<60)
group by bjdm, xsxm
7輸出一張表格:每一位學生對應一條記錄,包括欄位:班級代碼、姓名、去掉一個最低分後的平均成績。
方法一:
得到每個學生的最低分:
create view V1 (bjdm,bnxh ,min_cj) as
select bjdm,bnxh,min(cj) from sc group by bjdm,bnxh
select sc.bjdm,sc.xsxm , avg(cj) from sc , v1
where sc.bjdm=v1.bjdm and sc.bnxh=v1.bnxh and sc.cj <> v1.min_cj
group by bjdm,bnxh
方法二:
select sc.bjdm,sc.xsxm , ( sum(cj) – min(cj) ) / count(*) from sc
group by bjdm , bnxh
8輸出一張表格:每門科目對應一條記錄,包括欄位:科目、去掉一個最低分後的平均成績。
方法一:
得到每門課的最低分:
create view V1 ( km, min_cj) as
select km,min(cj) from sc group by km
select sc.km , avg(cj) from sc , v1
where sc.km=v1.km and sc.cj <> v1.min_cj
group by sc.km
方法二:
select km , (sum( cj) – min(cj) )/count(*) from sc
group by km
補充9:輸出表格:每門科目對應一條記錄,包括欄位:科目、去掉一個最低分和最高分後的平均成績。
select km , (sum( cj) – min(cj) – max(cj) )/count(*) from sc
group by km
五 資料庫存放著某高校1990年以來英語四、六級的考試情況,且規定:
1 英語四、六級考試每年分別在6月和12月舉行二次;
2 四級沒有通過的學生不能報考六級;
3 某一級的考試只要沒有通過可以反復參加考試;
4 某一級的考試一旦通過就不能再報考同級的考試;
5 允許報了名但不參加考試。
該資料庫中有二張表,相應的關系模式如下:
學生表:S(Sno, Sname, Ssex, Sage, Sdept),其中Sno為主碼。
考試表:E(Sno, Year, Month, Level, Grade),學號、年、月、級別、成績。
其中(Sno, Year, Month)為主碼。
1. 找出各次四級和六級考試的參考人數和平均成績(報了名但沒有參加考試的不作統計)
select year , month,level ,count(*) , avg(grade)
group by year,month , level
2. 找出各次四級考試中平均分最高的系科(報了名但沒有參加考試的不作統計)。
A: Select sdept from s , e where s.sno=e.sno
Where level=4
Group by sdept
Having avg(grade)>=ALL(
Select avg(grade) from s , e where s.sno=e.sno where level=4 Group by sdept )
B: Select top 1 sdept from s , e where s.sno=e.sno
Where level=4
Group by sdept
Order by (avg(grade) desc
3. 找出已經通過英語六級考試的學生的學號、姓名和性別(用連接方法做)
select s.sno,sname,ssex from s,e
where s.sno=e.sno and level=6 and grade>=60
4. 找出在同一年中四、六級考試都參加了的學生的學號
1) select sno from E
where (level=4 and grade>=60) or level=6
group by year having count(*)>=2
2) select sno from E X where level=4 and grade>=60 and exists (
select * from E Y where Y.sno=X.sno and year=X.year and level=6 )
5. 找出只參加一次考試就通過了英語六級考試的學生的學號
select sno from E
where level=6
group by sno
having count(*)=1 錯,想想為何?
1) select sno from E
where level=6
group by sno
having count(*)=1 and max(grade)>=60
2) select sno from E where level=6 and grade>=60 and sno in (
select sno from E where level=6 group by sno having count(*)=1)
6. 找出至今沒有通過英語四級考試的學生的學號(應包括至今還沒有參加過考試或者是參加了但還沒有通過兩種)
select sno from E where level=4
group by sno
having max(grade)<60
Union
Select sno from s where sno not in( select sno from E)
7. 找出英語六級考試中合格人數最少的考試年份和月份(有並列的都要列出,用一句SQL語句)。
Select year , month From E
Where level = 6 and grade>=60
Group by year , month
Having count(*) <=all
(Select count(*) from E where level=6 and grade>=60 group by year , month )

我是從「上海全鼎軟體學院」畢業的————————