最近工作上也用到了一点sql,就当是复习了,依旧看到什么写什么
1、select
CRUD之一,最常用到的功能(至少我是),目前遇到的常见情况有两种
1、直接select字段然后输出
1 | select * from file_1 where id=10086 |
最寻常的形式,没什么好说的
2、select一些字段作为一个新表,为后面的计算做准备
belike:
1 | WITH filtered AS ( |
类似这样,为了后续计算的方便,或者是为了优化性能,提前筛选表内的一些字段作为一个新表来参与后续的计算
2、left join
左连接,本质是把两个表做笛卡尔积再输出
1 | from A |
假设A表有4条数据,B表有8条,其中6条的id能与A表匹配上,最终输出的是4*6=24条数据
其中A表的数据全部包含,B表的数据只有匹配上的6条
注意 如果要加筛选条件,如果筛选A表的数据,则需要在后面添加where A.name = xxx;如果是筛选B表的数据,则是在left join的时候在on后面添加and B.name = xxx这样的语句,此时A表的所有行都在,并且只有匹配上且B.name=xxx的才会显示具体值