DELETE FROM xscj where 成绩<60
9、用TRUNCATE TABLE语句删除xsqk表中的所有信息。 TRUNCATE TABLE xsqk
14
实验五:数据查询1——简单查询
一、 实验目的
通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握基于单个表的查询。 二、 原理解析
语法格式为:
SELECT〈目标列组〉 FROM〈数据源〉
[WHERE〈元组选择条件〉]
[GROUP BY〈分列组〉[HAVING 〈组选择条件〉]]
[ORDER BY〈排序列1〉〈排序要求1〉 [,…n]](1) SELECT子句 SELECT子句用于指明查询结果集的目标列。 (2) FROM子句
FROM子句用于指明查询的数据源。 (3) WHERE子句
WHERE子句通过条件表达式描述关系中元组的选择条件。 (4) GROUP BY子句
GROUP BY子句的作用是按分组列的值对结果集分组。
(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。 三、实验内容
(1)取出生年月小于’1982-1-1’的学生名单。 select * from xsqk
where 出生年月 <'1982-1-1'
(2)检索xsqk表中的所有记录数据。 select * from xsqk
(3)查询班级为“计算机0203”的学生情况。 select * from xsqk where 班级 ='计算机0203'
(4)查询出生年月在“1981-01-01”至“1982-05-01”之间的学生情况。
15
select * from xsqk where 出生年月 between '1981-1-1' and '1982-5-1' (5)查询姓名中含有“红”字的学生情况。 select * from xsqk where 姓名 like '%红%'
(6)查询出生年月在“1981-01-01”至“1982-05-01”之间的学生情况,并以出生年月按降序排列。 select * from xsqk
where 出生年月 between '1981-1-1' and '1982-5-1' order by 出生年月 desc
(7)统计学生情况(xsqk)表中“计算机0203”的班级有多少人。 select count(学号) from xsqk where 班级='计算机0203'
(8)统计学生成绩(xscj)表中每门课程的最低分、最高分和平均分。
select 课程号,max(成绩) 最高分,min(成绩) 最低分,avg(成绩) 平均分 from xscj group by 课程号
(9)在学生成绩库中查询出生年月在“1981-01-01”至“1982-05-01”之间的男生情况,并以出生年月按降序排列。 select * from xsqk
where 出生年月 between '1981-1-1' and '1982-5-1' and 性别='男' order by 出生年月 desc
(10)统计“信息管理”专业的人数。 select count(学号) from xsqk where 专业='信息管理'
(11)统计每个学生每个学期的最低分、最高分及平均分。
select 学号,max(成绩) 最高分,min(成绩) 最低分,avg(成绩) 平均分 from xscj
group by 学号
16
实验六:数据查询(2)—连接查询
一、实验目的
通过对SELECT的使用,掌握SELECT语句的结构及其应用,掌握连接查询。
二、 原理解析
语法格式为:
SELECT〈目标列组〉 FROM〈数据源〉
[WHERE〈元组选择条件〉]
[GROUP BY〈分列组〉[HAVING 〈组选择条件〉]]
[ORDER BY〈排序列1〉〈排序要求1〉 [,…n]](1) SELECT子句 SELECT子句用于指明查询结果集的目标列。 (2) FROM子句
FROM子句用于指明查询的数据源。 (3) WHERE子句
WHERE子句通过条件表达式描述关系中元组的选择条件。 (4) GROUP BY子句
GROUP BY子句的作用是按分组列的值对结果集分组。
(5) ORDER BY子句ORDER BY子句的作用是对结果集进行排序。 三、实验内容
1.查询学号为的学生所选的全部课程的课程名和成绩
select 课程名,成绩from xscj,xskc where xscj.课程号=xskc.课程号and 学号='2020102'
2.查询没有学生选的课程号
select 课程号from xskc where 课程号not in( select distinct 课程号from xscj) --或
select 课程号from xskc where not exists(
select 课程号from xscj where xskc.课程号=xscj.课程号)
17
3.查询没有成绩的课程号,课程名
select 姓名,课程号,课程名from xscj,xskc where 成绩is null and xscj.课程号=xskc.课程号 and xscj.学号=xsqk.学号 4.查询没有选修号课程的学生姓名 select 姓名from xsqk where not exists(
select * from xscj where xscj.学号=xsqk.学号and 课程号='102') --或
select 姓名from xsqk where 学号not in( select 学号from xscj where 课程号='102' )
5.查询选修了课程并且成绩在分以上的所有学生(学号、姓名)。 select xsqk.学号,姓名from xscj,xsqk
where xscj.学号=xsqk.学号and 成绩>=80 and 课程号='101'
6.查询与“王玲玲”在同一专业学习的学生姓名。 select姓名
from xsqk where 专业=(select 专业from xsqk where 姓名='王玲玲') 7.查询选修了课程名为“计算机文化基础”的学生学号和姓名。 select xsqk.学号, 姓名 from xsqk, xskc,xscj
where xsqk.学号=xscj.学号and xskc.课程号=xscj.课程号 and 课程名='计算机文化基础'
9.查询选修了课程名为“计算机文化基础”或“数据结构”的学生学号和姓名。 select xsqk.学号,姓名,课程名from xsqk,xskc,xscj
where xsqk.学号=xscj.学号and xskc.课程号=xscj.课程号and (课程名='计算机文化基础' or 课程名='数据结构')
10.统计每个学生每个学期的最低分、最高分及平均分。
select 学号,开课学期,min(成绩) as 最低分,max(成绩)as 最高分,avg(成绩)as
平均分 from xscj,xskc
18