大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

面試題首頁(yè) > SQL語(yǔ)句面試題

SQL多表查詢(xún)面試題

001經(jīng)典SQL筆試題題干

學(xué)生表:student(學(xué)號(hào)sno,學(xué)生姓名sname,出生年月sbirth,性別ssex)
成績(jī)表:score(學(xué)號(hào)sno,課程號(hào)cno,成績(jī)score)
課程表:course(課程號(hào)cno,課程名稱(chēng)cname,教師號(hào)ctno)
教師表:teacher(教師號(hào)tno,教師姓名tname)
注意:下面SQL的實(shí)現(xiàn)以MySQL為主

002查詢(xún)所有課程成績(jī)小于60分學(xué)生的學(xué)號(hào)、姓名。

/*
第1步,寫(xiě)子查詢(xún)(所有課程成績(jī) < 60 的學(xué)生)*/
select 學(xué)號(hào)  from score where 成績(jī) < 60;
/*第2步,查詢(xún)結(jié)果:學(xué)生學(xué)號(hào),姓名,條件是前面1步查到的學(xué)號(hào)*/
select 學(xué)號(hào),姓名 from student where  學(xué)號(hào) in ( select 學(xué)號(hào) 
from score where 成績(jī) < 60);

003查詢(xún)沒(méi)有學(xué)全所有課的學(xué)生的學(xué)號(hào)、姓名。

/*
查找出學(xué)號(hào),條件:沒(méi)有學(xué)全所有課,也就是該學(xué)生選修的課程數(shù) < 總的課程數(shù)
【考察知識(shí)點(diǎn)】in,子查詢(xún)
*/
select 學(xué)號(hào),姓名from student where 學(xué)號(hào) in( select 學(xué)號(hào) from score
group by 學(xué)號(hào) having count(課程號(hào)) < (select count(課程號(hào)) from course));

004查詢(xún)出只選修了兩門(mén)課程的全部學(xué)生的學(xué)號(hào)和姓名。

select 學(xué)號(hào),姓名from student where 學(xué)號(hào) in( select 學(xué)號(hào) from score
group by 學(xué)號(hào)having count(課程號(hào))=2);

005按課程號(hào)分組取成績(jī)最大值所在行的數(shù)據(jù)。

/*我們可以使用分組(group by)和匯總函數(shù)得到每個(gè)組里的一個(gè)值(最大值,最小值,平均值等)。
但是無(wú)法得到成績(jī)最大值所在行的數(shù)據(jù)。*/
select 課程號(hào),max(成績(jī)) as 最大成績(jī) from score group by 課程號(hào);
/*我們可以使用關(guān)聯(lián)子查詢(xún)來(lái)實(shí)現(xiàn):*/
select * from score as a where 成績(jī) = (select max(成績(jī)) 
from score as b where b.課程號(hào) = a.課程號(hào));
/*上面查詢(xún)結(jié)果課程號(hào)“0001”有2行數(shù)據(jù),是因?yàn)樽畲蟪煽?jī)80有2個(gè)
分組取每組最小值:按課程號(hào)分組取成績(jī)最小值所在行的數(shù)據(jù)*/
select * from score as a where 成績(jī) = (select min(成績(jī)) 
from score as b where b.課程號(hào) = a.課程號(hào));

006查詢(xún)各科成績(jī)前兩名的記錄。

/*第1步,查出有哪些組,我們可以按課程號(hào)分組,查詢(xún)出有哪些組,對(duì)應(yīng)這個(gè)問(wèn)題里就是有哪些課程號(hào)*/
select 課程號(hào),max(成績(jī)) as 最大成績(jī)from score group by 課程號(hào);
/*第2步:先使用order by子句按成績(jī)降序排序(desc),然后使用limt子句返回topN(對(duì)應(yīng)這個(gè)問(wèn)題返回的成績(jī)前兩名*/
select * from score where 課程號(hào) = '0001' order by 成績(jī) ?desc?limit 2;
/*第3步,使用union all 將每組選出的數(shù)據(jù)合并到一起.同樣的,可以寫(xiě)出其他組的(其他課程號(hào))取出成績(jī)前2名的sql*/
(select * from score where 課程號(hào) = '0001' order by 成績(jī) ?desc limit 2) union all
(select * from score where 課程號(hào) = '0002' order by 成績(jī) ?desc limit 2) union all
(select * from score where 課程號(hào) = '0003' order by 成績(jī) ?desc limit 2);

007查詢(xún)所有學(xué)生的學(xué)號(hào)、姓名、選課數(shù)、總成績(jī)。

select a.學(xué)號(hào),a.姓名,count(b.課程號(hào)) as 選課數(shù),sum(b.成績(jī)) as 總成績(jī)
from student as a left join score as b on a.學(xué)號(hào) = b.學(xué)號(hào)group by a.學(xué)號(hào);

008查詢(xún)平均成績(jī)大于85的所有學(xué)生的學(xué)號(hào)、姓名和平均成績(jī)。

select a.學(xué)號(hào),a.姓名, avg(b.成績(jī)) as 平均成績(jī)
from student as a left join score as b
on a.學(xué)號(hào) = b.學(xué)號(hào)group by a.學(xué)號(hào)having avg(b.成績(jī))>85;

009查詢(xún)學(xué)生的選課情況:學(xué)號(hào),姓名,課程號(hào),課程名稱(chēng)。

select a.學(xué)號(hào), a.姓名, c.課程號(hào),c.課程名稱(chēng)
from student a inner join score b on a.學(xué)號(hào)=b.學(xué)號(hào)
inner join course c on b.課程號(hào)=c.課程號(hào);

010查詢(xún)課程編號(hào)為0003且課程成績(jī)?cè)?0分以上的學(xué)生的學(xué)號(hào)和姓名。

select a.學(xué)號(hào),a.姓名
from student  as a inner join score as b on a.學(xué)號(hào)=b.學(xué)號(hào)
where b.課程號(hào)='0003' and b.成績(jī)>80;

目錄

返回頂部
主站蜘蛛池模板: 免费人成在线观看网站品爱网 | 亚洲精品在线免费看 | 色视频网| 国产精品麻豆一区二区 | 国产福利午夜自产拍视频在线 | 在线播放精品视频 | 婷婷激情网站 | 成人影院免费在线观看 | 一级毛片不卡 | 欧美视频在线观在线看 | 天天干夜夜添 | 国产在线19禁免费观看国产 | 美国一级毛片片aa成人 | 奇米888四色在线精品 | 亚洲精品一区二区在线观看 | 精品乱人伦一区二区 | 久久婷婷网 | 四虎影视在线影院在线观看 | 久久久成人影院 | 26uuu欧美日韩国产 | 午夜宅男在线观看 | 色爱区综合激月婷婷激情五月 | 日韩欧美一卡二区 | 欧美日韩亚洲国产无线码 | 久草免费精品视频 | 一本色道久久综合亚洲精品 | 亚洲精品影院一区二区 | 一级成人黄色片 | 成人性生交大片免费看午夜a | 国产96福利视频在线观看 | 欧美大片一区 | 四虎avtom影院 | 久久亚洲国产精品五月天 | 久草青草 | 欧洲精品视频在线观看 | 久久精品国产99久久香蕉 | 夜夜操天天爽 | 男人手机天堂 | 婷婷天天 | 午夜免费 | 亚洲精品在线免费 |