数据库入门小白,工作用到的是阿里云,所以稍微整理了一下,接触的不多,所以内容比较简单,欢迎各位大佬指点补充~
常用数据类型:
阿里云 | MySQL | Oracle |
Double 双精度浮点数值 | Decimal 小数值 | Number(m,d) (M最大为38位) |
Bigint 极大整数值 | bigint 极大整数值 | \ |
String 字符串类型 | Varchar 字符串类型 | Char(n) 用于标识固定长度的字符串,当实际数据不足定义长度时,使用空格补全右边不足位 Varchar2 可变字符串类型 |
Datetime YYYY-MM-DD HH:MM:SS:ff3 (ff3为毫秒) | Datetime YYYY-MM-DD HH:MM:SS | Date 日期类型 |
阿里云常用函数:
函数名称 | 注释 | 函数名称 | 注释 |
max_pt | 获取最大分区 | cast | 转换数据类型 cast(字段名 as 数据类型) |
array | 返回结果值 array(1,2,3)返回(1,2,3) | array_contains | 检测array里是否包含'a'返回'true' or 'false' array_contains(array(a,b)a) |
coalesce | 返回第一个非空的值 coalesce(值1,值2,值3) | trim | trim(值1) 去除字段前后的空白部分 |
datediff | 计算时间差 datediff(date1,date2,datepart) datepart为日期单位(日,月) | intersect | 求两个数据集的交集 后面可加distinct去重 |
except/ minus | 求表2在表1中的补集 (即去除两表的交集以及表2不在表1的部分) | concat | 连接字符串 concat('hi','lo')返回'hilo' |
if | if表达式结果为True返回值1,否则返回值2 if(age<20,值1,值2) | dateadd | 按照指定的单位datepart和幅度delta修改date的值 dateadd(date, delta, datepart) dateadd(20210929, 10, 'dd') |
substr/ length | substr(‘hello’,length(‘hello’) -2,3) length长度减2,即3 substr从第3位开始截取3位 | floor | 向下取整 floor(1.9) = 1 floor(0.1) = 0 floor(-1.2) = -2 |