MySQL之练习题5
生活随笔
收集整理的這篇文章主要介紹了
MySQL之练习题5
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
1、將所有的課程的名稱以及對(duì)應(yīng)的任課老師姓名打印出來(lái),如下:
SELECT cname,tname FROM course INNER JOIN teacher WHERE course.teacher_id=teacher.tid2、查詢學(xué)生表中男女生各有多少人? 如下:
SELECT gender,COUNT(gender) 人數(shù) FROM student GROUP BY gender
3、查詢物理成績(jī)等于100的學(xué)生的姓名?如下:
SELECT sid,sname FROM student WHERE sid in (SELECT student_id FROM score WHERE course_id=2 and num=100)4、查詢平均成績(jī)大于八十分的同學(xué)的姓名和平均成績(jī),如下:
SELECT sname,平均成績(jī) from (SELECT sid,sname from student) s INNER JOIN
(SELECT student_id,avg(num) 平均成績(jī) from score GROUP BY student_id HAVING avg(num)>80) c
WHERE sid=student_id5、查詢所有學(xué)生的學(xué)號(hào),姓名,選課數(shù),總成績(jī)
SELECT s.sid,s.sname,x.課程數(shù),x.總成績(jī) FROM (SELECT sid,sname FROM student) s INNER JOIN
(SELECT student_id,COUNT(course_id) 課程數(shù),SUM(num) 總成績(jī) from score GROUP BY student_id) x
WHERE sid=student_id6、查詢姓李老師的個(gè)數(shù)
SELECT COUNT(tid) FROM teacher WHERE tname like '李%'7、查詢沒(méi)有報(bào)李平老師課的學(xué)生姓名
SELECT DISTINCT sname FROM student WHERE sid not in (SELECT DISTINCT student_id FROM score WHERE course_id in (SELECT cid from course WHERE teacher_id=2))8、查詢物理課程比生物課程高的學(xué)生的學(xué)號(hào)
SELECT sw.student_id from (SELECT student_id,num from score WHERE course_id=2) wl INNER JOIN
( SELECT student_id,num from score WHERE course_id=1) sw
WHERE wl.num>sw.num and wl.student_id=sw.student_id9、查詢沒(méi)有同時(shí)選修物理課程和體育課程的學(xué)生姓名
SELECT sname FROM student WHERE sid in
(SELECT wl.student_id FROM (SELECT student_id,course_id from score WHERE course_id=2) wl INNER JOIN
(SELECT student_id,course_id from score WHERE course_id=3) ty
WHERE wl.student_id=ty.student_id)10、查詢掛科超過(guò)兩門(mén)(包括兩門(mén))的學(xué)生姓名和班級(jí)
SELECT sname,caption FROM class INNER JOIN
(SELECT sname,class_id from student INNER JOIN (SELECT student_id,COUNT(student_id) 掛科次數(shù) FROM score
WHERE num<60 GROUP BY student_id) gk WHERE sid=student_id and 掛科次數(shù)>=2) s
WHERE cid=class_id11 、查詢選修了所有課程的學(xué)生姓名
SELECT sname FROM student WHERE sid in (SELECT c.student_id FROM (SELECT a.student_id FROM (SELECT * from score WHERE course_id=1) a
INNER JOIN (SELECT * from score WHERE course_id=2) b
WHERE a.student_id=b.student_id) c INNER JOIN
(SELECT a.student_id FROM (SELECT * from score WHERE course_id=2) a
INNER JOIN (SELECT * from score WHERE course_id=3) b
WHERE a.student_id=b.student_id) d
WHERE c.student_id=d.student_id)12、查詢李平老師教的課程的所有成績(jī)記錄SELECT sid,sname,cname,num FROM course INNER JOIN (SELECT student.sid,sname,course_id,num FROM student INNER JOIN (SELECT * FROM score WHERE course_id in
(SELECT cid FROM course WHERE teacher_id=(SELECT tid FROM teacher WHERE tid=2))) a
WHERE student.sid=a.student_id) a WHERE cid=a.course_id13、查詢?nèi)繉W(xué)生都選修了的課程號(hào)和課程名:沒(méi)有
SELECT * from (SELECT course_id,COUNT(student_id) 報(bào)名人數(shù) FROM score GROUP BY course_id) a INNER JOIN
(SELECT COUNT(sid) 學(xué)生總數(shù) FROM student) b
WHERE 報(bào)名人數(shù)=學(xué)生總數(shù)-- 14、查詢每門(mén)課程被選修的次數(shù)
SELECT course.cname,a.aa from (select course_id,count(course_id)as aa from score GROUP BY course_id)as a
INNER JOIN course on course.cid=a.course_id-- 15、查詢之選修了一門(mén)課程的學(xué)生姓名和學(xué)號(hào)
SELECT student.sid,student.sname,a.aa from (SELECT student_id,count(student_id) as aa from score GROUP BY student_id having aa=1) as a
INNER JOIN student on student.sid=a.student_id-- 16、查詢所有學(xué)生考出的成績(jī)并按從高到低排序(成績(jī)?nèi)ブ?#xff09;
select DISTINCT(num) FROM score ORDER BY num DESC
-- 17、查詢平均成績(jī)大于85的學(xué)生姓名和平均成績(jī)
SELECT student.sname,a.aa from (SELECT student_id,avg(num) as aa from score GROUP BY student_id having aa >85) as a
INNER JOIN student on student.sid=a.student_id
-- 18、查詢生物成績(jī)不及格的學(xué)生姓名和對(duì)應(yīng)生物分?jǐn)?shù)
select student.sname,a.num from (SELECT * from score where num < 60 and course_id=
(SELECT cid FROM course where cname='生物')) as a
?INNER JOIN student on student.sid=a.student_id
-- 17、查詢平均成績(jī)大于85的學(xué)生姓名和平均成績(jī)
SELECT student.sname,a.aa from (SELECT student_id,avg(num) as aa from score GROUP BY student_id having aa >85) as a
INNER JOIN student on student.sid=a.student_id
-- 18、查詢生物成績(jī)不及格的學(xué)生姓名和對(duì)應(yīng)生物分?jǐn)?shù)
select student.sname,a.num from (SELECT * from score where num < 60 and course_id=
(SELECT cid FROM course where cname='生物')) as a
?INNER JOIN student on student.sid=a.student_id
?
轉(zhuǎn)載于:https://www.cnblogs.com/fangjie0410/p/7252469.html
總結(jié)
以上是生活随笔為你收集整理的MySQL之练习题5的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转载】linux环境下tcpdump源
- 下一篇: 一、SQL语法——4-数据库约束