【任务4.1】 查询时选择列
【任务4,2】查询时选择行
【任务4.3】查询时结果排序
【任务4.4】查询的分组和汇总
【任务4.5】创建多表连接查询
【任务4.6】创建子查询
【任务4.7】创建多表联合查询
【任务4.8】使用Navicat 生成查询
4.1 查询时选择列
1.基本查询语句:MYSQL 从数据表中查询手的基本语句为SELECT 语句。SELECT语句的基本格式是
SELECT
{ * | <字段列表>}
【
FROM<表1>,<表2>...[WHERE<表达式>]
[GROUP BY<group by definition>]
[HAVING<expression>[{<operator><expression>}...]]
[ORDER BY<order by definition>]
[LIMIT[<offset>,]<row count>]
】
SELECT[字段1,字段2,...,字段n]
FROM[表或视图]
WHERE[查询条件];
2.检索所有列
(1)在SELECT语句中指定所有字段,根据前面的SELECT语句的格式,SELECT关键字后面的字段名为将要查找的数据,因此可以将表中所有的字段跟名称跟在SELECT语句后面。
(2)在SELECT语句中指定所有的字段。
3.检索指定列
(1)检索单个字段。
(2)检索多个字段。
4.2 查询时选择列
1.查询指定记录
数据库中包含大量的数据,根据用户需求,可能只需要查询表中的制定数据,即对数据进行过滤。
2.带IN 的关键字
IN 操作符用来指定条件范围,范围中的每个条件都可以进行匹配。
操作符 | 说明 |
= | 等于 |
<>,!= | 不等于 |
< | 小于 |
<= | 小于或等于 |
> | 大于 |
>= | 大于或等于 |
BETWEEN | 在指定的两个值之间 |
3.带 BETWEEN AND 的范围查询
该操作符需要两个参数(开始值和结束值)
4.带 LIKE 的字符匹配查询
前面介绍的所有操作符都是针对已知值进行过滤
5.查询空值
数据创建时,设计者可以指定某列中是否可以包含空值(NULL)
6.带 AND 的多条件查询
使用SELECT 语句查询时,可以增加查询的限制条件,这样会使查询的结果更加精确
7.带 OR 的多条件查询
与AND相反,在WHERE 声明中使用OR操作符,表示只需要满足一种条件的记录即可返回
8.查询不同值
9,显示前N列
4.3 查询结果排序
从表中查询出来的数据是无序的,或者其排序顺序不是用户所期待的
4.4 查询的分组与汇总
1.聚集函数
函数 | 作用 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的小值 |
SUM() | 返回某列值之和 |
2.分组查询
分组查询是对数据按照某个或多个字段进行分组,在MYSQL 中使用GROUP BY 关键字对数据进行分组,其基本语法为:
[GROUP BY 字段名][HAVING<条件表达式>]
3.SELECT 子句顺序
子句 | 说明 | 是否必须使用 |
SELECT | 要返回的列或表达式 | 是 |
FROM | 从中检索数据的表 | 仅在从表选择数据是使用 |
WHERE | 行级过滤 | 否 |
GROUP BY | 分组说明 | 仅在按组计算聚集时使用 |
WAVING | 组级过滤 | 否 |
ORDER BY | 输出排序顺序 | 否 |
4.5 创建多表连接查询
1.交叉连接查询
SELECT * FROM 表名1 CROSS JOIN 表名 2;
2.内连接查询
SELECT 查询字段 FROM 表名 1[INNER] JOIN 表名2 ON 表名1.关系字段=表名2.关系字段
3.外连接查询
(1)左连接 LEFT JOIN
SELECT 查询字段 FROM 表名1 LEFT OUTER JOIN 表名2 ON 表名1.关系字段=表名2.关系字段
(2)右连接 RIGHT JOIN
SELECT 查询字段 FROM 表名1 RIGHT OUTER JOIN 表名2 ON 表名1.关系字段=表名2.关系字段
4.复合条件查询
复合条件连接查询是在连接查询的过程中,通过添加过滤条件来限制查询的结果,使查询结果更加准确
5.为表区别名
4.6 创建子查询
1.带 IN 关键字的子查询
SELECT 查询字段 FROM 表名 WHERE 字段名[NOT]IN(SELECT语句);
2.带EXISTS关键字的子查询
SELECT 查询字段 FROM 表名 WHERE 字段名[NOT]EXISTS(SELECT语句);
3.带ANY,SOME关键字的子查询
SELECT 查询字段 FROM 表名 WHERE 字段名[ 比较运算符 ANY|SOME(SELECT语句);
4,带ALL关键字的子查询
SELECT 查询字段 FROM 表名 WHERE 字段名[ 比较运算符 ALL(SELECT语句);
4.7 创建多表联合查询
两种:(1)在一个查询中从不同的表返回结果查询
(2)对一个表执行多个查询,安一个查询返回数据
1.使用UNION
2.UNION 规则
(1)必须有两条或两条以上的语句组成,与句之间用UNION隔开
(2)每个查询必须还包含相同的列,表达式后者聚集函数
(3)必须兼容,类型不用完全一样
3.包含或取消重复的行
4.对联合查询结果排序
4.8 使用NAVICAT 生成查询
1.添加数据表
2.选择字段名
3.删除对象
4.添加表别名
5.设置表间关系
6.设置输出字段
7.设置查询结果
8.设置查询条件
9,设置排序准则
10.设置限制准则