1.查詢李老師的個數
SELECT *
FROM teachers
WHERE tname LIKE '李%';
2.查詢Student表中的所有記錄的Sname,ssex,和class列
SELECT sname,ssex,class
FROM students;
3.查詢教師所有的單位即不重復的Depart列
SELECT DISTINCT depart
FROM teachers;
4.查詢Student表的所有記錄
SELECT *
FROM students;
5.查詢Score表中成績在60到80之間的所有記錄
SELECT *
FROM scores
WHERE degree BETWEEN 60 AND 80;
6.查詢Score表成績為85,86或88的記錄
SELECT *
FROM scores
WHERE degree IN ('85','86','88');
7.查詢Student表中‘95031’班或性別為女的同學記錄
SELECT *
FROM students
WHERE class = '95031' OR ssex = '1';
8.以class降序查詢student表的所有記錄
SELECT *
FROM students
ORDER BY class;
9.以cno升序,degree降序查詢score表的所有記錄
SELECT *
FROM scores
ORDER BY cno ASC , degree DESC;
10.查詢95031班的學生人數
SELECT COUNT(*)
FROM students
WHERE class=95031;
11.統計出所有學生的總成績
SELECT SUM(degree)
FROM scores;
12.統計出所有學生的平均成績
SELECT AVG(degree)
FROM scores;
13.統計出所有學生的最低成績
SELECT MIN(degree)
FROM scores;
14.統計每個學生的總成績
SELECT sno,SUM(degree)
FROM scores
GROUP BY sno;
15.統計每門課及格的學生數
SELECT cno,COUNT(*)
FROM scores
WHERE degree>=60
GROUP BY cno;
16.統計每門課程都及格的學生編號
SELECT sno,cno,degree
FROM scores
GROUP BY sno
HAVING MIN(degree)>=60;
17.統計每門課的最低成績;
SELECT cno,MIN(degree)
FROM scores
GROUP BY cno;
18.查詢出名字叫周梅每門課的成績;
SELECT sc.`degree`
FROM students st JOIN scores sc
ON st.`sno`=sc.`sno`
WHERE st.`sname`='皮皮蝦'
GROUP BY sc.`cno`;
19.查詢出每個老師教的學生人數
SELECT COUNT(*),te.tname
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
GROUP BY te.`tno`
HAVING COUNT(*);
20.查詢選修某課程的同學人數多于5人的教師姓名;
SELECT te.`tname`,COUNT(*)
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
GROUP BY sc.`cno`
HAVING COUNT(*)>=5;
21.查詢出選課人數不低于2人的課程和老師姓名;
SELECT sc.`cno`,te.`tname`
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
GROUP BY sc.`cno`
HAVING COUNT(*)>=2;
22.查詢出每個老師教的學生人數
SELECT te.tname,COUNT(*)
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
GROUP BY te.`tno`
HAVING COUNT(*);
23.查詢出每個老師教的課程的平均成績
SELECT AVG(sc.degree)
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
GROUP BY te.`tname`
24.查詢出李四老師教的課程的平均成績
SELECT te.tname,sc.cno,AVG(sc.degree)
FROM (teachers te JOIN courses co ON te.`tno`=co.`tno`)JOIN scores sc ON sc.`cno`=co.`cno`
WHERE te.tname='李四';
查詢各個課程號與相應的選課人數
SELECT co.cno,COUNT(*)
FROM course co JOIN studentCourse st ON co.cno=st.cno
GROUP BY co.cno
HAVING COUNT(*);
找出沒有選擇c2課程的學生信息
SELECT st.*
FROM (studentCourse sc JOIN student st ON sc.sno=st.sno)JOIN course co ON co.cno=sc.cno
WHERE co.cname NOT IN 'c2';
查詢所有課程均及格的學生學號及姓名
SELECT st.sno,st.sname
FROM (studentCourse sc JOIN student st ON sc.sno=st.sno)JOIN course co ON co.cno=sc.cno
GROUP BY co.cname
HAVING MIN(grade)<60;
查詢平均分不及格的課程號和平均成績
SELECT co.cno,AVG(sc.grade)
FROM course co JOIN studentCourse st ON co.cno=st.cno
GROUP BY co.cname
HAVING AVG(sc.grade)>=60;
找出各門課程的平均成績,輸出課程名和平均成績
SELECT co.cname,AVG(sc.grade)
FROM course co JOIN studentCourse st ON co.cno=st.cno
GROUP BY co.cname
查詢最低分的同學的sno,cno和degree
--1.首先查詢出最低成績
SELECT MIN(degree)
FROM scores;
--2.其次在把最低條件按照條件去嵌套查詢
SELECT *
FROM scores
WHERE degree IN(SELECT MIN(degree)
FROM scores);
查詢和李軍同性別的的所有同學的姓名
--1.首先查詢出李軍的性別是?
SELECT ssex
FROM students
WHERE sname='李軍';
--2.其次在把李軍的性別作為where條件去查詢(嵌套);
SELECT sname
FROM students
WHERE ssex IN(SELECT ssex
FROM students
WHERE sname='李軍');
查詢和李軍同性別并且同班的姓名
--1.首先查詢出李軍的性別是?
SELECT ssex
FROM students
WHERE sname='李軍';
--2,其次查詢出李軍所在的班級
SELECT class
FROM students
WHERE sname='李軍';
--3.最后把李軍的性別跟班級作為條件去查詢
SELECT sname
FROM students
WHERE ssex IN(SELECT ssex
FROM students
WHERE sname='李軍')AND class IN(SELECT class
FROM students
WHERE sname='李軍');
查詢男教師及所上的課程
--1.在老師表格中查詢男老師的tno
SELECT tno
FROM teachers
WHERE tsex='男';
--2.把查詢出男老師的tno作為條件在課程表中查詢出課程名
SELECT cname
FROM courses
WHERE tno IN(SELECT tno
FROM teachers
WHERE tsex='男');
查詢student表中不性王的同學記錄
SELECT *
FROM students
WHERE sname NOT LIKE '王%';
測試流程.png