1. 程式人生 > >測試面試必會sql(1)

測試面試必會sql(1)

 

 

 測試一般各種查詢語句用的較多,下面的查詢語句都是需要熟悉的

 

 

Course表

Score表

Student表

 

 Teacher表

1,查詢課程編號為“02”的總成績

SELECT * FROM `Score` where c_id=02;

 

2,查詢課程編號為“01”的課程比“02”的課程成績高的所有學生的學號

SELECT st.*,a.s_core,b.s_core
FROM Student st
INNER JOIN (SELECT s_id,s_core from Score where c_id='01') a ON st.s_id=a.s_id
INNER JOIN (SELECT s_id,s_core FROM Score WHERE c_id='02') b ON a.s_id=b.s_id
WHERE a.s_core>b.s_core;

 

3,查詢沒學過“張三”老師課的學生的學號、姓名

SELECT st.s_id,st.s_name
from Student st
WHERE st.s_id not in
(SELECT sc.s_id from Score sc INNER JOIN Course co on sc.c_id=co.c_id
INNER JOIN Teacher te on te.t_id=co.t_id
WHERE te.t_name='張三');

 

4,查詢沒有學全所有課的學生的學號、姓名

SELECT st.s_id,st.s_name FROM Student st
INNER JOIN Score sc on st.s_id=sc.s_id
GROUP BY st.s_id HAVING COUNT(c_id)<(SELECT COUNT(DISTINCT c_id)from Course);

 

5,查詢平均成績大於60分的學生的學號和平均成績

SELECT s_id as "學號",avg(s_core) as "平均成績" from Score GROUP BY s_id HAVING avg(s_core)>60   

 

6,查詢所有學生的學號、姓名、選課數、總成績

SELECT Student.s_id,Student.s_name,count(Score.c_id),sum(Score.s_core)
FROM Student
JOIN Score
on Student.s_id=Score.s_id
GROUP BY Student.s_id;

 

7,查詢姓“猴”的老師的個數

SELECT count(t_id)
FROM `Teacher`
where t_name like"猴%";

 

8,查詢學過“張三”老師所教的所有課的同學的學號、姓名

SELECT st.s_id as '學號',st.s_name as '名稱'
from Student st
WHERE st.s_id in
(SELECT sc.s_id from Score sc INNER JOIN Course co on sc.c_id=co.c_id
INNER JOIN Teacher te on te.t_id=co.t_id
WHERE te.t_name='張三');

 

9,查詢學過編號為“01”的課程並且也學過編號為“02”的課程的學生的學號、姓名

SELECT *
FROM Student St
INNER JOIN Score Sc
on Sc.s_id=St.s_id
WHERE c_id = '01'and c_id ='02';

 

10,查詢至少有一門課與學號為“01”的學生所學課程相同的學生的學號和姓名

SELECT st.s_id,st.s_name
from Student st
INNER JOIN Score sc
on st.s_id=sc.s_id
WHERE c_id IN (SELECT c_id from Score where s_id = 01) and st.s_id <> 01
GROUP BY st.s_id