mysql中常见查询表_MySQL中常见查询
1 --1、查詢“001”課程比“002”課程成績高的所有學生的學號;
2 SELECT a.s FROM sc a,sc b WHERE a.s=b.s AND a.c='1' AND b.c='2' AND a.score >b.score;3 --2、查詢平均成績大于60分的同學的學號和平均成績;
4 SELECT student.s,avg(score) FROM student,sc WHERE student.s=sc.s GROUP BY student.s HAVING avg(score) > 60;5 --3、查詢所有同學的學號、姓名、選課數、總成績;
6 SELECT student.s,sname,COUNT(*),SUM(score) FROM student,course,sc WHERE student.s=sc.s AND course.c=sc.c GROUP BYstudent.s;7 --4、查詢姓“李”的老師的個數;
8 SELECT COUNT(*) FROM teacher WHERE tname LIKE '李%';9 --5、檢索“004”課程分數小于60,按分數降序排列的同學學號 ;
10 SELECT student.s FROM course,student,sc WHERE course.c = sc.c AND student.s=sc.s AND course.c='4' AND score<60 ORDER BY score DESC;11 --6、查詢學過“001”并且也學過編號“002”課程的同學的學號、姓名;
12 SELECT student.s,sname FROM student,sc a,sc b WHERE a.s=b.s AND student.s=a.s AND student.s=b.s AND a.c='1' AND b.c='2';13 --7、查詢學過“葉平”老師所教的所有課的同學的學號、姓名;
14 SELECT student.s,sname FROM student,course,teacher,sc WHERE student.s=sc.s AND course.c=sc.c AND course.t=teacher.t AND tname='葉平';15 --8、查詢課程編號“002”的成績比課程編號“001”課程低的所有同學的學號、姓名;
16 SELECT student.s,student.sname FROM student,sc a,sc b WHERE student.s=a.s AND student.s=b.s AND a.s=b.s AND a.c='1' AND b.c='2' AND a.score >b.score;17 --9、查詢所有課程成績小于60分的同學的學號、姓名;
18 SELECT s,sname FROM student WHERE s NOT IN (SELECT s FROM sc WHERE score >= 60);19 --10、查詢沒有學全所有課的同學的學號、姓名;
20 SELECT s,sname FROM student WHERE (SELECT COUNT(*) FROM sc WHERE student.s=sc.s) < (SELECT COUNT(*) FROMcourse);21 --11、查詢至少有一門課與學號為“001”的同學所學相同的同學的學號和姓名;
22 SELECT s,sname FROM student WHERE s IN (SELECT DISTINCT s FROM sc WHERE c IN (SELECT c FROM sc WHERE s='1'));23 --12、查詢至少學過學號為“001”同學所有一門課的其他同學學號和姓名;
24 SELECT DISTINCT student.s,sname FROM student,sc WHERE student.s=sc.s AND sc.c IN (SELECT c FROM sc WHERE s='1') AND sc.s != '1';25 --13、把“SC”表中“葉平”老師教的課的成績都更改為此課程的平均成績;
26 UPDATE sc SET score=(SELECT e.平均成績 FROM (SELECT AVG(score) 平均成績 FROM sc GROUP BY c HAVING c IN
27 (SELECT c FROM course,teacher WHERE course.t=teacher.t AND teacher.tname='葉平'))e);28 --14、查詢和“002”號的同學學習的課程完全相同的其他同學學號和姓名;
29 SELECT DISTINCT student.s,sname FROM student,sc WHERE student.s=sc.s AND sc.c IN (SELECT c FROM sc WHERE s='2') AND sc.s != '2';30 --15、刪除學習“葉平”老師課的SC表記錄;
31 DELETE FROM sc WHERE c=(SELECT e.c FROM (SELECT DISTINCT c FROM sc WHERE c IN
32 (SELECT course.c FROM course,teacher WHERE course.t=teacher.t AND tname='葉平'))e);33 --16、向SC表中插入一些記錄,這些記錄要求符合以下條件:沒有上過編號“003”課程的同學
34 --INSERT表查詢結果可以直接將后面的查詢結果插入表中
35 INSERT sc SELECT * FROM sc WHERE NOT s IN (SELECT s FROM sc WHERE c=3);36 --17、查詢每門課程被選修的學生數
37 SELECT c,COUNT(s) FROM sc GROUP BYc;38 --18、查詢出只選修了一門課程的全部學生的學號和姓名
39 SELECT s,sname FROM student WHERE s IN (SELECT s FROM sc GROUP BY s HAVING COUNT(c)=1);40 --19、查詢男生、女生人數
41 SELECT COUNT(*) FROM student WHERE ssex='男';42 SELECT COUNT(*) FROM student WHERE ssex='女';43 --20、查詢姓“張”的學生名單
44 SELECT * FROM student WHERE sname LIKE '張%';45 --21、查詢同名同性學生名單,并統計同名人數
46 SELECT *,COUNT(sname) FROM student GROUP BY sname HAVING COUNT(sname) > 1;47 --22、1981年出生的學生名單(注:Student表中Sage列的類型是datetime)
48 SELECT s,sname FROM student WHERE DATE_FORMAT(saged,'%Y')='1981';49 --23、查詢每門課程的平均成績,結果按平均成績升序排列,平均成績相同時,按課程號降序排列
50 SELECT c,AVG(score) FROM sc GROUP BY c ORDER BY AVG(score) ASC,c DESC;51 --24、查詢平均成績大于85的所有學生的學號、姓名和平均成績
52 SELECT student.s,sname,AVG(score) FROM sc,student WHERE student.s = sc.s GROUP BY student.s HAVING AVG(score) > 85;53 SELECT student.s,student.sname ,e.平均成績 FROM student,(SELECT s,AVG(score) 平均成績 FROM sc GROUP BY s HAVING AVG(score)>85) e WHERE student.s=e.s;54 --25、查詢課程名稱為“數據庫”,且分數低于60的學生姓名和分數
55 SELECT sname,score FROM student,course,sc WHERE student.s=sc.s AND course.c=sc.c AND cname='數據庫' AND score < 60;56 SELECT student.s ,student.sname ,e.score FROM student,(SELECT s,score FROM sc WHERE c IN (SELECT c FROM course WHERE cname='數據庫')AND score<60) e WHERE student.s=e.s;57 --26、查詢所有學生的選課情況;
58 SELECT student.s,sname,course.c,cname FROM student,sc,course WHERE course.c=sc.c AND student.s=sc.s;59 --27、查詢任何一門課程成績在70分以上的姓名、課程名稱和分數;
60 SELECT sname,cname,score FROM student,course,sc WHERE student.s=sc.s AND course.c=sc.c AND score>70;61 --28、查詢不及格的課程,并按課程號從大到小排列
62 SELECT s,score,cname FROM course,sc WHERE course.c=sc.c AND score < 60 GROUP BY course.c ORDER BY course.c DESC;63 --29、查詢課程編號為003且課程成績在80分以上的學生的學號和姓名
64 SELECT student.s,sname FROM student,sc WHERE student.s=sc.s AND c=3 AND score>80;65 --30、求選了課程的學生人數
66 SELECT COUNT(DISTINCT s) FROMsc;67 --32、查詢各個課程及相應的選修人數
68 SELECT course.c,cname,COUNT(DISTINCT s) FROM sc,course WHERE sc.c=course.c GROUP BYcourse.c;69 --33、查詢不同課程成績相同的學生的學號、課程號、學生成績
70 SELECT student.s,course.c,score FROM student,sc,course WHERE student.s=sc.s AND course.c=sc.c71 --34、檢索至少選修兩門課程的學生學號
72 SELECT DISTINCT s FROM sc GROUP BY c HAVING COUNT(DISTINCTc);73 --35、查詢全部學生都選修的課程的課程號和課程名
74 SELECT c,cname FROM course WHERE c IN(SELECT c FROM sc GROUP BYc);75 --36、查詢沒學過“葉平”老師講授的任一門課程的學生姓名
76 SELECT sname FROM student WHERE s NOT IN(SELECT s FROM sc,course,teacher WHERE sc.c=course.c AND course.t=teacher.t AND teacher.tname='葉平');77 --37、查詢兩門以上不及格課程的同學的學號及其平均成績
78 SELECT s,AVG(IFNULL(score,0)) FROM sc WHERE s IN (SELECT s FROM sc WHERE score<60 GROUP BY s HAVING COUNT(s)>=2 ) GROUP BYs;79 --38、刪除“002”同學的“001”課程的成績
80 DELETE FROM sc WHERE s=2 AND c=1;
總結
以上是生活随笔為你收集整理的mysql中常见查询表_MySQL中常见查询的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 旺相休囚死什么意思 旺相休囚死的解释
- 下一篇: kim的中文意思 kim的中文是什么意思