关系数据库标准语言SQL(二)单表查询

-- 计算1号课程的学生平均成绩。
SELECT AVG(grade) FROM sc WHERE cno='1';
-- 查询所有年龄在20岁(不包括20岁)以下的学生姓名及其年龄。
SELECT sname,sage FROM student WHERE sage<20;
-- 查询计算机科学系(CS)、数学系(MA)和信息系(IS)学生的姓名和性别。
SELECT sname,ssex FROM student WHERE sdept='CS'OR sdept='MA' OR sdept='IS';
-- 查询年龄不在20~23岁(包括20岁和30岁)之间的学生姓名、系别和年龄
SELECT sname,sdept,sage FROM student WHERE sage>'23' OR sage<'20';
-- 查询选修了课程的学生学号。(要求去掉重复)
SELECT DISTINCT sno FROM sc;
-- 查询计算机科学系(CS)全体学生的名单。
SELECT sname FROM student WHERE sdept='CS';
-- 查询全体学生的姓名、学号、所在系。
SELECT sname,sno,sdept FROM student;
-- 查全体学生的姓名及其出生年份.
SELECT sname AS '姓名',YEAR(NOW())-sage AS '出生年份' FROM student;
-- 查询选修了3门以上课程的学生学号。
SELECT sno FROM sc GROUP BY sno HAVING COUNT(cno)>3;
-- 查询考试成绩有不及格(小于60分)的学生的学号(要求去重复)
SELECT DISTINCT sno FROM sc WHERE grade<60;
-- 查询名字中第2个字为"阳"字的学生的姓名和学号。
SELECT sname,sno FROM student WHERE sname LIKE '_阳%';
-- 查询以"DB_"开头的课程的详细情况。
SELECT * FROM course WHERE cname LIKE 'DB\_%';
-- 查询选修了课程的学生人数。
SELECT COUNT(DISTINCT sno) FROM sc;
-- 查询学生201215121选修课程的总学分数。
SELECT SUM(ccredit) FROM course,sc WHERE sc.sno='201215121' AND sc.cno=course.cno;
-- 查询选修1号课程的学生最高分数。
SELECT MAX(grade) FROM sc WHERE cno='1'; 
-- 某些学生选修课程后没有参加考试,所以有选课记录,但没 有考试成绩。查询缺少成绩的学生的学号和相应的课程号。
SELECT sno,cno FROM sc WHERE grade IS NULL;
-- 查询以"DB_"开头,且倒数第3个字符为 i的课程的详细情况。
SELECT * FROM course WHERE cname LIKE 'DB\_%' AND cname LIKE '%i__';
-- 查询计算机系年龄在20岁以下的学生姓名。
SELECT sname FROM student WHERE sdept='CS' AND sage<20;
-- 查询姓"欧阳"且全名为三个汉字的学生的姓名。
SELECT sname FROM student WHERE sname LIKE '欧阳_';
-- 查询所有不姓刘学生的姓名、学号和性别。
SELECT sname,sno,ssex FROM student WHERE sname NOT LIKE '刘%';
-- 查询平均成绩大于等于90分的学生学号和平均成绩。
SELECT sno,AVG(grade) FROM sc GROUP BY sno HAVING AVG(grade)>=90;

你可能感兴趣的:(数据库原理与应用)