实验四    SQL查询 

目的:

掌握数据查询操作。

内容:

使用各种查询条件完成指定的查询操作

步骤:

  1. 创建学生表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、写出实验报告;