1. 程式人生 > 其它 >回顧MySQL查詢語句經典例項2

回顧MySQL查詢語句經典例項2

技術標籤:MySQLJava Web技術解析MySQL

#查詢平均成績大於等於 60 分的同學的學生編號和學生姓名和平均成績
#分析,我們可以根據學生編號將成績分組,對分組的score求平均值,最後在選取結果中利用AVG函式進行求平均值並判斷是否大於等於60即可
#一般的聯合搜尋

select student.sid,sname,avgScore from student,(
  select sid, AVG(score) as avgScore from score
  GROUP BY sid
  HAVING AVG(score)> 60
  )r
where student.sid = r.sid;

#左連線

select s.sid,avgSocre,sname from(
select sid, AVG(score) as avgSocre from score  
GROUP BY sid 
HAVING AVG(score)> 60
)r left join 
(select student.sid, student.sname from
student)s on s.sid = r.sid;

#右連線

select student.sid, student.sname, r.avgScore from student right join(
      select sid, AVG(score) AS avgScore from score
      GROUP BY sid
      HAVING AVG(score)> 60
)r on student.sid = r.sid;

#查詢在socre表存在成績的學生資訊

select DISTINCT student.*
from student,score
where student.sid=score.sid

#查詢所有同學的學生編號,學生姓名,選課總數,所有課程的成績綜合
#聯合查詢(不會顯示沒有選課的學生)

#通過join查詢可以顯示沒有選課的學生(沒有選課的學生為NULL)

#查有成績的學生資訊
#exists

select * from student
where exists (select score.sid from score where student.sid = score.sid);

#in

select * from student
where student.sid in (select score.sid from score);