字符函数 数值运算符函数 比较运算符函数 日期时间函数 信息函数 聚合函数 加密函数
1.字符函数 (在嵌套函数的时候,嵌套内部不用写select)
cancat():将两张表的字段信息连接在一起,比如姓+名:
select concat(first_name,last_name) as fullname from test;
first_name,last_name都是表test的字段名,输出结果字段名为fullname。
cancat_ws():使用指定的分隔符连接:select concat_ws('_','A','U','V');
第一个参数,是指定分隔符;第二个及以后的参数,是要连接的字符。
format():将一个数字转换成字符,返回结果是字符:
select format(6345123.32,1); //将6345123.32转换成字符,并保留1位小数
lower(),upper():格式都是lower(‘ZiFuChuaN’);
left(),right():left(‘MySql’,3); //取字符串左侧起,共3个字符。
length():获取字符串长度:select length(‘MySql’); //如果有空格,也算
ltrim()/rtrim()/trim():删除前导/后续/所有空格:select trim(‘ Mysql ’);
特殊用法:select trim(leading '?' from '??mysql?????'); //删除字符串前导的’?’
select trim(trailing '?' from '??mysql?????'); //删除字符串后续的’?’
select trim(both '?' from '??mysql?????'); //删除字符串前后所有的’?’
replace:替换字符:select replace ('??My???sql?????','?',''); //将字符串中的’?’全部替换为空
substring():字符串截取:select substring('mySql',1,2); //截取字符串,从第1位截,共2个
select substring('mySql',-3,2); //从倒数第3个开始,共2个 长度不能是负值
[not] like:模式匹配:
select * from test where first_name like ‘%k%’; //从表test查询 first_name 形式如同*k*的
%相当于通配符,即任意字符;_下划线,代表任意一个字符
select * from test where first_name like ‘%1%%’ escape ‘1’;//告诉1后面的%不要理解成通配符,而是百分号
2.数值运算符
a) ceil():向上取整:select ceil(3.02); //结果是4
b) floor():向下取整:select floor(); //结果是3
c) div():整数除法:select 5 div 9; // 5/9结果是0.556,但div之后结果就是0
d) mod():取余数:select 5 % 2; 等价于select 5 mod 2; 结果是1 select 5.3 mod 2;余数是2.3
e) power():幂运算:select power(5,2); 即52=25
f) round():四舍五入:select round(3.567,2); //3.567取2位小数,结果3.57
g) truncate():截断数字(不四舍五入):select truncate(125.89,1); //截取125.89,保留小数点后一位 结果125.8
select truncate(125.89,-1);//结果是120
3.比较运算符与函数
a) [not] between...and...:[不]在范围内:select 15 between 1 and 22; //判定15是否在1和22之间 返回1
b) [not] in():[不]在列出值范围之内:select 13 in (5,10,15,20); //判定13是否在这几个点上,是否定的,返回0
c) is [not] null:判定是否为空:select * from test where first_name is null; //表test first_name为空的字段
4.日期时间函数
a) now():当前日期时间:select now(); //返回当前日期时间 2014-10-05 18:25:54
b) curdate():返回当前日期:select curdate(); //返回当前日期 2014-10-05
c) curtime():返回当前时间:select curtime(); //返回当前时间 18:28:25
d) date_add():日期变化(增减):select date_add('2014-3-12',interval 365 day);
//在2014-3-12基础上增加365天 结果是2015-03-12
select date_add('2014-10-05',interval -365 day); //减365天
select date_add('2014-10-05',interval 1 year); //加1年
select date_add('2014-10-05',interval 3 week); //加3周
e) datediff():两个日期的差值:select datediff('2014-01-10','2014-01-16'); //前面的减后面的 结果是-6
f) date_format():日期格式化:select date_format('2014-9-5','%m/%d/%Y');
//将2014-9-5 这种格式,转换为 月/日/年 的格式:09/05/2014
5.信息函数
a) connection_id():返回当前连接id:select connection_id(); //结果是40(根据用户不同结果也不同)
b) database():得到当前打开的数据库:select database();
c) last_insert_id():最后插入记录号:select last_insert_id();//写入多条记录的时候,只返回写入的第一个id号
d) user():打印当前用户:select user(); //结果是root@localhost
e) version():打印当前版本信息:select version(); //结果是5.5.38-0ubuntu0.14.04.1
6.聚合函数 只有一个返回值
a) avg():平均值: select avg(goods_price) as avg_price from tdb_goods;
计算所有goods_price字段平均值 从tdb_goods表中
b) count():计数:select count(goods_id) as counts from tdb_goods;
计算goods_id的数量 从tdb_goods表中
c) max():计算最大值:select max(goods_price) as counts from tdb_goods;
计算goods_price字段最大的数值 从tdb_goods表中
d) min():计算最小值: select min(goods_price) as counts from tdb_goods;
e) sum():求和:select sum(goods_price) as counts from tdb_goods;
7.加密函数
a) md5():摘要算法:select md5('admin'); //一般用在web页面
结果是32位的数字:21232f297a57a5a743894a0e4a801fc3
b) password():密码运算:select password('admin'); //修改客户端自己密码的时候
结果是:*4ACFE3202A5FF5CF467898FC58AAB1D615029441
一直在http://www.imooc.com/ 学习,感觉不错。