`
jayjayjaylun
  • 浏览: 90033 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

mysql 常用函数

阅读更多
一.             控制流程函数

1.CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END

该语句用于在不同情况时,执行不同的语句,实例如下:

Eg1. SELECT CASE WHEN 1>0 THEN 'true' ELSE 'false' END;

输出:true

Eg2. SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;

       输出:NULL

2.IF(expr1,expr2,expr3)

       如果expr1返回true,则该表达式返回expr2,否则返回expr3。

Eg1. SELECT IF(1<2,'yes ','no');

       输出:'yes '

Eg2. SELECT IF(STRCMP('test','test1'),'no','yes');

       上例中STRCMP(expr1, expr2)这个函数在expr1小于expr2时,返回-1,相等时返回0,其余的情况返回1,在上例中返回-1,因此上例的输出为:'yes'

3.IFNULL(expr1,expr2)

       该函数在expr1为NULL时,返回expr2,否则,返回expr1。

Eg1. SELECT IFNULL(1,0);

       输出:1

Eg2. SELECT IFNULL(NULL,10);

       输出:10

4.NULLIF(expr1,expr2)

       如果expr1=expr2,则返回NULL,否则,返回expr1。

Eg1. SELECT NULLIF(1,1);

       输出:NULL

Eg2. SELECT NULLIF(3,4);

       输出:3

二.             字符串函数

1.       ASCII(str)

返回值为字符串str 的最左字符的数值。假如str为空字符串,则返回值为 0 。假如str 为NULL,则返回值为 NULL。 ASCII()用于带有从 0到255的数值的字符。

Eg1. SELECT ASCII('2');

       输出:50

Eg2. SELECT ASCII('de');

       输出:100

2.       CONCAT(str1,str2,...) 

返回结果为连接参数产生的字符串。如有任何一个参数为NULL ,则返回值为 NULL。或许有一个或多个参数。

Eg1. SELECT CONCAT('Hello', ',', '阿蜜果');

       输出:'Hello, 阿蜜果'

Eg2. SELECT CONCAT('Hello', NULL, '阿蜜果');

       输出:NULL

3.       CONCAT_WS(separator,str1,str2,...)

CONCAT_WS() 代表 CONCAT With Separator ,是CONCAT()的特殊形式。   第一个参数是其它参数的分隔符。分隔符的位置放在要连接的两个字符串之间。分隔符可以是一个字符串,也可以是其它参数。如果分隔符为 NULL,则结果为 NULL。函数会忽略任何分隔符参数后的NULL值。

Eg1. SELECT CONCAT_WS(',', 'Hello', '阿蜜果');

       输出:'Hello, 阿蜜果'

Eg. SELECT CONCAT_WS(',', 'Hello', NULL, '阿蜜果');

       输出:'Hello, 阿蜜果'

4.       INSERT(str,pos,len,newstr)

返回字符串 str, 其子字符串起始于 pos位置和长期被字符串 newstr取代的len字符。 如果pos超过字符串长度,则返回值为原始字符串。 假如len的长度大于其它字符串的长度,则从位置pos开始替换。若任何一个参数为null,则返回值为NULL。

Eg1. SELECT INSERT('hello,Amigo', 7, 5, 'Locus');

       输出:hello,Locus

5.       INTER(str, substr)

返回字符串 str中子字符串的第一个出现位置。

Eg1. SELECT INSTR('hello,Amigo', 'Amigo');

       输出:7

6.       LENGTH(str)

返回值为字符串str的长度,单位为字节。一个多字节字符算作多字节。

Eg1. SELECT LENGTH('Amigo');

       输出:5

7.       LOWER(str)

返回字符串 str以及所有根据最新的字符集映射表变为小写字母的字符。

Eg1. SELECT LOWER('AMIGO');

       UPPER(str)函数的用法与此类似,在此不再赘述。不过它是将字符串转换为大写的。

       输出:amigo

8.       LPAD(str, len, padstr)

返回字符串 str, 其左边由字符串padstr 填补到len字符长度。假如str 的长度大于len, 则返回值被缩短至len字符。

Eg1. SELECT LPAD('hi',4,'!!');

       输出:'!!hi'                      

Eg2. SELECT LPAD('hi',1,'!!');

       输出:'h'

       RPAD(…)函数用法与此类似,在此不再赘述。

9.       REPEAT(str,count)

返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count。 若 count <= 0,则返回一个空字符串。若str或count 为 NULL,则返回NULL。

Eg1. SELECT REPEAT('Amigo', 2);

       输出:'AmigoAmigo'

10.   SUBSTRING(str,pos), SUBSTRING(str FROM pos) SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len)

       不带有len 参数的格式从字符串str返回一个子字符串,起始于位置 pos。带有len参数的格式从字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。 使用 FROM的格式为标准 SQL 语法。也可能对pos使用一个负值。假若这样,则子字符串的位置起始于字符串结尾的pos 字符,而不是字符串的开头位置。在以下格式的函数中可以对pos 使用一个负值。

Eg1. SELECT SUBSTRING('hello,Amigo',6);       

       输出:Amigo

Eg2. SELECT SUBSTRING('hello,Amigo', 6, 4);

       输出:Amig

三.             数值函数

1.       ABS(X)

返回X的绝对值。

Eg1. SELECT ABS(-5);

       输出:5

2.       FLOOR(X)

返回不大于X的最大整数值 。

Eg1. SELECT FLOOR(2.56);

       输出:2

Eg2. SELECT FLOOR(-2.56)

       输出:-3

3.       MOD(N,M) , N % M N MOD M

模操作。返回N 被 M除后的余数。

Eg1. SELECT MOD(237, 10);

       输出:7

Eg2. SELECT 237 % 10;

       输出:7

Eg3. SELECT 237 MOD 10;

       输出:7

4.       POW(X, Y),POWER(X, Y)

返回X的Y乘方的结果值。

Eg1. SELECT POW(2, 3);

       输出:8

Eg2. SELECT POWER(2, 4)

       输出:16

5.       RAND(),RAND(N)

返回一个随机浮点值 v,范围在 0 到1 之间 (即, 其范围为 0 ≤ v ≤ 1.0)。若已指定一个整数参数 N,则它被用作种子值,用来产生重复序列。

Eg1.  SELECT RAND(20);

       输出:0.15888261251047

Eg2. SELECT RAND();

       输出:0.9233482386203

若要在i ≤ R ≤ j 这个范围得到一个随机整数R ,需要用到表达式 FLOOR(i + RAND() * (j – i + 1))。例如, 若要在7 到 12 的范围(包括7和12)内得到一个随机整数, 可使用以下语句:

SELECT FLOOR(7 + (RAND() * 6));

6.       ROUND(X),ROUND(X,D)

返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。

Eg1. SELECT ROUND(-1.23);

       输出:-1

Eg2. SELECT ROUND(2.56);

       输出:3

7.       SQRT(X)

      返回非负数X的二次方根,如X为NULL时,返回NULL。

Eg1. SELECT SQRT(4);

      输出:2

Eg2. SELECT SQRT(-4);

      输出:NULL

四.             日期和时间函数

1. ADDDATE(date,INTERVAL expr type),ADDDATE(expr,days)

       当被第二个参数的INTERVAL格式激活后, ADDDATE()就是DATE_ADD()的同义词。相关函数SUBDATE()则是DATE_SUB()的同义词。

Eg1. SELECT DATE_ADD('1998-01-02', INTERVAL 31 DAY);

       输出:'1998-02-02'

Eg2. SELECT ADDDATE('1998-01-02', INTERVAL 31 DAY);

       输出:'1998-02-02'

2. CURDATE()

       将当前日期按照'YYYY-MM-DD' 或YYYYMMDD 格式的值返回,具体格式根据函数用在字符串或是数字语境中而定。

Eg1. SELECT CURDATE();

       输出:'2008-01-01'

Eg2. SELECT CURDATE() + 0;

       输出:20080101

3. CURTIME()

       将当前时间以'HH:MM:SS'或 HHMMSS 的格式返回, 具体格式根据函数用在字符串或是数字语境中而定。 

Eg1. SELECT CURTIME();

       输出:'15:15:26'

4. DATE(expr)

       提取日期或时间日期表达式expr中的日期部分。

Eg1. SELECT DATE('2007-12-31 23:59:59');

       输出:'2007-12-31'

5. DATEDIFF(expr, expr2)

       DATEDIFF() 返回起始时间 expr和结束时间expr2之间的天数。Expr和expr2为日期或 date-and-time 表达式。计算中只用到这些值的日期部分。

Eg1. SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30');

       输出:1

Eg2. SELECT DATEDIFF('1997-11-30 23:59:59','1997-12-31');

       输出:-31

6. DAYOFMONTH(date)

       返回date 对应的该月日期,范围是从 1到31。

Eg1. SELECT DAYOFMONTH('2008-01-05');

       输出:5

7. MONTH (time)

       返回date对应的月份,范围时从 1 到 12。

Eg1. SELECT MONTH('2007-01-05');

输出:1

8. HOUR(time)

       返回time 对应的小时数。对于日时值的返回值范围是从 0 到 23 。

Eg1. SELECT HOUR('11:47:1');

9. MINUTE(time)

       返回 time 对应的分钟数,范围是从 0 到 59。

Eg1. SELECT MINUTE('2007-01-05 11:51:23);

       输出:51

10. SECOND(time)

       返回time对应的秒数, 范围是从 0到59。

Eg1. SELECT SECOND('11:56:43);

       输出:43

11. LAST_DAY(date)

       获取一个日期或日期时间值,返回该月最后一天对应的值。若参数无效,则返回NULL。

Eg1. SELECT LAST_DAY('2008-02-01');

       输出:29

12. NOW()

       返回当前日期和时间值,其格式为 'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS , 具体格式取决于该函数是否用在字符串中或数字语境中。

Eg1. SELECT NOW();

       输出:'2007-01-05 11:54:30'

13. SUBDATE(date,INTERVAL expr type) ,SUBDATE(expr,days)

       当被第二个参数的 INTERVAL型式调用时, SUBDATE()和DATE_SUB()的意义相同。对于有关INTERVAL参数的信息, 见有关 DATE_ADD()的讨论。

Eg1. SELECT SUBDATE('2008-01-05', INTERVAL 31 DAY);

       输出:2007-12-05

14. SYSDATE()

       返回当前日期和时间值,格式为'YYYY-MM-DD HH:MM:SS' 或YYYYMMDDHHMMSS, 具体格式根据函数是否用在字符串或数字语境而定。

在一个存储程序或触发器中, SYSDATE()返回其执行的时间, 而非存储成都或触发语句开始执行的时间。这个NOW()的运作有所不同。

Eg1. SELECT SYSDATE();
分享到:
评论

相关推荐

    MySQL常用函数大全

    ### MySQL常用函数详解 #### 数学函数 - **ABS(x)**: 返回参数`x`的绝对值。 - **BIN(x)**: 将十进制数字`x`转换为二进制字符串表示。 - **CEILING(x)**: 返回不小于`x`的最小整数值。 - **EXP(x)**: 返回`e`的`x`...

    MySQL常用函数.txt

    MySQL常用函数 MySQL常用函数

    MySQL常用函数的举例及例子

    ### MySQL常用函数详解 #### 一、数学函数 在MySQL中,数学函数是处理数值数据的基本工具之一。这些函数能够帮助我们执行简单的算术运算、数值转换以及进行数学计算。 - **ABS(x)**:返回`x`的绝对值。例如,`ABS...

    MySQL常用函数

    包含了MySQL常用的所有函数及详解。IFNULL(expr1,expr2),FROM_UNIXTIME。

    Mysql常用函数列表

    Mysql常用函数列表 CONCAT (string2 [,... ]) //连接字串 INSTR (string ,substring ) //返回substring首次在string中出现的位置,不存在返回0 …… 数学类 ABS (number2 ) //绝对值 …… 日期...

    MySql常用函数大全讲解

    ### MySQL常用函数详解 #### 一、数学函数 数学函数是MySQL中经常使用的一类函数,主要用于处理各种类型的数字,如整数、浮点数等。以下是一些常用的数学函数: 1. **ABS(X)**: 返回`X`的绝对值。 - 示例:`...

    mysql常用函数及概念

    ### MySQL 常用函数及概念详解 #### 一、MySQL 数据库优化——重点函数与概念应用 在处理大规模数据时,对MySQL数据库进行优化至关重要。优化不仅能够提高查询速度,减少服务器负担,还能有效提升应用程序的整体...

    MySQL常用函数汇总

    MySQL常用函数汇总

    mysql常用函数,精编版,自取

    MySQL 常用函数精编版 在 MySQL 中,函数是指对输入参数值返回一个具有特定关系的值,主要分为数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息和加密函数等。以下是 MySQL 中一些常用的函数: 数学...

    mysql常用函数.txt

    这篇文本“mysql常用函数.txt”很可能是列举了一些在MySQL中经常用到的函数,这对于理解和操作MySQL数据库至关重要。以下是对MySQL中一些关键函数的详细介绍: 1. **SELECT函数**:这是查询数据的基本函数,用于从...

    Mysql常用函数

    掌握这些MySQL常用函数,可以极大地提升你的SQL编写能力,使你在数据查询和处理时更加得心应手。在实际工作中,可以根据需求灵活运用这些函数,创建复杂的查询语句,实现高效的数据操作。不断实践和学习,你将成为...

    mysql常用函数

    mysql常用函数

    mysql常用函数大全

    mysql常用函数大全,不用每次去网上查,快速便捷

    mysql常用函数汇总.chm

    Mysql的常用函数整体, 从网上收集的一些常用函数, 进行汇总整体成文档 MySQL控制流函数: CASE WHEN[test1] THEN [result1]...ELSE [default] END如果testN是真,则返回resultN,否则返回default CASE [test] WHEN...

    mysql常用函数备查

    以下是关于MySQL常用函数的一些详细说明: **一、控制流程函数** 1. **CASE...WHEN...END** 语句:这是一个条件判断语句,可以根据不同的条件返回不同的结果。在给定的示例中,Eg1 判断1是否大于0,如果是则返回'...

    mysql常用函数列表 (2).pdf

    以下是 MySQL 常用函数的详细说明: 1. `mysql_affected_rows`:这个函数返回上一次操作(如INSERT、UPDATE、DELETE)影响的记录行数,可以帮助判断操作是否成功。 2. `mysql_change_user`:允许在已建立的连接上...

Global site tag (gtag.js) - Google Analytics