实验四 SQL查询
目的:
掌握数据查询操作。
内容:
使用各种查询条件完成指定的查询操作
步骤:
- 创建学生表student、课程表course和选课表SC,并输入数据(注意数据的完整性。);
创建用于学生管理的数据库,数据库名为XSGL,包含学生信息,课程信息和选课信息。
数据库XSGL包含下列3 个表:
(l) student:学生基本信息。
(2)course:课程信息表。
(3)sc:学生选课表。
各表的结构分别如表1、表2和表3 所示。
表1 学生信息表:student
列名 | 数据类型 | 长度 | 完整性约束 |
sno | 字符(文本)型 | 8 | 主键 |
sname | 字符(文本)型 | 4 | 不为空 |
ssex | 字符(文本)型 | 1 |
|
sage | 整数(数值)型 |
|
|
sdept | 字符型 | 10 |
|
表2 课程信息表:course
列名 | 数据类型 | 长度 | 完整性约束 |
cno | 字符(文本)型 | 2 | 主键 |
cname | 字符(文本)型 | 30 |
|
credit | 整数(数值)型 |
|
|
cpno | 字符(文本)型 | 3 |
|
表3 学生选课表:sc
列名 | 数据类型 | 长度 | 完整性约束 |
sno | 字符(文本)型 | 8 | 主属性,外键 |
cno | 字符(文本)型 | 2 | 主属性,外键 |
grade | 整数(数值)型 | 是 |
|
2) 对各表中的数据进行不同条件的查询;
包括的运算:投影、选择、比较运算符、逻辑运算符、字符匹配运算符、匹配列表范围、算术运算符、内部函数、排序、分组、分组函数使用
查询全体学生的学号和姓名
查询全体学生的详细记录
查询软件学院的学生姓名、年龄、系别
查询所有选修过课程的学生学号(不重复)
查询考试不及格的学生学号(不重复)
查询不是软件学院的学生性别、年龄、系别
查询年龄18-20岁的学生学号、姓名、系别、年龄
查询姓刘的学生情况
查询1983年以后出生的学生姓名
查询全体学生情况,查询结果按所在系升序排列,对同一系中的学生按年龄降序排列。
查询学生总人数。
查询选修了课程的学生人数。
查询选修了7号课程的学生总人数和平均成绩
查询选修6号课程学生的最好成绩
查询每个系的系名及学生人数。
查找每门课的选修人数及平均成绩
查找没有先修课的课程情况
查询每个学生及其选课情况
查询每门课的间接先修课
查询既选修了2号课程又选修了3号课程的学生姓名、学号
查询和刘晨同一年龄的学生
选修了课程名为“数据库”的学生姓名和年龄
查询选修了全部课程的学生姓名
查询计算机系学生及其性别是男的学生
查询选修课程1的学生集合和选修2号课程学生集合的差集
查询李丽同学不学的课程的课程号
查询选修了3号课程的学生平均年龄
求每门课程学生的平均成绩
统计每门课程的学生选修人数(超过3人的才统计)。要求输出课程号和选修人数,结果按人数降序排列,若人数相同,按课程号升序排列
要求:
1、将上述任务中完整的SQL语句调试并使之运行正确;
2、写出实验报告;