查询的高级操作
2019-04-25 本文已影响0人
有趣的恶魔QAQ
一、聚合
1.max()、min()、sum()、avg()、count() — 对字段进行操作(一般针对数字类型,聚合运算的结果才是整个运算的结果)
语法:select 聚合函数(字段) from 表名 where 条件语句;
例如:
-
select max(字段) from 表名;
— 获取最大值 -
select min(字段) from 表名;
— 获取最小值 -
select sum(字段) from 表名;
— 求和 -
select avg(字段) from 表名;
— 求平均值 -
select count(字段) from 表名 where 条件语句;
— 统计满足条件的个数
注意:如果参与运算的对象的值为null,那么这个数据不会参与运算
二、分组
将指定表中满足条件的记录按字段2进行分组,然后每个分组作为整体按照字段操作进行聚合操作
语法:
select 字段操作 from 表名 where 条件语句 group by(字段2);
注意:字段操作的位置除了分组字段不用聚合,其他字段都必须聚合
三、子查询和连接查询
- 子查询:将一个查询的结果作为另外一个查询的数据源
注意:子查询最好将查询结果重命名,即存到一个临时表中 - 连接查询:同时查询多个表中的数据
1.连接查询
语法:
select 字段1,字段2... from 表1,表2... where 连接条件;
注意:连表查询的时候如果不加连接条件,那么查询结果为笛卡尔积;如果连接查询的时候既有连接条件也有筛选条件,那么筛选条件要放在连接条件后面;连接查询的关键是找到共同关系
2.连接查询中的内连接
语法:
select 字段1,字段2,字段3 from 字段3所对应的表3
inner join 字段1对应的表1 on 表1的连接条件
inner join 字段2对应的表2 on 表2的连接条件
注意:内连接中,字段和表之间应一一对应
3.外连接
外连接分为左外连接、右外连接和全连接,但是在MySQL中只支持左外连接和右外连接
语法:
select 字段1,字段2 form 表1 left/right/ join 表2 on 条件语句
四、字段索引
字段的索引就相当于目录,作用是为了能够快速的对这个字段进行查找
- 优点:可以大大的提高查找的效率
- 缺点:1.消耗额外的存储空间。 2.添加和删除的效率降低
- 语法:
create index 索引名 on 表名 (字段名);