《数据库系统概论》实验报告书 安徽工业大学计算机学院
例3-5: (使用列的别名) 求学生的学号和出生年份,显示时使用别名“学号”和“出生年份”。
SELECT SNO AS\学号\出生年份\ 例3-6: (比较大小条件) 求年龄大于19岁的学生的姓名和年龄。
SELECT SNAME,SAGE FROM STUDENT WHERE SAGE>19;
例3-7: (比较大小条件) 求计算机系或信息系年龄大于18岁的学生的姓名、系和年龄。
SELECT SNAME,SDEPT,SAGE FROM STUDENT WHERE SDEPT IN('CS','IS') AND SAGE>18;
例3-8: (确定范围条件) 求年龄在19岁与22岁(含20岁和22岁)之间的学生的学号和年龄。
SELECT SNO,SAGE FROM STUDENT WHERE SAGE BETWEEN 19 AND 22;
例3-9: (确定范围条件) 求年龄不在19岁与22岁之间的学生的学号和年龄。
SELECT SNO,SAGE FROM STUDENT WHERE SAGE NOT BETWEEN 19 AND 22; 例3-10:(确定集合条件) 求在下列各系的学生信息:数学系、计算机系。
SELECT * FROM STUDENT WHERE SDEPT IN('MA','CS');
10/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
例3-11:(确定集合条件) 求不是数学系、计算机系的学生信息。
SELECT * FROM STUDENT WHERE SDEPT NOT IN('MA','CS');
例3-12:(匹配查询) 求姓名是以“李”打头的学生。
SELECT SNAME FROM STUDENT WHERE SNAME LIKE '李%'; 例3-13:(匹配查询) 求姓名中含有“志”的学生。
SELECT SNAME FROM STUDENT WHERE SNAME LIKE '%志%';
例3-14:(匹配查询) 求姓名长度至少是三个汉字且倒数第三个汉字必须是“马”的学生。
SELECT SNAME FROM STUDENT WHERE SNAME LIKE '%马__';
例3-15:(匹配查询) 求选修课程001或003,成绩在80至90之间,学号为96xxx的学生的学号、 课程号和成绩。
SELECT SNO,CNO,SCORE FROM SCORE
WHERE CNO IN ('001','003') AND SCORE BETWEEN 80 AND 90 AND SNO LIKE '96%'; 例3-16:(匹配查询) 求课程名中包含 ’_’ 字符的课程号、课程名和学时数。 SELECT CNO,CNAME,CTIME FROM COURSE WHERE CNAME LIKE '%A_%' ESCAPE'A';
11/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
例3-17:(涉及空值查询) 求缺少学习成绩的学生的学号和课程号。
SELECT SNO,CNO FROM SCORE WHERE SCORE IS NULL;
例3-18:(控制行的显示顺序) 求选修003课程或004课程的学生的学号、课程号和分数,要求按课程号升序、
分数降序的顺序显示结果。
SELECT * FROM SCORE WHERE CNO IN('003','004')
ORDER BY CNO ,SCORE DESC;
例3-19:(组函数) 求学生总人数。
SELECT COUNT(*) FROM STUDENT;
12/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
例3-20:(组函数) 求选修了课程的学生人数。
SELECT COUNT(DISTINCT SNO) FROM SCORE WHERE CNO IS NOT NULL; 例3-21:(组函数) 求计算机系学生的平均年龄。
SELECT AVG(SAGE) FROM STUDENT WHERE SDEPT='CS';
例3-22:(组函数) 求选修了课程001的最高、最低与平均成绩。 SELECT MAX(SCORE),MIN(SCORE),AVG(SCORE) FROM SCORE WHERE CNO='001';
例3-23:(分组查询) 求各门课程的平均成绩与总成绩。
SELECT AVG(SCORE),SUM(SCORE) FROM SCORE GROUP BY CNO;
例3-24:(分组查询) 求各系、各班级的人数和平均年龄。
SELECT COUNT(SNO),AVG(SAGE) FROM STUDENT GROUP BY SDEPT,SCLASS;
例3-27:(分组查询) 求学生人数不足3人的系及其相应的学生数。 SELECT SDEPT,COUNT(SNO) FROM STUDENT GROUP BY SDEPT HAVING COUNT(SNO)<3;
13/19
《数据库系统概论》实验报告书 安徽工业大学计算机学院
例3-28:(分组查询) 求各系中除01班之外的各班的学生人数。 SELECT SDEPT,SCLASS,COUNT(SNO) FROM STUDENT WHERE SCLASS!='01' GROUP BY SDEPT,SCLASS;
例3-30:(连接查询) 求选修了课程001且成绩在70分以下或成绩在90分以上的学生的姓名、课程名称和成绩。
SELECT SNAME,CNAME,SCORE FROM STUDENT,COURSE,SCORE WHERE SCORE.CNO='001' AND (SCORE>90 OR SCORE<70) AND COURSE.CNO=SCORE.CNO AND STUDENT.SNO=SCORE.SNO;
例3-31:(连接查询与表的别名) 求选修了课程的学生的学生姓名、课程号和成绩。 SELECT SNAME,CNO,SCORE FROM STUDENT,SCORE WHERE STUDENT.SNO=SCORE.SNO AND SCORE.CNO IS NOT NULL;
例3-32:(自身连接查询) 求年龄大于 ’李丽’ 的所有学生的姓名、系和年龄。
SELECT X.SNAME,X.SDEPT,X.SAGE FROM STUDENT X,STUDENT Y WHERE X.SAGE>Y.SAGE
14/19