SQL-基本使用及部分常用关键字与函数

一,前言

数据分析基本的代码能力是对SQL的使用,下面对业务中实际用到的语法和函数进行学习及总结。

二,常用关键字与函数

SQL的书写规范:语句中出现的所有表名、字段名全部小写,系统保留字、内置函数名、SQL保留字大写(SQL本身不区分大小写,大写可能是为了增加可读性?)

SQL注释

MySQL——1,单行注释使用“#”或者“-- ”(第二种方法后有一个空格)2,多行注释使用“/* */”

Oracle——1,单行注释使用“--”2,多行注释使用使用“/* */”

SQL关键字与函数:

AS——别名关键字,用来给之前的关系取一个更直观或者“中文”的名字来表示

列的别名:

SELECT column_name AS alias_name
FROM table_name;

表的别名:

SELECT column_name(s)
FROM table_name AS alias_name;

表别名的用途是为了让SQL更短,例如:

SELECT w.name, w.url, a.count, a.date 
FROM Websites AS w, access_log AS a 
WHERE a.site_id=w.id and w.name="XX网站";

此处表别名的AS时常省去,变为

SELECT w.name, w.url, a.count, a.date 
FROM Websites  w, access_log  a 
WHERE a.site_id=w.id and w.name="XX网站";

DISTINCT——去重关键字

能够作用于单列或者多列

SELECT DISTINCT column_name,column_name
FROM table_name;

COUNT——函数返回指定条件的行的数目

SELECT COUNT(column_name) FROM table_name;

当COUNT与DISTINCT结合使用时:

SELECT COUNT(DISTINCT column_name) FROM table_name

表示对这一列不重复的行进行计数

GROUP BY——分组函数

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;

GROUP BY结合一些聚合函数对一个或多个列的结果集合进行分组

LIKE——该操作符用于在WHERE子句中,搜索列中的指定模式

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern;

LIKE配合“通配符”能够完成匹配指定的字符

通配符——“%”代替0个或多个字符;“_”替代一个字符

例子:“A%”表示以A开头的所有字符,“%AA%”表示包含“AA”的所有字符

JOIN——用来把两个或多个表根据某些相同字段,结合起来

JOIN有多种不同的利用,例如“LEFT JOIN”、“INNER JOIN”等

例如“INNER JOIN”,是最常用的JOIN方式,用来获取不同表满足条件的部分,即获得交集

SELECT column_name(s)
FROM table_name1
INNER JOIN table_name2
ON table_name1.column_name=table_name2.column_name;

其他JOIN:

LEFT JOIN:即使右表中没有,也从左表中返回所有行

RIGHT JOIN:即使左表中没有,也从右表返回所有行

FULL JOIN:只要其中一个表存在匹配,则返回行

CASE WHEN——用于分类统计

--简单CASE函数
CASE sex
    WHEN '1' THEN '男'
    WHEN '0' THEN '女'
    ELSE '其他' END
--CASE搜索函数
CASE WHEN sex = '1' THEN '男'
    WHEN sex = '0' THEN '女'
    ELSE '其他' END

这里,END后可以直接加别名,不用AS

OVER()——开窗函数,同聚合函数一样,也基于组对行进行某种函数操作,不同的是聚合函数每组返回一行,而开窗函数返回的多个行。常见用法:

ROW_NUMBER() OVER(PARTITION BY column_name ORDER BY column_name)

来组成分析函数,完成复杂报表的统计需求。(后续还需要再开一篇专门学习各种分析函数,进一步对复杂的统计表达方法进行学习)

最后,值得注意的是,SQL的语法顺序和执行顺序是不同的。

SQL的语法顺序:

SELECT——FROM——WHERE——GROUP BY——HAVING——UNION——ORDER BY

执行顺序:

FROM——WHERE——GROUP BY——HAVING——SELECT——DISTINCT——UNION——ORDER BY

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值