常見的sql面試題.docx_第1頁
常見的sql面試題.docx_第2頁
常見的sql面試題.docx_第3頁
常見的sql面試題.docx_第4頁
常見的sql面試題.docx_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

學生表 :Student (S1,Sname,Sage,Ssex) S1:學號; Sname:學生姓名; Sage:學生年齡; Ssex:學生性別課程表 : Course(C1,Cname,T1) C1,課程編號;Cname:課程名字;T1:教師編號成績表: SC(S1,C1,score) S1:學號;C1,課程編號;score:成績教師表 :Teacher(T,#Tname) T1:教師編號; Tname:教師名字問題:1、查詢“001”課程比“002”課程成績高的所有學生的學號; select a.S1 from (select S1,score from SC where C1=001) a,(select S1,score from SC where C1=002) b where a.scoreb.score and a.S1=b.S1;2、查詢平均成績大于60分的同學的學號和平均成績; select S1,avg(score) from sc group by S1 having avg(score) 60;3、查詢所有同學的學號、姓名、選課數(shù)、總成績; select Student.S1,Student.Sname,count(SC.C1),sum(score) from Student left Outer join SC on Student.S1=SC.S1 group by Student.S1,Sname4、查詢姓“李”的老師的個數(shù); select count(distinct(Tname) from Teacher where Tname like 李%;5、查詢沒學過“葉平”老師課的同學的學號、姓名; select Student.S1,Student.Sname from Student where S1 not in (select distinct( SC.S1) from SC,Course,Teacher where SC.C1=Course.C1 and Teacher.T1=Course.T1 and Teacher.Tname=葉平);6、查詢學過“001”并且也學過編號“002”課程的同學的學號、姓名; select Student.S1,Student.Sname from Student,SC where Student.S1=SC.S1 and SC.C1=001and exists( Select * from SC as SC_2 where SC_2.S1=SC.S1 and SC_2.C1=002);7、查詢學過“葉平”老師所教的所有課的同學的學號、姓名; select S1,Sname from Student where S1 in (select S1 from SC ,Course ,Teacher where SC.C1=Course.C1 and Teacher.T1=Course.T1 and Teacher.Tname=葉平 group by S1 having count(SC.C1)=(select count(C1) from Course,Teacher where Teacher.T1=Course.T1 and Tname=葉平);8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名; Select S1,Sname from (select Student.S1,Student.Sname,score ,(select score from SC SC_2 where SC_2.S1=Student.S1 and SC_2.C1=002) score2 from Student,SC where Student.S1=SC.S1 and C1=001) S_2 where score2 60);10、查詢沒有學全所有課的同學的學號、姓名; select Student.S1,Student.Sname from Student,SC where Student.S1=SC.S1 group by Student.S1,Student.Sname having count(C1) =60 THEN 1 ELSE 0 END)/COUNT(*) AS 及格百分數(shù) FROM SC T,Course where t.C1=course.C1 GROUP BY t.C1 ORDER BY 100 * SUM(CASE WHEN isnull(score,0)=60 THEN 1 ELSE 0 END)/COUNT(*) DESC20、查詢?nèi)缦抡n程平均成績和及格率的百分數(shù)(用1行顯示): 企業(yè)管理(001),馬克思(002),OO&UML (003),數(shù)據(jù)庫(004) SELECT SUM(CASE WHEN C1 =001 THEN score ELSE 0 END)/SUM(CASE C1 WHEN 001 THEN 1 ELSE 0 END) AS 企業(yè)管理平均分 ,100 * SUM(CASE WHEN C1 = 001 AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C1 = 001 THEN 1 ELSE 0 END) AS 企業(yè)管理及格百分數(shù) ,SUM(CASE WHEN C1 = 002 THEN score ELSE 0 END)/SUM(CASE C1 WHEN 002 THEN 1 ELSE 0 END) AS 馬克思平均分 ,100 * SUM(CASE WHEN C1 = 002 AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C1 = 002 THEN 1 ELSE 0 END) AS 馬克思及格百分數(shù) ,SUM(CASE WHEN C1 = 003 THEN score ELSE 0 END)/SUM(CASE C1 WHEN 003 THEN 1 ELSE 0 END) AS UML平均分 ,100 * SUM(CASE WHEN C1 = 003 AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C1 = 003 THEN 1 ELSE 0 END) AS UML及格百分數(shù) ,SUM(CASE WHEN C1 = 004 THEN score ELSE 0 END)/SUM(CASE C1 WHEN 004 THEN 1 ELSE 0 END) AS 數(shù)據(jù)庫平均分 ,100 * SUM(CASE WHEN C1 = 004 AND score = 60 THEN 1 ELSE 0 END)/SUM(CASE WHEN C1 = 004 THEN 1 ELSE 0 END) AS 數(shù)據(jù)庫及格百分數(shù) FROM SC21、查詢不同老師所教不同課程平均分從高到低顯示 SELECT max(Z.T1) AS 教師ID,MAX(Z.Tname) AS 教師姓名,C.C1 AS 課程,MAX(C.Cname) AS 課程名稱,AVG(Score) AS 平均成績 FROM SC AS T,Course AS C ,Teacher AS Z where T.C1=C.C1 and C.T1=Z.T1 GROUP BY C.C1 ORDER BY AVG(Score) DESC22、查詢?nèi)缦抡n程成績第 3 名到第 6 名的學生成績單:企業(yè)管理(001),馬克思(002),UML (003),數(shù)據(jù)庫(004) 學生ID,學生姓名,企業(yè)管理,馬克思,UML,數(shù)據(jù)庫,平均成績 SELECT DISTINCT top 3 SC.S1 As 學生學號, Student.Sname AS 學生姓名 , T1.score AS 企業(yè)管理, T2.score AS 馬克思, T3.score AS UML, T4.score AS 數(shù)據(jù)庫, ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) as 總分 FROM Student,SC LEFT JOIN SC AS T1 ON SC.S1 = T1.S1 AND T1.C1 = 001 LEFT JOIN SC AS T2 ON SC.S1 = T2.S1 AND T2.C1 = 002 LEFT JOIN SC AS T3 ON SC.S1 = T3.S1 AND T3.C1 = 003 LEFT JOIN SC AS T4 ON SC.S1 = T4.S1 AND T4.C1 = 004 WHERE student.S1=SC.S1 and ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) NOT IN (SELECT DISTINCT TOP 15 WITH TIES ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) FROM sc LEFT JOIN sc AS T1 ON sc.S1 = T1.S1 AND T1.C1 = k1 LEFT JOIN sc AS T2 ON sc.S1 = T2.S1 AND T2.C1 = k2 LEFT JOIN sc AS T3 ON sc.S1 = T3.S1 AND T3.C1 = k3 LEFT JOIN sc AS T4 ON sc.S1 = T4.S1 AND T4.C1 = k4 ORDER BY ISNULL(T1.score,0) + ISNULL(T2.score,0) + ISNULL(T3.score,0) + ISNULL(T4.score,0) DESC);23、統(tǒng)計列印各科成績,各分數(shù)段人數(shù):課程ID,課程名稱,100-85,85-70,70-60, 60 SELECT SC.C1 as 課程ID, Cname as 課程名稱 ,SUM(CASE WHEN score BETWEEN 85 AND 100 THEN 1 ELSE 0 END) AS 100 - 85 ,SUM(CASE WHEN score BETWEEN 70 AND 85 THEN 1 ELSE 0 END) AS 85 - 70 ,SUM(CASE WHEN score BETWEEN 60 AND 70 THEN 1 ELSE 0 END) AS 70 - 60 ,SUM(CASE WHEN score T2.平均成績) as 名次, S1 as 學生學號,平均成績 FROM (SELECT S1,AVG(score) 平均成績 FROM SC GROUP BY S1 ) AS T2 ORDER BY 平均成績 desc; 25、查詢各科成績前三名的記錄:(不考慮成績并列情況) SELECT t1.S1 as 學生ID,t1.C1 as 課程ID,Score as 分數(shù) FROM SC t1 WHERE score IN (SELECT TOP 3 score FROM SC WHERE t1.C1= C1 ORDER BY score DESC ) ORDER BY t1.C1;26、查詢每門課程被選修的學生數(shù) select C1,count(S1) from sc group by C1;27、查詢出只選修了一門課程的全部學生的學號和姓名 select SC.S1,Student.Sname,count(C1) AS 選課數(shù) from SC ,Student where SC.S1=Student.S1 group by SC.S1 ,Student.Sname having count(C1)=1;28、查詢男生、女生人數(shù) Select count(Ssex) as 男生人數(shù) from Student group by Ssex having Ssex=男; Select count(Ssex) as 女生人數(shù) from Student group by Ssex having Ssex=女;29、查詢姓“張”的學生名單 SELECT Sname FROM Student WHERE Sname like 張%;30、查詢同名同性學生名單,并統(tǒng)計同名人數(shù) select Sname,count(*) from Student group by Sname having count(*)1;31、1981年出生的學生名單(注:Student表中Sage列的類型是datetime) select Sname, CONVERT(char (11),DATEPART(year,Sage) as age from student where CONVERT(char(11),DATEPART(year,Sage)=1981;32、查詢每門課程的平均成績,結(jié)果按平均成績升序排列,平均成績相同時,按課程號降序排列 Select C1,Avg(score) from SC group by C1 order by Avg(score),C1 DESC ;33、查詢平均成績大于85的所有學生的學號、姓名和平均成績 select Sname,SC.S1 ,avg(score) from Student,SC where Student.S1=SC.S1 group by SC.S1,Sname having avg(score)85;34、查詢課程名稱為“數(shù)據(jù)庫”,且分數(shù)低于60的學生姓名和分數(shù) Select Sname,isnull(score,0) from Student,SC,Course where SC.S1=Student.S1 and SC.C1=Course.C1 and Course.Cname=數(shù)據(jù)庫and score =70 AND SC.S1=student.S1;37、查詢不及格的課程,并按課程號從大到小排列 select C1 from sc where scor e 80 and C1=003;39、求選了課程的學生人數(shù) select count(*) from sc;40、查詢選修“葉平”老師所授課程的學生中,成績最高的學生姓名及其成績 select Student.Sname,score from Student,SC,Course C,Teacher where Student.S1=SC.S1 and SC.C1=C.C1 and C.T1=Teacher.T1 and Teacher.Tname=葉平 and SC.score=(select max(score)from SC where C1=C.C1 );41、查詢各個課程及相應(yīng)的選修人數(shù) select count(*) from sc group by C1;42、查詢不同課程成績相同的學生的學號、課程號、學生成績 select distinct A.S1,B.score from SC A ,SC B where A.Score=B.Score and A.C1 B.C1 ;43、查詢每門功成績最好的前兩名 SELECT t1.S1 as 學生ID,t1.C1 as 課程ID,Score as 分數(shù) FROM SC t1 WHERE score IN (SELECT TOP 2 score FROM SC WHERE t1.C1= C1 ORDER BY score DESC ) ORDER BY t1.C1;44、統(tǒng)計每門課程的學生選修人數(shù)(超過10人的課程才統(tǒng)計)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論