MySQL 子查詢和表連線查詢
SELECT * FROM grade;
SELECT * FROM result;
SELECT * FROM student;
SELECT * FROM subject
;
SELECT s.StudentNo ,s.StudentName
,j.SubjectName
,r.StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo
=r.StudentNo
INNER JOIN subject
j
ON r.SubjectNo
=j.SubjectNo
WHERE r.StudentResult
>80 AND SubjectName=‘JAVA第一學年’
ORDER BY r.StudentResult DESC
LIMIT 0,5;
#查詢所有姓李同學的學生成績
SELECT s.StudentName
,j.SubjectName
,r.StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo
=r.StudentNo
INNER JOIN subject
j
ON r.SubjectNo
=j.SubjectNo
WHERE s.StudentName
LIKE ‘%李%’ AND r.StudentResult
ORDER BY r.StudentResult
DESC
LIMIT 0,10
USE school
SELECT * FROM student
SELECT * FROM grade
SELECT * FROM subject
SELECT * FROM result
SELECT * FROM
subject
WHERE subjectName=‘U1’
#查詢密碼長度不足六位的學員
SELECT studentNo,studentName,LoginPwd,GradeName
FROM student s,grade g
WHERE s.GradeId
=g.gradeid
AND LENGTH(LoginPwd)<6 #查詢密碼長度不足六位的學員
#查詢某同學的所有考試成績
SELECT subjectName AS 科目名稱,StudentResult AS 考試成績
FROM subject
AS s
INNER JOIN result AS r
ON s.subjectno
subjectNo
INNER JOIN student
ON r.
StudentNo
= student.StudentNo
WHERE studentname=‘郭靖’
GROUP BY subjectname
#使用表連線的方式查詢所有XX年級學員學號,姓名及年級
SELECT studentNo 學號, studentName 姓名,gradename 年級
FROM student s , grade g
WHERE s.GradeId
=g.GradeId
AND gradename=‘大一’;
#使用子查詢的方式查詢所有XX年級學員學號,姓名及ID
SELECT studentNo 學號, studentName 姓名,GradeId 年級ID
FROM student s
WHERE gradeid IN(SELECT gradeid FROM grade)
ORDER BY gradeid ;
#使用表連線方式查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentName ,SubjectName,StudentResult
FROM student s
INNER JOIN result r
ON s.StudentNo
=r.StudentNo
INNER JOIN subject
sj
ON r.SubjectNo
=sj.SubjectNo
WHERE sj.SubjectName
LIKE ‘%Java%’
AND r.StudentResult
=60;
#使用子查詢方式查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentNo,studentName
FROM student s
WHERE s.StudentNo
IN(SELECT StudentNo FROM result r WHERE r.StudentResult
=60 AND SubjectNo
IN(SELECT SubjectNo FROM subject
sj WHERE sj.SubjectName
LIKE ‘%Java%’
));
#使用子查詢方式+表連線方式混合查詢“Java”課程至少一次考試剛好等於60分的學生姓名
SELECT studentNo,studentName
FROM student s
WHERE s.StudentNo
IN(SELECT StudentNo FROM result r
INNER JOIN subject
sj
ON r.SubjectNo
=sj.SubjectNo
WHERE r.StudentResult
=60 AND sj.SubjectName
LIKE ‘%Java%’);