美文网首页
数据分析:极简SQL知识点

数据分析:极简SQL知识点

作者: theFullHorizon | 来源:发表于2020-10-30 18:36 被阅读0次

    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教程

    相关文章

      网友评论

          本文标题:数据分析:极简SQL知识点

          本文链接:https://www.haomeiwen.com/subject/lbecvktx.html