MySQL函数详解

字符串函数

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');

你可能感兴趣的:(MySQL函数详解)