查询的高级操作

一、聚合

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 表名 (字段名);

你可能感兴趣的:(查询的高级操作)