今天带大家回顾一下在MySQL实例中写日常SQL的一些注意事项。
【SQL支持】
我们都知道,巨杉数据库支持的关系型数据库实例有MySQL,PGSQL,SparkSQL。其中,对于MySQL和PGSQL,巨杉数据库在语法是完全支持的。在集群中部署了MySQL,PGSQL实例之后,就可以像平常使用MySQL,PGSQL一样来使用巨杉数据库,非常方便。
【group by】
基本用法:group by可以根据给定数据列的每个成员对查询结果进行分组统计,最终得到一个汇总表
select字句中的列名必须为分组列或列函数.列函数对于group by字句定义的每个组返回一个结果
group by一般和聚合函数一使用才有意义,比如count,sum,avg等,使用group by 的两个要素:
(1)出现在select后面的字段,要么是聚合函数中的,要么是group by中的.
(2)要筛选结果,可以先使用where再用group by或者先用group by再用having
Group by作用是对查出来的结果集进行分组。使用group by需注意,select的字段必须是group by的字段或是使用聚合函数,否则会报错。
虽然在特殊情况下,可能不会报错,但是使用group by时,在select中查询非group by字段和聚合函数的字段,是不规范的写法,一般还是不要使用这种方式写SQL。
【索引相关】
1. 一个表在一次查询中,只会用到一个索引,若有多个条件,可以创建联合索引。使用联合索引,第一个条件可以不和第二个条件一起可以使用联合索引,反之则不行。
2. group by 的时候不使用索引
3. 使用 >= ,!=会查询多次不使用索引,会全表扫描。
4. 使用聚合函数,聚合函数上的列的索引会失效。