为了简化操作,mysql提供了大量的函数给程序员使用(例如:你想输入当前时间,可以调用now()函数);函数可以出现的位置:
插入语句的values()中,更新语句中,删除语句中,查询语句及其子句中。
原文链接:https://www.cnblogs.com/progor/p/8832663.html
create table student( name varchar(15), gender varchar(15), age int ); insert into student values("lilei","male",18); insert into student values("alex","male",17); insert into student values("jack","male",20); insert into student values("john","male",19); insert into student values("nullpeople","male",null);
返回指定字段的数据的平均值
select avg(age) as "年龄平均值" from student where gender = 'male';
select count(age) as "男生填了年龄的数量" from student where gender = 'male';
select count(*) as "男生的数量" from student where gender = 'male';
select max(age) as "年龄最大值" from student where gender = 'male';
select min(age) as "年龄最小值" from student where gender = 'male';
select sum(age) as "年龄总和值" from student where gender = 'male';
select avg(distinct age) as "年龄平均值" from student where gender = 'male';
select concat("i","am","superman");
select concat_ws(" ","i","am","superman");
select strcmp ("a","b");
select strcmp ("ab","ac");
select strcmp ("d","a");
select strcmp ("a","a");
select length("abcd");
select char_length("abcd");
select upper("a");
find_in_set(str1,str2)
* 返回字符串str1在str2中的位置,str2包含若干个以逗号分隔的字符串(可以把str2看出一个列表,元素是多个字符串,查找结果是str1在str2这个列表中的索引位置,从1开始)
> select find_in_set("abc","123,456,abc");
field(str,str1,str2,str3…)
* 与find_in_set类似,但str2由一个类似列表的字符串变成了多个字符串,返回str在str1,str2,str3…中的位置。
> select field("abc","123","456","abc");
locate(str1,str2):
* 返回子串str1在字符串str2中的位置
> select locate("a","123a123");
position(str1 IN str2)
* 返回子串str1在字符串str2中的位置
> select position("a" IN "123a123");
instr(str1,str2)
* 返回子串str2在字符串str1中的位置【注意这里调转了】
> select instr("123a123","a");
elt(index,str1,str2,str3…) 返回指定index位置的字符串 select elt(1,"a","b","c"); left(str,n) 截取str左边n个字符 select left("superman",5); right(str,n) 截取str右边n个字符 select right("superman",3); substring(str,index,len) 从str的index位置截取len个字符 select substring("iamsuperman",4,5);
ltrim(str):
去除字符串str左边的空格
select ltrim(" hello world");
rtrim(str)
* 去除字符串str右边的空格
select rtrim("hello world ");
trim()
去除字符串str两边的空格
select rtrim(" hello world ");
insert(str1,index,len,str2) 使用str2从str1的index位置替换str1的len个元素 select insert("hello world",7,5,"amy"); replace(str,str1,str2) 将str中的子串str1全部替换成str2 select replace("hello admin","admin","amy");
绝对值函数:abs(x) 返回x的绝对值 向上取整函数:ceil(x) 返回x的向上取整的整数 向下取整函数:floor(x) 向下取整函数:floor(x) 取模函数:mod(x,y) 返回x mod y的结果 随机数函数:rand() 返回0-1内的随机数 如果想对某种情况都使用同一随机值,可以使用rand(x),x相同时返回同样的随机结果 四舍五入函数:round(x,y) 四舍五入函数:round(x,y) select round("3.1415926",3); 数值截取函数:truncate(x,y) 返回数值x截取y位小数的结果(不四舍五入) select truncate("3.1415926",3);
获取当前日期:curdate(),current_date() select curdate(); 获取当前时间:curtime(),current_time() select curtime(); 获取当前日期时间:now() select now(); 从日期中选择出月份数:month(date),monthname(date) select month(curdate()),monthname(curdate()); 从日期中选择出周数:week(date) select week(curdate()); 从日期中选择出年份:year(date) select year(curdate()); 从时间中选择出小时数:hour(time) select hour(curtime()); 从时间中选择出分钟数:minute(time) select minute(curtime()); 从时间中选择出今天是周几:weekday(date),dayname(date) select weekday(curdate()),dayname(curdate());
DATEDIFF() 函数返回两个日期之间的天数 SELECT DATEDIFF('2008-12-30','2008-12-29') AS DiffDate
DATE_FORMAT() 函数用于以不同的格式显示日期/时间数据。 date 参数是合法的日期。format 规定日期/时间的输出格式 DATE_FORMAT(NOW(),'%b %d %Y %h:%i %p') DATE_FORMAT(NOW(),'%m-%d-%Y') DATE_FORMAT(NOW(),'%d %b %y') DATE_FORMAT(NOW(),'%d %b %Y %T:%f') DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%S')
友情提示:借鉴大佬的博客学习一波并进行其他函数进行补充!有不到之处敬请批评指正!
如需更详细的美容敬请查阅以下地址:https://www.cnblogs.com/progor/p/8832663.html