1、实验5 查询数据
一、实验目的和要求
(1)掌握select语句的基本语法;
(2)掌握子查询的表示;
(3)掌握连接查询的表示;
(4)掌握select语句的group by子句的作用和使用方法;
(5)掌握select语句的order by子句的作用和使用方法;
(6)掌握select语句的limit子句的作用和使用方法;
(7)学会在MySQL命令行窗口中使用SQL语句查询所需数据。
二、实验内容
创建用于学籍管理的学生成绩管理数据库,数据库名为XSGL,包含学生信息表student和学生成绩表score。各表的定义如表5.1和表5.2所示。
表5.1 stud
2、ent表的定义
字段名
字段描述
数据类型
主键
外键
非空
唯一
自增
id
学号
int(10)
是
否
是
是
否
name
姓名
varchar(20)
否
否
是
否
否
sex
性别
varchar(4)
否
否
否
否
否
birth
出生年份
year
否
否
否
否
否
department
院系
varchar(20)
否
否
是
否
否
address
家庭住址
varchar(50)
否
否
否
否
否
表5.2 score表的定义
字段名
字段描
3、述
数据类型
主键
外键
非空
唯一
自增
id
编号
int(10)
是
否
是
是
是
stu_id
学号
int(10)
否
否
是
否
否
c_name
课程名
varchar(20)
否
否
否
否
否
grade
分数
int(10)
否
否
否
否
否
student表和score表中记录如表5.3和表5.4所示:
表5.3 student表的记录
id
name
sex
birth
department
address
901
张老大
男
1985
计算机系
北京市海淀
4、区
902
张老二
男
1986
中文系
北京市昌平区
903
张三
女
1990
中文系
湖南省永州市
904
李四
男
1990
英语系
辽宁省阜新市
905
王五
女
1991
英语系
福建省厦门市
906
王六
男
1988
计算机系
湖南省衡阳市
表5.4 score表的记录
id
stu_id
c_name
grade
1
901
计算机
98
2
901
英语
80
3
902
计算机
65
4
902
中文
88
5
903
中文
95
6
904
计算机
5、
70
7
904
英语
92
8
905
英语
94
9
906
计算机
90
10
906
英语
85
本实验将在student表和score表上进行查询。执行的操作如下:
(1)在查询之前,先按照表5.1和表5.2的内容创建student表和score表。
(2)按照表5.3和表5.4的内容为student表和score表添加记录。
(3)查询student表的所有记录。
(4)查询student表的第2条到第4条记录。
(5)从student表查询所有学生的学号(id)、姓名(name)和院系(department)的信息。
(6)从s
6、tudent表中查询计算机系和英语系的学生的信息。
(7)从student表中查询年龄为18~22岁的学生的信息。
(8)从student表中查询每个院系有多少人。
(9)从score表中查询每个科目的最高分。
(10)查询李四的考试科目(c_name)和考试成绩(grade)。
(11)用连接查询的方式查询所有学生的信息和考试信息。
(12)计算每个学生的总成绩。
(13)计算每个考试科目的平均成绩。
(14)查询计算机成绩低于95的学生的信息。
(15)查询同时参加计算机和英语考试的学生的信息。
(16)将计算机考试成绩按从高到低进行排序。
(17)从student表和score表中查询出学生的学号,然后合并查询结果。
(18)查询姓张或者姓王的同学的姓名、院系和考试科目及成绩。
(19)查询都是湖南的同学的姓名、年龄、院系和考试科目及成绩。
三、实验步骤
本实验的执行过程如下:(略,请记录下自己完成本实验时各步骤使用的SQL命令语句及执行结果,可以直接抓图)
(1)
(2)