【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 筛选条件1)
union/union all
(select 被选字段 --第二个子查询
from 库表2
where 筛选条件2 )
3 case使用
select
case 被选字段
when A then X
when B then Y
else Z end
from 库表1
where 筛选条件1 and 筛选条件2
4 判断和通配
1 where中只有!=
可以用于字符串的不等匹配
2 可以用NOT对逻辑条件进行否定
3 用like进行通配
select *
from 库表1
where 字段1 like '%d%'
-- %任意字符
-- _或者? 表示单一字符
-- []集合
-- ^否定集合
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经典50题(or another link):学生,课程成绩,教师相关的经典sql练习。
牛客sql练习 :公司雇员问题,目前共61题,部分问题相较50题难。
leetcode数据库练习:公司雇员问题,也有删除表等语句练习。