![54f138761a2ab50a4f083a877e00e4e6.png](https://img-blog.csdnimg.cn/img_convert/54f138761a2ab50a4f083a877e00e4e6.png)
SQL基础命令
写在前面: 对于许多人来说,SQL是数据分析的灵药,它用于访问,清理和分析存储在数据库中的数据。它非常容易上手,本教程适用于使用Excel但却没有coding经验的分析人员。
- 学完本教程,你将:掌握80%以上SQL使用方法
- 本篇学习时间:5hr
- 建议先收藏再慢慢看
本篇是过去2年半学习和工作中SQL使用的总结和整理,码字不易,大家请轻轻动下手指点个赞哦
目录
- 01篇 SQL入门
- 02篇 select语句
- 03篇 limit语句
- 04篇 where语句
- 05篇 比较函数 (>,=,<, !=)
- 06篇 逻辑函数
- LIKE
- IN
- BETWEEN
- IS NULL
- AND
- OR
- NOT
7. 07篇 ORDER BY
01篇 SQL入门
SQL数据分析教程的工作方式
SQL(结构化查询语言)是一种用于管理关系数据库中数据的编程语言。是当今访问数据库中数据的最常用方法。SQL具有多种功能,允许用户读取,操纵和更改数据。
它可以用来直接在存储位置访问大量数据,与excel相比,用SQL完成的数据分析易于审核和复制。
SQL非常适合执行excel中的一些聚合类型:求和,计数,最小值和最大值等。
什么是数据库?
来自Wikipedia:数据库是有组织的数据集合。
组织数据库的方法有很多,为不同目的设计的数据库类型也很多。一个数据库中,可以存在成千上万的表格,表格与表格间会有联系。
数据库中的表格类似于Excel的表格,但组织更加严格。例如,数据库表始终按列进行组织,并且每个列必须具有唯一的名称。下图显示了一个表格,其中包含2010年奥斯卡金像奖的数据:
![7a836a91fc07bd5b7baa7b56868482e0.png](https://img-blog.csdnimg.cn/img_convert/7a836a91fc07bd5b7baa7b56868482e0.png)
这就是表格在数据库中的存储样式。
本篇是个基础入门,下一篇开始,将正式进入coding部分~
02篇 select语句
本篇中使用到的数据文件(第一次用这个link 分享,如果打不开的话告诉我哦):
石墨文档shimo.im注:本文code中所有的’SQL_select‘指的就是 上面的表格
为方便大家看列名,以下是该表格的截图:
![60302d850e2aa39a5852cb338761bd73.png](https://img-blog.csdnimg.cn/img_convert/60302d850e2aa39a5852cb338761bd73.png)
基本语法:SELECT和FROM
任何SQL查询中都有两个必需的成分:SELECT
和FROM
-并且必须按此顺序。SELECT
指示您要查看的列,FROM
标识它们所在的表格。
SELECT year,
month,
west
FROM SQL_select
以下是输出结果:
![f3b7d0f4dc98a276f28384993d849368.png](https://img-blog.csdnimg.cn/img_convert/f3b7d0f4dc98a276f28384993d849368.png)
请注意,三个列名称在查询中用逗号分隔。当你选择多列,它们必须用逗号隔开。
如果要选择表中的每一列,可以使用*
代替列名:
SELECT *
FROM SQL_select
![f1afc3c6fb75a5fa0cd255e326eb71fc.png](https://img-blog.csdnimg.cn/img_convert/f1afc3c6fb75a5fa0cd255e326eb71fc.png)
格式
SQL中格式注意两点:
- 大小写无所谓
- SQL将一个空格,多个空格或换行符视为同一事物。例如,SQL对待上一个命令的方式与以下命令相同
SELECT * FROM tutorial.us_housing_units
本篇介绍了最基础的select from 语句,下一篇将介绍: limit语句
03篇 limit 语句
Limit 语句
为什么要使用limi 语句?
实践中,很多数据表几百万行,甚至上亿行,为防止查询花费太长时间返回,建议使用limit语句。
使用SQL LIMIT命令
SELECT *
FROM SQL_select
LIMIT 100
这样就只选择前100行的数据,大大缩短了运行时间
04篇 where语句
where 语句
where语句用于给搜索加上限制条件:
SELECT *
FROM SQL_select
WHERE month = 1
上述命令限定了只选择月份为1月的数值
05篇 比较函数 (>,=,<, !=)
筛选数据的最基本方法是使用比较函数:
- 等于=
- 不等于<>或者!=
- 大于>
- 小于<
- 大于等于>=
- 小于等于<=
数值数据的比较运算符
这些比较运算符可用于数值比较:
例如,以下命令返回10月之前的记录
SELECT *
FROM SQL_select
WHERE month > 10
非数值数据的比较运算符
比较运算符也适用于非数值数据
SELECT *
FROM SQL_select
WHERE month_name != 'January'
SQL中的算术
对于数值数据,还可使用加减乘除等运算:
SELECT year,
month,
west,
south,
west + south AS south_plus_west
FROM SQL_select
上述命令返回了每一行的south
和west
列中的总和
06篇 逻辑函数
SQL中提供了逻辑运算符来进行更多的操作
- LIKE: 用以匹配相似值,而且精确值
- IN: 用以指定要包含的值列表
- BETWEEN: 用以选择特定范围内的行
- IS NULL: 用以选择给定列中不包含任何数据的行
- AND: 用以选择同时满足两个条件的行
- OR: 用以选择满足两个条件之一的行
- NOT: 用以选择不符合特定条件的行
下面 我们一个一个来介绍
LIKE
LIKE
是SQL中的逻辑运算符,可用于匹配相似的值而不是精确的值。
运行代码返回所有June的数值
SELECT *
FROM SQL_select
WHERE month_name LIKE 'Jun%'
IN
IN
是SQL中的逻辑运算符,可指定要包含在结果中的值的列表。
SELECT *
FROM SQL_select
WHERE year IN (1968, 1969)
SELECT *
FROM SQL_select
WHERE month_name IN ('June', 'July', 'Aug')
BETWEEN
BETWEEN
用于仅选择特定范围内的行。它必须与AND
运算符配对。
SELECT *
FROM SQL_select
WHERE year BETWEEN 1965 AND 1970
BETWEEN
除了它们之间的值之外,还包括你在查询中指定的范围边界
SELECT *
FROM SQL_select
WHERE year >= 1965 AND year <= 1970
NULL
IS NULL
用于从结果中排除缺少数据的行
SELECT *
FROM SQL_select
WHERE month_name IS NULL
AND & OR
AND 用于仅选择满足两个条件的行
OR 用于选择满足任意一个条件的行
SELECT *
FROM SQL_select
WHERE year = 2012 AND month <= 10
SELECT *
FROM SQL_select
WHERE year = 2012 OR month <= 10
NOT
NOT
可以放在任何条件语句之前,以选择该语句为false的行,用以排除掉一些满足特定条件的行
SELECT *
FROM SQL_select
WHERE year = 2013
AND year_rank NOT BETWEEN 2 AND 3
07篇 ORDER BY 排序数据
order by 用于对结果进行排序, 以下命令能使返回值按照month来排序
SELECT *
FROM SQL_select
order by month
大家看完别忘了赞一个让更多人看到
另外,欢迎关注我的专栏: 煮一锅数据汤
专栏定期分享数据分析方面干货,如时间序列模型实践、机器学习模型讲解、R编程语言操作、SQL小白入门等
煮一锅数据汤zhuanlan.zhihu.com![7e0bf844b1d172bc026ab113306aee28.png](https://img-blog.csdnimg.cn/img_convert/7e0bf844b1d172bc026ab113306aee28.png)