字符串函数
1、CANCAT(S1,S2,…Sn)函数:把传入的参数连接成为一个字符串。
select concat('aaa','bbb','ccc') ,concat('aaa',null);
2、INSERT(str ,x,y,instr)函数:将字符串str 从第x 位置开始,y 个字符长的子串替换为字符串instr。
select insert('aaaaaa',2,3,'bbb');
3、LOWER(str)和UPPER(str)函数:把字符串转换成小写或大写。
select lower('ABCD'); //转为小写
select upper('abcd'); //转为大写
4、LEFT(str,x)和 RIGHT(str,x)函数:分别返回字符串最左边的x 个字符和最右边的x 个字符。如果第二个参数是NULL,那么将不返回任何字符串。
select left('abcdkdsjhfg',5);
select right('abcdkdsjhfg',5);
5、LPAD(str,n ,pad)和 RPAD(str,n ,pad)函数:用字符串pad 对str 最左边和最右边进行填充,直到长度为n 个字符长度。
select lpad('afkgdlfdf',20,'666');
select rpad('afkgdlfdf',20,'666');
6、LTRIM(str)和 RTRIM(str)函数:去掉字符串str 左侧和右侧空格。
select ltrim(' |asjfhgalskfdj');
select rtrim(' |asjfhgalskfdj');
TRIM(str)函数:去掉目标字符串的开头和结尾的空格。
select trim(' |aaaaaaaaaaaaaaa| ');
7、REPEAT(str,x)函数:返回str 重复x 次的结果。
select repeat('666',10);
8、REPLACE(str,a,b)函数:用字符串b 替换字符串str 中所有出现的字符串a。
select replace('aaaaaaaabbbbbbccccc','b','6');
9、STRCMP(s1,s2)函数:比较字符串s1 和s2 的ASCII 码值的大小。如果s1 比s2 小,那么返回-1;如果s1 与s2 相等,那么返回0;如果s1 比s2 大,那么返回1。
select strcmp('a','b');
10、SUBSTRING(str,x,y)函数:返回从字符串str 中的第x 位置起y 个字符长度的字串。
select substring('afdfasdfasdfas',3,8);
数值函数
1、ABS(x)函数:返回x 的绝对值。
select abs(-1000);
2、CEIL(x)函数:返回大于x 的最大整数。
select ceil(-0.5);
3、FLOOR(x)函数:返回小于x 的最大整数,和CEIL 的用法刚好相反。
select floor(-0.5);
4、MOD(x,y)函数:返回x/y 的模。
select mod(5,2);
5、RAND()函数:返回0 到1 内的随机值。
select rand();
6、ROUND(x,y)函数:返回参数x 的四舍五入的有y 位小数的值。
select round(5.213641,3);
7、TRUNCATE(x,y)函数:返回数字x 截断为y 位小数的结果。
select truncate(5.53153131,6);
日期和时间函数
1、CURDATE()函数:返回当前日期,只包含年月日。
select curdate();
2、CURTIME()函数:返回当前时间,只包含时分秒。
select curtime();
3、NOW()函数:返回当前的日期和时间,年月日时分秒全都包含。
select now();
4、UNIX_TIMESTAMP(date)函数:返回日期date 的UNIX 时间戳。
select unix_timestamp(now());
5、FROM_UNIXTIME ( unixtime ) 函数: 返回UNIXTIME 时间戳的日期值, UNIX_TIMESTAMP(date)互为逆操作。
select from_unixtime(1535357173);
6、WEEK(DATE)和YEAR(DATE)函数:前者返回所给的日期是一年中的第几周,后者返回所给的日期是哪一年。
select week(now()),year(now());
7、HOUR(time)和MINUTE(time)函数:前者返回所给时间的小时,后者返回所给时间的分钟。
select hour(now()),minute(now());
8、MONTHNAME(date)函数:返回date 的英文月份名称。
select monthname(now());
9、DATE_FORMAT(date,fmt)函数:按字符串fmt 格式化日期date 值,此函数能够按指定的格式显示日期。
select date_format(now(),'%m,%d,%y');
10、DATE_ADD(date,INTERVAL expr type)函数:返回与所给日期date 相差INTERVAL 时间段的日期。
select now() current,date_add(now(),INTERVAL 31 day) after31days,date_add(now(),INTERVAL '1_2' year_month) after_oneyear_twomonth;
11、DATEDIFF(date1,date2)函数:用来计算两个日期之间相差的天数。
select datediff('2017-5-6',now());
流程函数
1、IF(value,t,f)函数:我们认为月薪在2000 元以上的职员属于高薪,用“high”表示;而2000 元以下的职员属于低薪,用“low”表示。
select if(sal>6000,'high','low') from teacher;
2、IFNULL(value1,value2)函数:这个函数一般用来替换NULL 值的,我们知道NULL 值是不能参与数值运算的,下面这个语句就是把NULL 值用0 来替换。
select ifnull(sal,0) from teacher;
3、CASE WHEN [value1] THEN[result1]…ELSE[default]END 函数: 我们也可以用case when…then 函数实现上面例子中高薪低薪的问题。
select case when sal<=6000 then 'low' else 'high' end from teacher;
其他常用函数
1、DATABASE()函数:返回当前数据库名。
select database();
2、VERSION()函数:返回当前数据库版本。
3、USER()函数:返回当前登录用户名。
4、INET_ATON(IP)函数:返回IP 地址的网络字节序表示。
select inet_aton('192.168.1');
5、INET_NTOA(num)函数:返回网络字节序代表的IP 地址。
select inet_ntoa(3232235521);
6、PASSWORD(str)函数:返回字符串str 的加密版本,一个41 位长的字符串。
select password('hjfaskjdf');
7、MD5(str)函数:返回字符串str 的MD5 值,常用来对应用中的数据进行加密。
select md5('dasdasdasdas');