函数
窗口函数:
1、计算排名:窗口函数可以计算某个值在结果集中的排名,它可以根据某一列或多列进行排序,并在结果集中插入排名列。
2、计算累积值:例如,计算某一列的累积总和、计算某一列的平均值并将其显示在每一行中。
3、计算移动平均值:窗口函数可以计算某列的移动平均值,使数据更加平滑并便于分析。
4、分析时间序列数据:例如,查找某一天前的最近的N天的数据,或者查找与某一个时间点相关的数据等。
聚合函数:count、avg、max、min、sum
算数函数:ads、mod、ceil、floor、round
转换函数:coalesce,cast
日期函数:current_time、currect_date、currect_timestamp、extract、datediff、data_add
字符串函数:“||”拼接字符(函数) concat(相当于“+”运算符) length, len, lower,upper,replace,substring、lpad、rpad、
流程函数:
if(value,t,f) 三个参数:如果value为true那么返回t,否则返回f
ifnull(value1, value2) 如果value1不为空,返回value,否则返回value2
case when [val] then[res1] ...else[default] end : 如果val1为true,返回res1,...否则返回default默认值
case[expr] when [val1] then[res1] ...else [default] end :如果expr的值等于val1,返回res1, ...否则返回default默认值
约束
非空约束(not null) : 限制该字段的数据不能null
唯一约束(unique):保证该字段的数据都是唯一、不重复的
主键约束(primary key):主键是一行数据的唯一标识,要求非空且唯一
默认约束(default):保存数据时,如果未指定该字段的值,则采用默认值
检查约束(check):保证字段值满足某一个条件
外键约束(foreign key):用来让两张表的数据直接按建立连接,能保证数据的一致性和完整性
no action :当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与restrict一致)
restrict:当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除/更新。(与no action一致)
cascade:当父表中删除/更新对应记录时,首先检查该记录是否有对应外键,如果有,则也删除/更新外键在子表中的记录。
set null:当父表中删除/更改对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(这就要求该外键允许取null)。
set default:父表有变更时,子表将外键列设置成一个默认的值(innodb不支持)
集合运算
表之间的加法(union)
选取表中的公共部分:intersect
记录的减法:except
包含重复的集合运算:all
联结
内联结:inner join
外联结:outer join
交叉联结:cross join