【分析小白】sql学习总结

【sql】基本语法

2020-05-30

1 基本语法以及执行顺序

(8) SELECT (9)DISTINCT<select_list> --选出需要的列
(1) FROM <left_table> --数据源表
(3) <join_type> JOIN <right_table> --需要连接的表
(2)         ON <join_condition>  --连接条件
(4) WHERE <where_condition>  --筛选条件
(5) GROUP BY <group_by_list>  --聚合字段
(6) WITH {CUBE|ROLLUP}  --聚合方式
(7) HAVING <having_condition>  --聚合中的条件
(10) ORDER BY <order_by_list><DESC/ASC>  --排序方式
(11) LIMIT <limit_number>  --展示条数

每一个执行过程都是创建一个虚拟表的过程

2 join、union使用

join是sql中非常强大的一个功能,一般常用的有四种join方式,如果不写join方式就默认是左连接。

select 被选字段
from 库表1 t1  [] join 库表2 t2 on t1.连接字段1 = t2.连接字段2
where 筛选条件1 and 筛选条件2 

union和union all是把多个子查询拼接起来的方法,union会去重,union all 不去重。

select 被选字段 --第一个子查询
from 库表1 
where 筛选条件1union/union allselect 被选字段 --第二个子查询
from 库表2 
where 筛选条件2

join和union all使用说明

3 case使用

select 
  case 被选字段 
  when A then X
  when B then Y 
  else Z end
from 库表1
where 筛选条件1 and 筛选条件2 

case 使用说明

4 判断和通配

1 where中只有!=可以用于字符串的不等匹配
2 可以用NOT对逻辑条件进行否定
3 用like进行通配

select *
from 库表1 
where 字段1 like '%d%'
--  %任意字符
--  _或者? 表示单一字符
-- 	[]集合
-- ^否定集合

like 使用说明

5 字段选择,计算字段

1 * 表示选取所有,Trim(‘abc’)
2 字符链接|| 或者+ 或者 concat函数
3 函数
去重空格: RTRIM(),LTRIM()
选取:MID() or SUBSTR() or SUBDTRING(),LEFT(),RIGHT()
数据类型转换:CAST(),CONVERT()
现在时间:NOW()不同DBMS不一样
大小写转换:LOWER(),UPPER()
字符串长度:LENGTH()
4 时间处理
to_date(‘01-02-2020’)
to_number(to_char(order_date,‘YYYY’))
YEAR(order_date)
5 三角函数
abs()/cos()/exp()/pi()/sin()/sqrt()/tan()

6 聚合函数

avg(),sum()对于null会忽略
count(*)会统计所有行,count(字段会只统计非null)
max(),min()在处理文字的时候选最后一行或者第一行非null

avg(distinct 字段) as 字段


2020-05-30

【为什么学sql】

因为sql是一个标准的数据库语言,通用性好。

2019-9-7

【学习入门资源介绍】

1 sql基本语法
sqlzoo:基本入门语法。不用装sql环境,可以编写sql语法,并在网页上测试代码,有助于理解sql入门语句。
知识点:select,join,group by等

w3school:sql语法文档,有参考用例。

sql执行的先后顺序

【sql练习资源】

sql经典50题(or another link):学生,课程成绩,教师相关的经典sql练习。

牛客sql练习 :公司雇员问题,目前共61题,部分问题相较50题难。

leetcode数据库练习:公司雇员问题,也有删除表等语句练习。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值