zoukankan      html  css  js  c++  java
  • Mysql函数大全

    1.数学函数

    一般用于插入、修改语句中,直接 函数(参数) 即可。
    • ABS(x) :求绝对值

    • SQRT(x) : 求二次方根

    • MOD(x,y) : 求余数,返回x被y除后的余数

    • CEIL(x) 和CEILING(x) : 向上取整,返回不小于x的最小整数

    • FLOOR(x) : 向下取整,返回值转化为一个BIGINT

    • RAND(x) : 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列

    • ROUND : ROUND(x) 返回最接近于 x 的整数;ROUND(x,y) 对x进行四舍五入的操作,返回值保留小数点后面指定的y位。

    • SIGN (X): 返回参数的符号,x 的值为负、零和正时返回结果依次为 -1、0 和 1

    • POW和POWER :所传参数的次方的结果值,计算 x 的 y 次方

    • SIN (X): 求正弦值,x 为弧度值
    • ASIN(X) : 求反正弦值,与SIN互为反函数,若 x 不在 -1 到 1 的范围之内,则返回 NULL

    • COS : 求余弦值,x 为弧度值
    • ACOS : 求反余弦值,与COS互为反函数,若 x 不在 -1 到 1 的范围之内,则返回 NULL

    • TAN : 求正切值
    • ATAN : 求反正切值,与TAN互为反函数

    • COT :求余切值
    2.字符串函数
    CONCAT(str1,str2,...) :返回结果为连接参数产生的字符串。若有任何一个参数为 NULL,则返回值为 NULL。若所有参数均为非二进制字符串,则结果为非二进制字符串。若自变量中含有任一二进制字符串,则结果为一个二进制字符串。
    LENGTH(str):返回值为字符串str 的字节长度。使用 uft8编码字符集时,一个汉字是 3 个字节,一个数字或字母是一个字节。
    LOWER(str):把str全部变为小写。
    UPPER(str):把str转为大写。
    INSERT(str,pos,len,newstr):字符串str的pos到len长的位置被newstr替换。若 pos 超过字符串长度,则返回值为原始字符串。假如 len 的长度大于其他字符串的长度,则从位置 pos 开始替换。若任何一个参数为NULL,则返回值为NULL。
    INSTR(str,substr):返回字符串 str 中子字符串substr的第一个出现位置。
    LEFT(str,len):返回字符串str 从左起len长的子串。
    RIGHT(str,len):从字符串str 开始,返回最右len 字符。
    REPEAT(str,count):str重复count次而成的新字符串。
    REPLACE(str,from_str,to_str):把str中的from_str内容替换为to_str.
    REVERSE(str):把str倒序。
     TRIM(str): 删除字符串左右两侧的空格。TRIM(remstr FROM str):从str中删除remstr。
    SUBSTRING(str,pos) , SUBSTRING(str FROM pos):字符串str返回一个子字符串,起始于位置 pos。
    SUBSTRING(str,pos,len) , SUBSTRING(str FROM pos FOR len):字符串str返回一个长度同len字符相同的子字符串,起始于位置 pos。
    CHAR_LENGTH(str):返回值为字符串str 的长度,长度的单位为字符。
    CONV(str,from_base,to_base):不同进制的转换。返回str字符串由from_base进制转化为 to_base 进制的数字串表示。
    ELT(N,str1,str2,str3,...):返回第一个参数后面的第N个参数。返回若N = 1,则返回值为str1 ,若N = 2,则返回值为 str2 ,以此类推。
    POSITION(substr IN str):返回子串substr在字符串str第一个出现的位置,如果substr不是在str里面,返回0。
    RPAD(str,len,padstr):把str用padstr填充到len长。

      ASCII(str):返回字符串str 的最左字符的数值。假如str为空字符串,① 则返回值为 0 。假如str 为NULL,则返回值为 NULL。 ASCII()用于带有从 0到255的数值的字符。
    BIN(N):返回N的二进制值的字符串。
    LOCATE(substr,str,pos)返回子串substr在字符串str第一个出现的位置,从位置pos开始。如果substr不是在str里面,返回0。

    3聚集函数

    使用格式:聚集函数一般是配合GROUP BY语句使用的,也可以用于统计整表、整列。
    AVG() :返回某列的平均值,参数为要计算的列名。
    COUNT() :返回某列/某组/整表的行数。
      使用方法有以下两种:
        COUNT(*) 计算表中总的行数,无论某列有数值或者为空值;
        COUNT(字段名)计算指定列下总的行数,计算时将忽略空值的行。
      提示:在计算总数的时候对待 NULL 值的方式是,指定列的值为空的行被 COUNT() 函数忽略,但若不指定列,而在 COUNT() 函数中使用星号“*”,则所有记录都不忽略。
    测试表:
    MAX() :返回某列的最大值,适用于查找数值类型、字符类型。(注意:在对字符类型的数据进行比较时,按照字符的ASCII码值大小进行比较,从 a~z,a 的 ASCII 码最小,z 的最大。在比较时,先比较第一个字符,如果相等,继续比较下一个字符,一直到两个字符不相等或者字符结束为止。)
    MIN() :返回某列的最小值。

      

    SUM() :返回某个列之和

        (1)如果在没有返回匹配行 SELECT 语句中使用 SUM 函数,则 SUM 函数返回 NULL,而不是 0。

        (2)DISTINCT 运算符允许计算集合中的不同值。

        (3)SUM 函数忽略计算中的 NULL 值。

        (4)提示:SUM() 函数在计算时,忽略列值为 NULL 的行。

    4、日期和时间函数

      CURDATE() 和 CURRENT_DATE():返回当前系统的日期值。“CURDATE()+0”将当前日期值转换为数值型的

      CURTIME() 和 CURRENT_TIME():返回当前系统的时间值

      

      NOW() 和 SYSDATE() :返回当前日期和时间值。 NOW() 取的是语句开始执行的时间,而 SYSDATE() 取的是语句执行过程中动态的实时时间。

       

    时间选取函数:

    选取日期时间的各个部分:日期、时间、年、季度、月、日、小时、分钟、秒、微秒

    YEAR(date):返回date的年份

    MONTH(date) :返回date的月份,范围1到12。

    MONTHNAME(date) :返回date的英文月份名字。

    DAYNAME(date) :返回date的英文星期名字。

    WEEKDAY(date) :返回date的星期索引(0=星期一,1=星期二, ……6= 星期天)。

    WEEK():计算日期 date 是一年中的第几周。WEEK(date,mode) 函数允许指定星期是否起始于周日或周一,以及返回值的范围是否为 0~52 或 1~53。WEEK函数接受两个参数:date是要获取周数的日期。mode是一个可选参数,用于确定周数计算的逻辑

    DAYOFWEEK(date) :返回 date对应的一周中的索引(位置)。1到7表示周日到周六。

    DAYOFMONTH(date) :返回date的月份中日期,在1到31范围内。

    DAYOFYEAR(date) :返回date在一年中的日数, 在1到366范围内。

    QUARTER(date) :返回date一年中的季度,范围1到4。

    TIME_TO_SEC(time) :将时间值转换为秒值 SEC_TO_TIME(seconds) :将秒值转换为时间格式

    UNIX_TIMESTAMP(date) 若无参数调用,返回一个无符号整数类型的 UNIX 时间戳('1970-01-01 00:00:00'GMT之后的秒数)。

    FROM_UNIXTIME(date) 函数把 UNIX 时间戳转换为普通格式的日期时间值,与UNIX_TIMESTAMP(date) 函数互为反函数。

      DATE_ADD(date,INTERVAL expr type) 和 ADDDATE(date,INTERVAL expr type) 两个函数的作用相同,都是用于执行日期的加运算。date 是 DATE 或 DATETIME 的起始值。INTERVAL expr type是要添加到起始日期值的间隔值。

      DATE_SUB(date,INTERVAL expr type) 和 SUBDATE(date,INTERVAL expr type) 两个函数作用相同,都是执行日期的减法运算。

      

    ADDTIME(time,expr) 函数用于执行时间的加法运算(time 是一个时间或日期时间表达式,expr 是一个时间表达式)。

    SUBTIME(time,expr) 函数用于执行时间的减法运算

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

    DATE_FORMAT(date,format) 函数是根据 format 指定的格式显示 date 值。DATE_FORMAT() 函数接受两个参数:date:是要格式化的有效日期值,format:是由预定义的说明符组成的格式字符串,每个说明符前面都有一个百分比字符(%)。

    %a 工作日的缩写名称  (Sun..Sat)
    
    %b 月份的缩写名称 (Jan..Dec)
    
    %c 月份,数字形式(0..12)
    
    %D 带有英语后缀的该月日期 (0th, 1st, 2nd, 3rd, …)
    
    %d 该月日期, 数字形式 (00..31)
    
    %e 该月日期, 数字形式(0..31)
    
    %f 微秒 (000000..999999)
    
    %H 小时(00..23)
    
    %h 小时(01..12)
    
    %I 小时 (01..12)
    
    %i 分钟,数字形式 (00..59)
    
    %j 一年中的天数 (001..366)
    
    %k 小时 (0..23)
    
    %l 小时 (1..12)
    
    %M 月份名称 (January..December)
    
    %m 月份, 数字形式 (00..12)
    
    %p 上午(AM)或下午( PM)
    
    %r 时间 , 12小时制 (小时hh:分钟mm:秒数ss 后加 AM或PM)
    
    %S 秒 (00..59)
    
    %s 秒 (00..59)
    
    %T 时间 , 24小时制 (小时hh:分钟mm:秒数ss)
    
    %U 周 (00..53), 其中周日为每周的第一天
    
    %u 周 (00..53), 其中周一为每周的第一天
    
    %V 周 (01..53), 其中周日为每周的第一天 ; 和 %X同时使用
    
    %v 周 (01..53), 其中周一为每周的第一天 ; 和 %x同时使用
    
    %W 工作日名称 (周日..周六)
    
    %w 一周中的每日 (0=周日..6=周六)
    
    %X 该周的年份,其中周日为每周的第一天, 数字形式,4位数;和%V同时使用
    
    %x 该周的年份,其中周一为每周的第一天, 数字形式,4位数;和%v同时使用
    
    %Y 年份, 数字形式,4位数
    
    %y 年份, 数字形式 (2位数)
    
    %% ‘%’文字字符

    5.其他函数

      CAST() 和CONVERT() 函数可用来获取一个类型的值,并产生另一个类型的值

        格式:CAST(xxx  AS 类型) ,CONVERT(xxx,类型)

        类型可以是以下值其中的一个:

    二进制 : BINARY    
    
      字符型,可带参数 : CHAR()     
    
      日期 : DATE     
    
      时间: TIME     
    
      日期时间型 : DATETIME     
    
      浮点数 : DECIMAL      
    
      整数 : SIGNED     
    
      无符号整数 : UNSIGNED

      

      FNULL(v1,v2)是 MySQL 控制流函数之一,如果不是 NULL,则返回第一个参数, 否则,IFNULL 函数返回第二个参数。两个参数可以是文字值或表达式。

      IF(expr,v1,v2)语句允许您根据表达式的某个条件或值结果来执行一组 SQL 语句。要在 MySQL 中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回 TRUE,FALSE 或 NULL,这三个值之一。表达式 expr 得到不同的结果,当 expr 为真是返回 v1 的值,否则返回 v2.

      CASE语句分为简单的和可搜索 CASE 语句。

    简单的 CASE 语句就是指使用简单 CASE 语句来检查表达式的值与一组唯一值的匹配:
    CASE <表达式> WHEN <值1> THEN <操作> WHEN <值2> THEN <操作> ... ELSE <操作> END CASE;
    <表达式> 可以是任何有效的表达式。我们将 <表达式> 的值与每个 WHEN 子句中的值进行比较,例如 <值1>,<值2> 等。如果 <表达式> 和 <值n> 的值相等,则执行相应的 WHEN 分支中的命令 <操作>。如果 WHEN 子句中的 <值n> 没有与 <表达式> 的值匹配,则 ELSE 子句中的命令将被执行。ELSE 子句是可选的。 如果省略 ELSE 子句,并且找不到匹配项,MySQL 将引发错误。

    可搜索CASE语句:
    CASE WHEN <条件1> THEN <命令> WHEN <条件2> THEN <命令> ... ELSE commands END CASE;

    MySQL 分别计算 WHEN 子句中的每个条件,直到找到一个值为 TRUE 的条件,然后执行 THEN 子句中的相应 <命令>。如果没有一个条件为 TRUE,则执行 ELSE 子句中的 <命令>。如果不指定 ELSE 子句,并且没有一个条件为 TRUE,MySQL 将发出错误消息。MySQL 不允许在 THEN 或 ELSE 子句中使用空的命令。 如果您不想处理 ELSE 子句中的逻辑,同时又要防止 MySQL 引发错误,则可以在 ELSE 子句中放置一个空的 BEGIN END 块。

      

      

     

     

     

  • 相关阅读:
    __weak
    c++界面设计皮肤工具
    执行游戏时出现0xc000007b错误的解决方法
    2.4.1-Java语言基础(常量)
    句法模式识别(一)-串文法
    一步一步写算法(之hash表)
    LaTeX新人教程,30分钟从全然陌生到基本入门
    初次当面试官的经历和感触
    Android入门第八篇之GridView(九宫图)
    Android-Cannot merge new index 66195 into a non-jumbo instruction的解决的方法
  • 原文地址:https://www.cnblogs.com/fflower/p/11772802.html
Copyright © 2011-2022 走看看