数据分析必备基本功之SQL基本习惯

193 阅读2分钟

本文正在参加「技术专题19期 漫谈数据库技术」活动

数据分析必备基本功之SQL基本习惯

1、SQL的基本习惯

1.1 SQL语句中的关键字、对象名、表名、列名等不区分大小写

1.2 全部符号都是英文格式,经常会因为中文符号导致报错!

1.3 SQL执行一般以英文分号(;)结束

1.4 如果语句过长,养成分行清晰描述的习惯。

SQL对分行不敏感,以个人习惯为例,会把select、from、where、group by都分开,有的同事会习惯把逗号等写在前面,方便检查。

1.5 如果是多层嵌套,建议用缩进进行区分,SQL的结构更加清晰

2、SQL语言的3种分类

数据操作语言DML:

​ 处理数据库中的数据内容,包括增删改查,是数据分析最主要的使用语句

insert # 向数据库插入数据
delete # 从数据表中删除数据
update # 更新数据表数据
select # 从表中检索数据行

数据定义语言DDL:

​ 用于创建和定义数据对象,并且将对象的定义保存,主要是对数据库使用

create # 创建数据表结构
alter # 修改数据表结构
drop # 删除数据库结构
rename # 更新数据库结构名称

数据控制语言DCL:

​ 用于修改数据库结构的操作权限

crant # 授权其他用户操作数据结构
revoke # 收回其他用户的数据库结构

3、SQL的执行逻辑

SQL语句的语法顺序是:

SELECT DISTINCT ==> FROM ==> JOIN ON ==> WHERE ==> GROUP BY ==> HAVING ==> UNION ==> ORDER BY

SQL语句的执行顺序为:

FROM ==> JOIN ON ==> WHERE ==> GROUP BY ==> HAVING ==> SELECT ==> DISTINCT ==>UNION ==> ORDER BY

需要注意的是:

3.1 FROM 才是SQL语句执行的第一步。数据库在执行SQL语句的第一步是将数据从硬盘加载到数据缓冲区中,以便对这些数据进行操作。

3.2 SELECT 是在大部分语句执行了之后才执行的。严格的说是在FROM 和 GROUP BY 之后执行的。这就是不能说是在WHERE中使用在SELECT 中设定别名的字段作为判断条件的原因。

3.3 并非所有的SQL都按照上述的顺序进行,不同SQL语句略微会有一些差异。

4、SQL必会语法

基础语法

​ 选择关联:

​ select / join / left join / right join / inner join

​ 字段处理:

​ distinct / max / min / sum / count / abs

​ 筛选条件:

​ where / having / if /case when

​ 顺序排序:

​ order by /sort by

进阶语法

​ 日期处理:

​ to_date / current_date / current_timestamp / getdate / datediff

​ 字符串处理:

​ councat / substr / split / lower / replace

​ 分组排序:

​ rank() over / row_number() over / rank() over(partition by order by) / dense_rank()