– 条件判断函数
– 有IF,IFNULL,CASE
select IF(1>2,1,2),if(strcmp(‘test1’,‘test2’),1,2)
– 结果:2 1
select IFNULL(1,2),IFNULL(NULL,2),IFNULL(1/0,2)
– 结果:1 2 2
SELECT CASE 2
WHEN 1 THEN ‘one’
WHEN 2 THEN ‘two’
ELSE ‘more’
END ;
– 结果:two
– 系统信息函数
select VERSION()
– 结果:5.5.28 --版本号
select CONNECTION_ID() – 服务器当前连接数
show PROCESSLIST – 普通用户输出当前用户连接信息
– 获取用户的函数
select user(),CURRENT_USER(),SYSTEM_USER()
– 获取字符串的字符集和排序方式的函数
select CHARSET(“abc”), CHARSET(‘abc’), CHARSET(CONVERT(‘abc’ USING latin1))
select COLLATION(‘abc’),COLLATION(CONVERT(‘abc’ USING utf8))
– 获取最后一个自动生成的ID的函数。
LAST_INSERT_ID()
create table employee(
RID INT AUTO_INCREMENT NOT NULL PRIMARY KEY,
Name VARCHAR(30)
)
INSERT INTO employee VALUES
(NULL,‘zs1’),
(NULL,‘zs2’),
(NULL,‘zs3’)
SELECT * from employee
SELECT LAST_INSERT_ID()
– 加密解密函数
– 加密函数password(不可逆)
select password(‘newpwd’)
– 加密函数MD5
select MD5(‘newpwd’)
SELECT MD5(‘mypwd’)
– 加密函数ENCODE(str,pass_str)
select ENCODE(‘secret’,‘cry’),LENGTH(ENCODE(‘secret’,‘cry’))
– 解密函数DECODE
– 只能这样验证
SELECT DECODE(ENCODE(‘newpwd’,‘mypwd’),‘mypwd’)
– 格式化函数FORMAT(x,n)四舍五入保留小数点后n位
select FORMAT(1012.14511,-1)
– 不同进制的数进行转换CONV(N,from_base,to_base)
select CONV(8,10,2)
– 结果:1000
select CONV(1000,2,10)
– 结果:8
– IP地址与数字的互相转换INET_ATON(expr)
select INET_ATON(‘209.207.224.20’);
– 结果:3520061460
SELECT INET_NTOA(‘3520061460’);
– 结果:209.207.224.20
– 加锁GET_LOCK(str,timeout)和解锁函数,ELEASE_LOCK(str),检查名为str的锁是否可用
SELECT GET_LOCK(‘lock1’,10),IS_FREE_LOCK(‘lock1’);
SELECT RELEASE_LOCK(‘lock1’)
– BENCHMARK(count,expr) 重复执行指定操作数的函数conut次数,expr函数
– 一般用于计算SQL执行速度结果通常为0(只是表示很快,并不是没有花费时间)
– CONVERT(expr USING transcoding_name)
select CHARSET(‘string’) ,CHARSET(CONVERT(CHARSET(‘string’) USING latin1))
– 改变数据类型的函数CAST(expr AS type),CONVERT(expr,type)
select CAST(‘123’ as char(2)),CONVERT(CURRENT_TIMESTAMP(),TIME);