45道經典SQL題練習(二)
阿新 • • 發佈:2018-11-27
-- 11、查詢‘3-105’號課程的平均分。
SELECT AVG(DEGREE) AS AVG_DEGREE
FROM SCORE
WHERE CNO='3-105';
-- 12、查詢Score表中至少有5名學生選修的並以3開頭的課程的平均分數。
SELECT CNO,AVG(DEGREE)
FROM SCORE
WHERE CNO LIKE '3%'
GROUP BY CNO
HAVING COUNT(SNO)>=5;
-- 13、查詢最低分大於70,最高分小於90的Sno列。 SELECT SNO FROM SCORE WHERE DEGREE>70 AND DEGREE<90;
-- 14、查詢所有學生的Sname、Cno和Degree列。
SELECT SNAME,CNO,DEGREE FROM STUDENT,SCORE
WHERE STUDENT.SNO=SCORE.SNO;
-- 15、查詢所有學生的Sno、Cname和Degree列。
SELECT SNO,CNAME,DEGREE FROM SCORE,COURSE
WHERE SCORE.CNO=COURSE.CNO;
-- 16、查詢所有學生的Sname、Cname和Degree列。 SELECT SNAME,CNAME,DEGREE FROM STUDENT,COURSE,SCORE WHERE STUDENT.SNO=SCORE.SNO AND COURSE.CNO=SCORE.CNO;
-- 17、查詢“95033”班所選課程的平均分。
SELECT AVG(DEGREE)
FROM STUDENT,SCORE
WHERE SCLASS='95033'
AND STUDENT.SNO=SCORE.SNO;
-- 18.假設使用如下命令建立了一個grade表: -- CREATE TABLE GRADE -- (LOW INT(3), -- UPP INT(3), -- RANK CHAR(1)); -- insert into grade values(90,100,'A'); -- insert into grade values(80,89,'B'); -- insert into grade values(70,79,'C'); -- insert into grade values(60,69,'D'); -- insert into grade values(0,59,'E'); -- 現查詢所有同學的Sno、Cno和rank列。 SELECT SNO,CNO,RANK FROM SCORE,GRADE WHERE DEGREE BETWEEN LOW AND UPP;
-- 19、查詢選修“3-105”課程的成績高於“109”號同學成績的所有同學的記錄。
SELECT SNO,DEGREE FROM SCORE
WHERE CNO='3-105'
AND DEGREE>(SELECT DEGREE FROM SCORE
WHERE CNO='3-105' AND SNO=109);
-- 20、查詢score中選學一門以上課程的同學中分數為非最高分成績的記錄。
SELECT * FROM SCORE
WHERE DEGREE<(SELECT MAX(DEGREE) FROM SCORE)
GROUP BY SNO
HAVING COUNT(SNO)>1;