自连接
select a.label as parent_label,b.label as child_label from menu as a,menu as b where a.id=b.parent
把表当成a,b,表,其实都是自己
select * from 表1,表2; //交叉连接 select * from 表1 cross join 表2;
键个数相加,条数相乘组合新表
date_format(now(),"%W %D %M %Y %r"); time_format(时间,"%h %i %p"); inet_aton();#ip地址转化为数字 inet_ntoa();#数字转ip cast("99" as signed); convert("23",signed); convert("aa" using utf8);#还可以转换字符集
if(条件,true,false); if 条件 then else end if; ifnull(1,2) ##1为空就返回2 nullif(1,1) ##两个相同返回null case when 条件 then 值 else 值 end case ##可以限制条件,像switch
password(str) 密码加密(不可逆)
encrypt(串,钥匙) 不可逆
str = encode(串,钥匙) decode(str,钥匙)
ase_encrypt(串,钥匙) 加密
ase_decrypt(str,钥匙) 解密
MD5() SHA()
NOW() 取现在的时间
current_time() 只取时间
current_date() 只取日期
year(time) 取字符串年份
month(time) 取字符串的月份
monthname(time) 取月份的名称
length() 长度
lcase() 取小写
ucase() 取大写
strcmp() 对比字符串0相等1左边大
position(c1 in c2) 位置
replace() 替换
insert() 插入或替换
数学函数 - 1
ABS 取绝对值
CEILING 比它大的整数
FLOOR 比它小的整数
GREATEST 最大值为
LEAST 最小值为
MOD 除余
PI 返回π
RAND 随机0-1
ROUND 四舍五入
DATE 4个字节 年月日
TIME 4字节 小时 分钟 秒
YEAR 年
DATETIME 两个结合
TIMESTAMP 时间戳
DATETIME(2) 往下再精确两位
CHAR 定长的字符串
VARCHAR 变长的字符串
TEXT
BLOB 二进制
TINYTEXT
LONGBLOB
ENUM 枚举 规定只能是那些数据
SET 多值枚举,用,隔开,可以选择多个值
加上BINARY为存储方式为二进制,则区分大小写