- 数据函数
名称 | 描述 |
---|
CEIL() | 进一取整 |
FLOOR() | 舍一取整 |
MOD() | 取余数(取模) |
POWER() | 幂运算 |
ROUND() | 四舍五入 |
TRUNCATE() | 数学截取 |
ABS() | 取绝对值 |
PI() | 圆周率 |
RAND()和RAND(x) | 返回0~1之间随机数,X相同时返回的随机数相同 |
SIGN(x) | 返回X的符号,X为负数、0、正数时分别返回-1、0、1 |
EXP(x) | 计算e的几次方 |
- 字符串函数
函数名称 | 描述 |
---|
CHAR_LENGTH(S) | 返回字符串的字符数 |
LENGTH | 返回字符串的长度 |
CONCAT(S1,S2… | 将字符串合并为一个字符串 |
CONCAT_WS(X,S1,S2…) | 以指定分隔符连接字符串 |
UPPER(S)/UCASE(S) | 将字符串转换为大写 |
LOWER(S)/LCASE(S) | 将字符串转换为小写 |
LEFT(S,N)/RIGHT(S,N) | 返回字符串的前/后n个字符 |
LPAD(S1,LEN,S2)/RPAD(S1,LEN,S2) | 将字符串S1用S2填充到指定的LEN |
LTRIM(S)/RTRIM(S)/TRIM(S) | 去掉字符串中的空格 |
TRIM(S1 FROM S) | 去掉字符串s中开始处和结尾处的字符串s1 |
REPEAT(S,N) | 重复字符串指定次数 |
SPACE(N) | 返回N个空格 |
REPLACE(S,S1,S2) | 将字符串S中搜索S1,替换成S2 |
STRCMP(S1,S2) | 比较字符串,>=<分别返回1,0,-1 |
SUBSTRING(S,N,LEN | 截取字符串 |
REVERSE(S) | 反转字符串 |
ELT(N,S1,S2…) | 返回指定位置的字符串 |
- 日期时间函数
名称 | 描述 |
---|
CURDATE(),CURRENT_DATE() | 返回当前日期 |
CURTIME(),CURRENT_TIME() | 返回当前时间 |
NOW() | 返回当前日期和时间 |
MONTH(D) | 返回日期中月份的值 |
MONTHNAME(D) | 返回日期中月份名称,如January |
DAYNAME(D) | 返回日期是几,如Monday |
DAYOFWEEK(D) | 返回一周内的第几天,1代表星期日 |
WEEKDAY(D) | 返回日期是星期几,0代表星期一 |
WEEK(D) | 一年中的第几个星期 |
YEAR(D) | 返回年份值 |
HOUR(T) | 返回小时值 |
MINUTE(T) | 返回分钟值 |
SECOND(T) | 返回秒数 |
DATEDIFF(D1,D2) | 计算两个日期之间相隔的天数 |
- 条件判断函数
名称 | 描述 |
---|
IF(EXPR,V1,V2) | 如果表达式EXPR成立,返回结果V1;否则V2 |
IFNULL(V1,V2) | 如果V1的不为空,就显示V1的值;否则V2 |
CASE WHERE exp1 THEN v1 [WHERE exp2] THEN v2 [ELSE vn] END | CASE表示函数开始,END表示函数结束。如果表达式exp1成立时,返回v1;如果表达式exp2成立时,返回v2的值;以此类推,最后遇到ELSE时,返回vn的值 |
- 系统信息函数
名称 | 描述 |
---|
VERSION() | 返回数据库的版本号 |
CONNECTION_ID() | 返回服务器的连接数 |
DATABASE(),SCHEMA() | 返回当前数据库名 |
USER(),SYSTEM_USER() | 返回当前用户 |
CURRENT_USER(),CURENT)USER | 返回当前用户 |
CHARSET(STR) | 返回字符串STR的字符集 |
COLLATION(STR) | 返回字符串STR的校验字符集 |
LAST_INSERT_ID() | 返回最近生成的AUTO_INCREMENT的值 |
- 加密函数
名称 | 描述 |
---|
MD5(str) | 信息摘要算法 |
PASSWORD(str) | 密码算法 |
ENCODE(str,pwd_str) | 加密结果是一二进制数,必须使用BLOB类型字段保存 |
DECODE(crypt_str,pwd_str) | 对通过ENCODE加密之后的内容解密 |
- 其它常用函数
名称 | 描述 |
---|
FORMAT(x,n) | 将数字x进行格式化,将x保留到小数点后n位 |
ASCII(s) | 返回字符串s的第一个字符的ASCII码 |
BIN(x) | 返回x的二进制编码 |
HEX(x) | 返回x的十六进制编码 |
OCT(x) | 返回x的八进制编码 |
CONV(x,f1,f2) | 将x从f1进制数变成f2进制数 |
INET_ATON(IP) | 将IP地址转换成数字 |
INET_NTOA(n) | 将数字转换成IP地址 |
GET_LOCT(name,time) | 定义锁 |
RELEASE_LOCK(name) | 解锁 |
- 算数运算符
符号 | 表达式 | 作用 |
---|
+ | X1+X2… | 加法 |
- | X1-X2 | 减法 |
* | X1*X2 | 乘法 |
/ | X1/X2 | 除法 |
DIV | X1 DIV X2 | 除法 |
% | X1 % X2 | 取余 |
MOD | X1 MOD X2 | 取余 |
SELECT 1+1;
SELECT 2*4,4/2,3/8;
SELECT 3/0;
- 比较运算符
结果是“真,假”两种形式
符号 | 表达式 | 作用 |
---|
= | X1=X2 | 判断是否相等 |
<>,!= | X1<>X2,X1!=X2 | 判断是否不相等 |
<=> | X1<=>X2 | 判断是否相等,可以判断是否等于NULL |
>,>= | X1>X2,X1>=X2 | 判断是否大于等于 |
<,<= | X1<X2,X1<=X2 | 判断是否小于等于 |
IS NULL,IS NOT NULL | X1 IS NULL | 判断是否等于NULL |
BETWEEN AND,NOT BETWEEN | x1 BETWEEN m AND n | 判断是否在范围内 |
IN,NOT IN | X1 IN(值1,…) | 判断是否在某一个固定范围内 |
LIKE,NOT LIKE | X1 LIKE 表达式 | 判断是否匹配 |
REGEXP | X1 REGEXP | 判断是否正则匹配 |
- 逻辑运算符
符号 | 形式 | 作用 |
---|
&&或者AND | 与 | 并且 |
||或者OR | 或 | 或者 |
!或者NOT | 非 | 取反 |
XOR | 异或 | 不同为真 |
- 运算符的优先级
可以通过()改变优先级
优先级 | 运算符 | 优先级 | 运算符 |
---|
1 | ! | 8 | | |
2 | ~ | 9 | =,<=>,<,<=,>,>=,!=,<>,IN,IS NULL,LIKE,REGEXP |
3 | ^ | 10 | BETWEEN AND,CASE,WHERE,THEN,ELSE |
4 | *,/,% | 11 | NOT |
5 | +,- | 12 | &&,AND |
6 | >>,<< | 13 | ||,OR,XOR |
7 | & | 14 | ;= |