45道mysql数据库题目_MySQL 45道练习题
--1、?查詢Student表中的所有記錄的Sname、Ssex和Class列。
SELECT sname,ssex,class FROMstudent;--2、查詢教師所有的單位即不重復的Depart列
SELECT DISTINCT depart FROMteacher;--3、查詢Student表的所有記錄。
SELECT * FROMstudent;--4、查詢Score表中成績在60到80之間的所有記錄
SELECT * FROM score WHERE degree>=60 AND degree<=80;SELECT * FROM score WHERE degree BETWEEN 60 AND 80;--5、查詢Score表中成績為85,86或88的記錄
SELECT * FROM score WHERE degree=85 OR degree=86 OR degree=88;--6、查詢Student表中“95031”班或性別為“女”的同學記錄。
SELECT * FROM student WHERE class=95031 OR ssex='女';--7、以Class降序查詢Student表的所有記錄。
SELECT * FROM student ORDER BY class DESC;--8、以Cno升序、Degree降序查詢Score表的所有記錄。
SELECT * FROM score ORDER BY cno ASC,degree DESC;--9、查詢“95031”班的學生人數。
SELECT class,COUNT(*) FROM student GROUP BY class HAVING class='95031';--10、查詢Score表中的最高分的學生學號和課程號。(子查詢或者排序)
SELECT sno,cno FROM score WHERE degree=(SELECT MAX(degree) FROMscore);SELECT sno,cno FROM score ORDER BY degree DESC LIMIT 0,1;--11、查詢每門課的平均成績。
SELECT cno,AVG(degree) FROM score GROUP BYcno;--12、查詢Score表中至少有5名學生選修的并以3開頭的課程的平均分數。
SELECT AVG(degree) AS '平均數' FROM score WHERE cno LIKE '3%' GROUP BY cno HAVING COUNT(*)>5;--13、查詢分數大于70,小于90的Sno列。
SELECT sno FROM score WHERE degree BETWEEN 70 AND 90;--14、查詢所有學生的Sname、Cno和Degree列
SELECT sname,cno,degree FROM student JOIN score ON student.sno=score.sno;--15、查詢所有學生的Sno、Cname和Degree列。
SELECT sno,cname,degree FROM score JOIN course ON score.cno=course.cno;--16、查詢所有學生的Sname、Cname和Degree列。
SELECT sname,cname,degree FROM student JOIN score ON student.sno=score.sno JOIN course ON score.cno=course.cno;--17、?查詢“95033”班學生的平均分
SELECT class,AVG(degree) FROM student JOIN score ON student.sno=score.sno GROUP BY class HAVING class='95033';--18、查詢選修“3-105”課程的成績高于“109”號同學成績的所有同學的記錄。
SELECT * FROM student JOIN score ON student.sno=score.snoWHERE cno='3-105' AND degree>(SELECT degree FROM score WHERE sno='109' AND cno='3-105');--20、查詢score中選學多門課程的同學中分數為非最高分成績的記錄。
SELECT * FROM score WHERE
--21、查詢成績高于學號為“109”、課程號為“3-105”的成績的所有記錄。
SELECT * FROM student JOIN score ON student.sno=score.snoWHERE degree>(SELECT degree FROM score WHERE sno='109' AND cno='3-105')--22、查詢和學號為108的同學同年出生的所有學生的Sno、Sname和Sbirthday列
SELECT sno,sname,sbirthday FROM student WHERE YEAR(sbirthday) =(SELECT YEAR(sbirthday) FROM student WHERE sno='108');--23、查詢“張旭“教師任課的學生成績(姓名)。
SELECT sname,degree FROM teacher JOIN course ON teacher.tno=course.tno JOIN score ON course.cno=score.cno JOIN student ON score.sno=student.snoWHERE tname='張旭';--24、查詢考計算機導論的學生成績
SELECT sname,degree FROM teacher JOIN course ON teacher.tno=course.tno JOIN score ON course.cno=score.cno JOIN student ON score.sno=student.snoWHERE cname='計算機導論';--25、查詢李誠老師教的課程名稱
SELECT DISTINCT cname FROM teacher JOIN course ON teacher.tno=course.tno JOIN score ON course.cno=score.cno JOIN student ON score.sno=student.snoWHERE tname='李誠';--26、教高等數學的老師是哪個系的
SELECT depart FROM teacher RIGHT JOIN course ON teacher.tno=course.tno LEFT JOIN score ON course.cno=score.cno LEFT JOIN student ON score.sno=student.snoWHERE cname='高等數學';--27、查詢選修某課程的同學人數多于5人的教師姓名。
SELECT DISTINCT tname FROM teacher RIGHT JOIN course ON teacher.tno=course.tno LEFT JOIN score ON course.cno=score.cno LEFT JOIN student ON score.sno=student.snoWHERE course.cno=(SELECT cno FROM score GROUP BY cno HAVING COUNT(*)>5);--28、查詢95033班和95031班全體學生的記錄。
SELECT * FROM teacher RIGHT JOIN course ON teacher.tno=course.tno LEFT JOIN score ON course.cno=score.cno LEFT JOIN student ON score.sno=student.snoWHERE class='95031' OR class='95033';--29、 查詢存在有85分以上成績的課程Cno
SELECT DISTINCT score.cno FROM teacher RIGHT JOIN course ON teacher.tno=course.tno LEFT JOIN score ON course.cno=score.cno LEFT JOIN student ON score.sno=student.snoWHERE degree>85;--30、查詢出“計算機系“教師所教課程的成績表。
SELECT degree FROM score WHERE cno IN (SELECT cno FROM teacher JOIN course ON teacher.tno=course.tno WHERE depart='計算機系');--31、查詢選修編號為“3-105”且成績高于選修編號為“3-245”課程的同學的Cno、Sno和Degree,并按Degree從高到低次序排序。
SELECT sno,cno,degree FROM score WHERE degree>ALL(SELECT degree FROM score WHERE cno='3-245') AND cno='3-105' ORDER BY degree DESC;--32、查詢選修編號為“3-105”且成績高于選修編號為“3-245”課程的同學的 Cno、Sno和Degree.
SELECT sno,cno,degree FROM score WHERE degree>ANY(SELECT degree FROM score WHERE cno='3-245') AND cno='3-105';--33、查詢所有教師和同學的name、sex和birthday
SELECT tname AS 'name',tsex AS 'sex',tbirthday AS 'birthday' FROMteacherUNION
SELECT sname AS 'name',ssex AS 'sex',sbirthday AS 'birthday' FROMstudent;--34、查詢所有“女”教師和“女”同學的name、sex和birthday
SELECT tname AS 'name',tsex AS 'sex',tbirthday AS 'birthday' FROM teacher WHERE tsex='女'
UNION
SELECT sname AS 'name',ssex AS 'sex',sbirthday AS 'birthday' FROM student WHERE ssex='女';--35、查詢成績比該課程平均成績低的同學的成績表。
SELECT * FROM score a WHERE degree
SELECT tname,depart FROMteacher;--37、查詢所有未講課的教師的Tname和Depart
--38、查詢至少有2名男生的班號。
SELECT class FROM student WHERE ssex='男' GROUP BY class HAVING COUNT(*)>1;--39、查詢Student表中不姓“王”的同學記錄。
SELECT * FROM student WHERE sname NOT LIKE'王%';--40、查詢Student表中每個學生的姓名和年齡。
SELECT sname,YEAR(NOW())-YEAR(sbirthday) FROMstudent;--41、查詢Student表中最大和最小的Sbirthday日期值。
SELECT MAX(sbirthday),MIN(sbirthday) FROMstudent;--42、以班號和年齡從大到小的順序查詢Student表中的全部記錄。
SELECT * FROM student ORDER BY class DESC,sbirthday ASC;--43、查詢“男”教師及其所上的課程。
SELECT tname,cname FROM teacher JOIN course ON teacher.tno=course.tno WHERE tsex='男';--44、查詢最高分同學的Sno、Cno和Degree列。
SELECT sno,cno,degree FROM score WHERE degree=(SELECT MAX(degree) FROMscore);--45、查詢和“李軍”同性別的所有同學的Sname.
SELECT sname FROM student WHERE ssex=(SELECT ssex FROM student WHERE sname='李軍')AND sname <> ('李軍');--46、查詢和“李軍”同性別并同班的同學Sname.
SELECT sname FROM student WHERE ssex=(SELECT ssex FROM student WHERE sname='李軍')AND class=(SELECT class FROM student WHERE sname='李軍')AND sname <> ('李軍');--47、查詢所有選修“計算機導論”課程的“男”同學的成績表。
SELECT sname,degree FROMstudentJOIN score ON student.sno=score.snoJOIN course ON score.cno=course.cno WHERE cname='計算機導論' AND ssex='男';
總結
以上是生活随笔為你收集整理的45道mysql数据库题目_MySQL 45道练习题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 经济学原理 下载 曼昆_2021南开经济
- 下一篇: layer 同步调用_关于Layer组件