作为数据从业者,大家用的最多的应该就是SQL语言了,那么除了日常的select,你还了解哪些SQL相关的概念呢?今天就按照字母表的顺序(A-Z)来给大家简单介绍一下数据人必须知道的SQL概念大全。
A:Alias
别名,包含表的别名和列的别名。在哪些场景下我们需要用到别名呢?通常是多表join的时候表名过长,多次引用书写比较麻烦的时候我们会给表起一个别名;另外就是表join的时候,如果多个表中有重复的列名而且我们都需要提取出来的时候也需要别名;再则就是列级的别名,通常我们是给表中的列取一个“有意义” 的名字的联合as一起使用。例子如下:
select st.id as st_id,sc.id as sc_id --列级别名
from student st --表级别名
left join
score sc --表级别名
on st.id=st.id
B:Begin Transaction
开始事务操作,SQL里面的事务是是一个操作序列,也就是一次执行的最小单位。一次执行,同一个事务里面的操作要么全部执行要么全部不执行,不存在部分执行部分未执行的可能。依赖事务,我们在数据库里面的部分误操作才有机会被回滚(恢复到本次事务执行之前的状态)。如:
begin transaction
update orders set status = 'sent' where order_id = '12345'
update orders set status = 'sent' where order_id = '54321'
commit transaction
C:CTEs(Common Table Expressions)
通用表达式,说人话就是我们通常用使用的WITH语句。如果我们需要join的表比较多,用到的列也比较多,而且同一个表会被join多次的时候通常会在SQL语句的开头使用WITH语句把需要参与join的表先用with形成一个临时结果集,然后在后面的SQL语句找那个直接引用WITH后的临时表即可。如:
; -- start the CTE with a semicolon to terminate anything above
with sent as
-- here is where you name the dataset
(select emailaddress, emailid, senddate from marketing.emailsent where senddate bet