目录
函数与操作符
一、类型转换
隐式转换:
显式转换:
二、流程控制
IF
IFNULL
三、字符串函数
四、日期时间函数
五、加密和压缩功能
六、其它函数功能
函数与操作符
一、类型转换
隐式转换:
当运算符与不同类型的操作数一起使用时,会发生类型转换以使操作数兼容。某些转换是隐式发生的。例如,MySQL会根据需要自动将数字转换为字符串,反之亦然。
SELECT 1+'1'; //2
SELECT '2'+'1'; //3
SELECT '2a'+1; //3
SELECT '2a'+'4b'; //6
SELECT '2a'+'b'; //2
SELECT 3>'2a'; //1
SELECT 1>'2a'; //0
显式转换:
利用MySQL中两个函数其中之一,可以将expr转换到指定类型type。
CAST(expr AS type)
CONVERT(expr,type)
SELECT 38.8, CAST(38.8 AS CHAR);
- > 38.8,'38 .8'
SELECT 38.8, CONCAT(38.8);
- > 38.8,'38 .8'
二、流程控制
IF
语法格式:IF(expr1,expr2,expr3),如果expr1是TRUE (expr1 <> 0和expr1 <> NULL),则IF() 返回expr2。否则,它返回expr3。

IFNULL
语法格式:IFNULL(expr1,expr2),如果expr1不是 NULL,则 IFNULL()返回 expr1; 否则它会返回 expr2。

三、字符串函数
MySQL字符串函数
函数名 |
说明 |
demo |
---|
ASCII(str) |
返回字符串最左侧字符的代码 |
SELECT ASCII('a'); //97 |
ORD(str) |
返回字符串最左侧字符的代码 |
SELECT ORD('a'); //97 |
CHAR(N) |
返回数字N对应的字符 |
SELECT CHAR(97); //'a' |
BIN(N) |
返回二进制值的字符串表示形式 N |
SELECT BIN(10); //'1010' |
HEX(str/N) |
返回十进制或字符串值的十六进制表示形式 |
SELECT HEX('abc'); //616263
SELECT HEX(123); //7B
|
UNHEX(str) |
返回包含数字十六进制表示的字符串 |
SELECT UNHEX('123'); //# |
OCT(N) |
返回包含数字的八进制表示的字符串 |
SELECT OCT(16); //20 |
TO_BASE64(str) |
返回转换为base-64字符串的参数(mysql5.7版本及以上才有) |
SELECT TO_BASE64('abc') //'YWJj' |
FROM_BASE64(str) |
解码base64编码的字符串并返回结果(mysql5.7版本及以上才有) |
FROM_BASE64('YWJj'); //'abc' |
UPPER(str) |
转换为大写 |
SELECT UPPER('abc'); //'ABC' |
LOWER(str) |
转换为小写 |
SELECT LOWER('ABC'); //'ABC' |
TRIM(str) |
删除前导和尾随空格 |
SELECT TRIM(' a b '); //'a b' |
LEFT(str,len) |
返回指定的最左边的字符数 |
SELECT LEFT('abcdefg',4); //'abcd' |
RIGHT(str,len) |
返回指定的最右边的字符数 |
SELECT RIGHT('abcdefg',4); //'defg' |
MID(str,pos,len) |
返回指定的子字符串 |
SELECT MID('abcde',1,2); //'ab'
SELECT MID('abcde',2); //'bcde'
|
SUBSTRING(str,pos,len) |
返回指定的子字符串 |
SELECT SUBSTRING('abcde',1,2); //'ab'
SELECT SUBSTRING('abcde',2); //'bcde'
|
SUBSTR(str,pos,len) |
返回指定的子字符串 |
SELECT SUBSTR('abcde',1,2); //'ab'
SELECT SUBSTR('abcde',2); //'bcde'
|
REVERSE(str) |
反转字符串中的字符 |
SELECT REVERSE('abcd'); //'dcba' |
CHAR_LENGTH(str) |
返回参数中的字符数 |
SELECT CHAR_LENGTH('abc哈'); //4 |
LENGTH(str) |
以字节为单位返回字符串的长度 |
SELECT LENGTH('abc哈'); //5 |
CONCAT(str1,str2,...) |
返回连接字符串 |
SELECT CONCAT('A','B','C'); //'ABC'
|
INSERT(str,pos,len,newstr) |
在指定位置插入一个子字符串,直到指定的字符数 |
SELECT insert('abcdefg',3,1,'11'); //'ab11defg' |
REPLACE(str,from_str,to_str) |
替换指定的字符串,返回替换结果 |
SELECT REPLACE('aabbcc','a','1'); //‘11bbcc’ |
RPAD(str,len,padstr) |
追加指定次数的字符串 |
SELECT RPAD('hi',5,'b'); //'hibbb' |
STRCMP(expr1,expr2) |
比较两个字符串 |
SELECT STRCMP('text2', 'text'); //1 |
四、日期时间函数
返回当前日期-CURDATE()

返回当前时间-CURTIME()

返回当前日期和时间-NOW()

返回Unix时间戳-UNIX_TIMESTAMP()

将Unix时间戳格式化为日期-FROM_UNIXTIME()

将字符串转换为日期-STR_TO_DATE()

五、加密和压缩功能
MD5加密

SHA1加密

SHA2加密
不同加密位数:SHA-224,SHA-256,SHA-384和SHA-512

六、其它函数功能
反复执行表达式
语法格式:BENCHMARK(count,expr),可以用来进行盲注。

USER():查看当前用户列表
CURRENT_USER():查看当前用户

DATABASE():查看当前数据库
SCHEMA():查看当前数据库

VERSION():返回表示MySQL服务器版本的字符串

|