MySQL函数
1、聚合函数
使用聚合函数时,可实现根据一组数据求出一个值。
注意:
聚合函数的结果值只根据选定数据中非null值进行计算,null值被忽略;
1.1、count()函数
Count()函数,1)对于除’*’以外的任何参数,返回所选择集合中非null值得行的数目;
2)对于参数’*’,则返回所选择集合中所有集合中的行的数目,包含null值得行。
例:
使用count()函数统计tb_student表中的记录总数;
select count(*) from tb_student;
1.2、sum()函数
Sum()函数可以求出表中某个字段取值的总和。
例:
使用sum()函数求出tb_score表中分数的总和;
select sum(score) from tb_score;
1.3、avg()函数
Avg()函数可以求出表中某个字段取值的平均值;
例:
统计tb_score表中所有同学分数的平均值;
select avg(score) from tb_score;
1.4、max()函数
Max()函数可以求出某个字段取值的最大值;
例:
求tb_score表中分数的最大值;
select max(score) from tb_score;
1.5、min()函数
Min()函数可以求出表中某个字段取值的最小值;
例:
求tb_score表中分数的最小值;
select min(score) from tb_score;
2、数学函数
数学函数主要用于处理数字,包括整型和浮点型等;
2.1、ABS()函数
Abs()函数可以求出某个字段取值的绝对值;
例:
求5和-5的绝对值;
select abs(5),abs(-5);
2.2、floor函数
Floor()函数用于返回小于或等于参数x的最大整数;
例:
求小于或等于1.5级-3.5的最大整数;
select floor(1.5),floor(-3.5);
2.3、rand()函数
Rand()函数用于返回0-1之间的随机数;
例:
使用函数获取两个随机数;
select rand(),rand();
2.4、truncate(x,y)函数
Truncate()函数用于返回x保留到小数点后y位的值;
例:
保留数值1.234567到后2位;
select truncate(1.234567,2);
2.5、sqrt(x)函数
Sqrt()函数用于求参数x的平方根;
例:
求数值16,256,2401的平方根;
select sqrt(16),sqrt(256),sqrt(2401);
3、字符串函数
字符串函数主要用于处理表中的字符串;
3.1、upper(s)和ucase(s)函数
upper(s)和ucase(s)函数均可以用于将字符串s中的所有字母变成大写字母;
例:
把字符串’hello’,’English’中的所有字母变成大写字母;
select upper('hello'),upper('English'); select ucase('hello'),ucase('English');
3.2、left(s,n)函数
Left(s,n)用于返回字符串s的前n个字符;
例:
取出字符串’hello world’的前7个字符;
select left('hello world',7);
例2:
取出字符串’helloworld’的前7个字符;
select left('helloworld',7);
3.3、substring(s,n,len)函数
substring(s,n,len)函数用户从字符串s的第n个位置开始获取长度为len的字符串;
例:
获取字符串’hello’中从第2个字符开始的3个字符;
select substring('hello',2,3);
例2:
获取字符串’hello’中从第2个字符开始的5个字符;
select substring('hello',2,5);
4、日期和时间函数
日期和时间函数也是MySQL中最常用的函数之一,其主要用于对表中的日期和时间数据进行处理;
4.1、curdate()和current_date()函数;
curdate()和current_date()函数用于获取当前日期;
例:使用curdate()和current_date()函数分别获取当前日期;
Select curdate(),current_date();
4.2、curtime()和current_time()函数
curtime()和current_time()函数可用于获取当前时间;
例:使用curtime()和current_time()函数分别获取当前时间;
Select curtime(),current_time();
4.3、now()函数;
now()函数可以获取当前日期和时间;
例:使用now()函数获取当前日期和时间;
Select now();
5、其他函数;
MySQL中除了上述的几类函数外,还包含很多函数,如:条件函数用于在SQL语句中进行条件判断、系统信息函数用于查询MySQL数据库的系统信息;
5.1、if(expr,v1,v2)函数
if(expr,v1,v2)函数是一种条件判断函数,其表示的是如果表达式expr成立,则执行v1,
或者执行v2;
例:
查询表tb_score,如果分数字段(score)的值大于85,则输出“优秀”,否则输出“一般”;
Select studentno,courseno,score,if(score>85,’优秀’,’一般’)level from tb_score;
5.2、ifnull(v1,v2)函数;
ifnull(v1,v2)函数是一种条件判断函数,其表示的是如果表达式v1不为空,则显示v1的值,否则显示v2的值;
例:
使用ifnull()函数进行判断;
Select ifnull(1/0,’空’);
5.3、version()函数;
version()函数是一种系统信息函数,用于获取数据库的版本号;
例:
使用version()函数获取当前数据库的版本号;
Select version();
6、加密函数
6.1、encode函数
Encode(str,key)函数使用key作为密钥加密字符串str;
例1:
使用liu作为秘钥对’world’进行加密;
select encode('world','liu');
6.2、decode(str,key)解密
decode(str,key)解密使用key作为密钥解密字符串str;
例2:
对上面例1解密;
select decode(encode('world','liu'),'liu');
例3:
创建一个表user
Create table user(userid int,username varchar(10),pwd blob);
向表中插入一条数据:
insert into user values(1,'liu',encode('liu123','abc'));
对user表里的pwd进行解密:
select decode(pwd,'abc') from user;
6.3、aes_encrypt(str,key)函数
aes_encrypt(str,key)函数使用key作为密钥加密字符串str;
例1:
使用liu作为秘钥对’world’进行加密;
select aes_encrypt('world','liu'); Aes_decrypt(str,key)函数解密 Aes_decrypt(str,key)函数用key作为密钥解密字符串str;
例2:
对上面例1解密;
select aes_decrypt(aes_encrypt('world','liu'),'liu'); insert into user values(2,'li',aes_encrypt('li123','abc')); select * from user; select aes_decrypt(pwd,'abc') from user;
6.4、password(str)加密
Password()函数用于对字符串str进行加密,对同一个字符串加密结果一致,区分大小写,加密过程不可逆;
例;
使用password()函数对字符串’world’加密;
select password('world');
6.5、MD5(str)函数加密
Md5()函数用于对字符串str进行加密,区分大小写,过程不可逆;
例:
使用MD5()函数对字符串’world’加密;
select md5('world');