数据分析:极简SQL知识点

2020-10-30  本文已影响0人  theFullHorizon

SQL中包含的知识点很多,不同职业可能使用的知识侧重点不同,比如数据挖掘,数据开发,ETL等因为需要构建和维护数据库,对于数据库的创建,插入和更新的操作比较多,但对于偏向于业务的数据分析师或者商业分析师来讲,查询是我们使用到SQL中最常用的操作。

SQL知识点有很多,但是二八法则告诉我们,你只用聚焦于那核心的20%的知识点就可以应对业务场景中80%的需求。本文重点归纳SQL操作中常用的20%知识点。

核心构成

对数据库和表进行操作

创建数据库

  create database database_name

创建表

  create table table_name (
    column_name data_type [constrains],
  )

删除表或者数据库

  drop [table|datebase] name

添加,删除,更新表中的列或者index

  alert table table_name
  [add | drop | alert ] [column | index] column_name

对表中的记录进行操作

向表格中插入一条语句

  insert into table_name values(x,x)

更新表中的记录

  update table_name set column_name = x where condition

删除某一行记录

  delete from table_name where condition

查询操作

select 子句:语法 select column 。选择用于输出的列。
from子句:语法 from table 。从指定的表中选择。

select * from table 

where 子句:语法 where condition 。用于行级过滤。

select * from table where column>2ß

order by 子句:语法 order by [ASC|DESC] 。按照升序或者降序对查询结果集进行排序,默认升序。

select * from table order by desc

having 子句:语法having condition。对分组的数据进行筛选,往往配合着group by字句一起

select * from table order by desc

子句的一般顺序:select from where group by having limit ,这里除了select , from 是必须的,其他都是可选的,这要看实际的业务场景。

注意:SQL 不区分大小写

基础关键字

like: 用于where字句中的模糊匹配。

# 如查询姓名字段中以张开头的名字
where name like '张%'

As: 用于给字段,表等起一个别名,方便简化
NULL: 不包含值,多与is配合使用
Limit: 用于从结果集的基础上选择N条数据

基本用法:limit 2:选举两条记录输出

select * from table limit 2

高级用法 limit 2,1:从第2条数据之后,输出一条记录

select * from table limit 2,1

注:有些数据库支持Top关键字

Distinct : 去除重复数据
基本用法:

select distinct column from table

逻辑操作符

操作符 and or in not
例子 A and B A and B A in (,) A not in (,)
说明 同时满足AB AB有一个满足 判断A是在结果集中 判断A是不在结果集中

算术操作符

= 等于 <> 不等于 !=不等于
<=小(等)于 >=大(等)于 between and 两者之间
单元格 单元格 表头

聚合函数

sum求和 avg 求平均 count 计算个数
max求最大值 min 求最小值 你想让这里放置哪个函数呢

事例:

select sum(column) from table

注:当聚合函数和普通列同时出现在select后面时,普通列必须在group by字句中指定。

extract 函数:主要用于提取时间戳中的单独部分如年,月等。如下orderData列对应的值是2020-12-12 16:25:46.635,则使用函数后的值为2020.

select extract(year from orderData) as order_year,
from table
where condition

高阶

case when

主要包括case函数和case搜索函数

# case函数
case gender
  when 'm' THEN '男'
  when 'f' THEN '女'
  else '其他' 
end
# case搜索函数
case
  when gender = 'm' then '男' 
  when gender = 'f' then '女' 
  else '其他' 
end  

子查询

子查询返回的结果用于另一条 select 语句的 where 子句。

select customer_id
from table01
where order_num in (
    select order_num
    from table02
    where prod_id = 'kk');

连接查询

连接类型 说明
内连接 join A join B 返回AB的交集
左连接 left join A left join B 返回 A+AB的交集
右连接 right join A right join B 返回 B+AB的交集
右连接 full join A full join B 返回 AB的全集

注:并不是所有的数据库都支持四种连接,但大部分都会支持内连接和左连接。

SQL查询所涉及的知识点虽然简单,但是要完全掌握还需要大量的练习。以上就是主要内容了。关于本文如果有什么疑问,欢迎回复交流。

在线练习推荐

相关参考
知识点、SQL语句学习及详细总结
SQL教程

上一篇下一篇

猜你喜欢

热点阅读