数据库sql题库.pptx
文本预览下载声明
4.2.4 数据查询
SQL语言中最主要、最核心的部分是查询功能。
查询语言用来对已经存在于数据库中的数据按照特定的组合、条件表达式或者一定次序进行检索。其基本格式如下:
SELECT 列名表
FROM 表或查询名
WHERE 查询限定条件
注意:在SQL语言中,SELECT子句既可以进行查询,也可以进行数据的插入;创建视图也离不开查询语句。
因此,查询语句在SQL中占据着至关重要的位置。
完整的SELECT语句的用法如下:
SELECT 列名表
[INTO 新表名]
FROM 表或视图名
[WHERE 查询限定条件]
[GROUP BY 分组表达式]
[HAVING 分组条件]
[ORDER BY 次序表达式 [ASC|DESC]]
其中,带有[]的子句是可选子句,大写单词表示SQL关键字:小写单词表示表或视图名称或给定条件。
4.2.4 数据查询-投影查询
1、投影查询:用SELECT语句可以选择查询表中的任意列
例如:查询student表中所有记录的sname、ssex和class列
SELECT sname,ssex,class
FROM student
4.2.4 数据查询-投影查询
为了改变查询结果中的显示标题,可在列名后使用“AS标题名”,在显示时则以该标题名来显示。
例如:查询student表的所有记录
SELECT sno AS 学号, sname AS 姓名,ssex AS 性别, class AS 班级
FROM student
4.2.4 数据查询-选择查询
选择查询就是指定查询条件,以从表中或视图中提取或显示符合查询条件的记录。
可以使用WHERE子句来实现。WHERE子句的查询条件是一个逻辑表达式,它是由多个关系表达式通过逻辑运算符(AND、OR、NOT)连接而成的。
4.2.4 数据查询-选择查询
例如:查询score表中成绩在60-80之间的所有记录。
SELECT *
FROM score
WHERE degree BETWEEN 60 and 80
4.2.4 数据查询-选择查询
例如:查询score表中成绩为85、86或88的记录
SELECT *
FROM score
WHERE degree IN(85,86,88)
4.2.4 数据查询-选择查询
例如:查询student表中“95031”班或性别为“女”的学生记录
SELECT *
FROM student
WHERE class=95031 OR ssex=“女”
4.2.4 数据查询-排序查询
通过在SELECT命令中加入ORDER BY子句来控制选择行的显示顺序。既可以按升序排列各行,也可以按降序排列,还可以按多个列来排序。
例如:以class降序显示student表的所有记录
SELECT *
FROM student
ORDER BY class DESC
例如:以cno升序、degree降序显示score表中的所有记录
SELECT *
FROM score
ORDER BY cno ASC, degree DESC
4.2.4 数据查询-使用聚合函数
聚合函数用于实现数据统计等功能,常用的聚合函数为:
AVG:计算一个数值型列的平均值
COUNT:计算指定列中选择的项数
COUNT(*)统计查询输出的行数
MIN:计算指定列中的最小值
MAX:计算指定列中的最大值
SUM:计算指定列中的数值总和
STDEV:计算统计标准偏差
VAR:统计方差
通常一个聚合函数的范围是满足WHERE子句指定的条件的所有记录。
加上GROUP BY子句后,SQL命令把查询结果按指定列分成集合组。
当一个聚合函数和一个GROUP BY子句一起使用时,聚合函数的范围变成为每组的所有记录。即一个结果是由组成一组的每个记录集合产生的。
使用HAVING子句可以对这些组进一步加以控制。用这一子句定义这些组所必须满足的条件,以便将其包含在结果中。
4.2.4 数据查询-使用聚合函数
例如:查询编号:“3-105”的课程的平均分
SELECT AVG(degree) AS 课程平均分
FROM score
WHERE cno=“3-105”
查询score表中的最高分
SELECT MAX(degree) AS 最高分
FROM score
当WHERE子句,GROUP BY子句和HAVING子句同时出现在一个查询语句中时,SQL的执行顺序如下:
执行WHERE子句,从表中选取行
由GROUP BY对选取的行进行分组
执行聚合函数
执行HAVING子句选取满足条件的分组
例如:查询score表中至少有5名学生选修的并以3开头的课程号的平均分
SELECT cno,AVG(degree) AS 平均分
FROM score
W
显示全部