zoukankan      html  css  js  c++  java
  • mysql的一些函数

    -----字符函数-----

    • char_length(s): 返回字符串的长度。character_length(s)也是一样的功能。

    • CONCAT(s1,s2...sn):拼接字符串。

    • CONCAT_WS(x, s1,s2...sn):也是拼接字符串,但是每个字符串之间会有一个分隔符,x。

    • FIELD(s,s1,s2...):返回字符串s在字符串列表中的位置。

    • FIND_IN_SET(s1,s2):返回字符串s1在s2中的匹配的位置。,例如select find_in_set('j',"jason,j");返回结果为2。

    • FORMAT(x,n):函数可以将数字x进行格式化 "#,###.##", 将x保留到小数点后n位,最后一位四舍五入。例如:SELECT FORMAT(250500.5634, 2); -- 输出 250,500.56

    • INSERT(s1,x,len,s2):字符串s2替换s1的x位置开始长度为len的字符串。例如:字符串s2替换s1的x位置开始长度为len的字符串。

    • LOCATE(s1,s):从字符串s中获取s1的开始位置,例如:SELECT LOCATE('st','myteststring'); -- 5。

    • LCASE(s):转为小写。LOWER(s)也是一样的。

    • UCASE(s):转为大写。UPPER(s)也一样。

    • LEFT(s,n):返回字符串s的前n个字符。例如:SELECT LEFT('runoob',2) -- ru。

    • RIGHT(s,n):返回字符串s的后n个字符。例如:SELECT RIGHT('runoob',2) -- ob

    • LPAD(s1,len,s2):在字符串s1的开始处填充字符串s2,使字符串长度达到len。例如:SELECT LPAD('abc',5,'xx') -- xxabc。

    • RPAD(s1,len,s2):在字符串s1的结尾处添加字符串s2,使字符串的长度达到len,例如:SELECT RPAD('abc',5,'xx') -- abcxx。

    • LTRIM(s):去掉字符串s开始处的空格。

    • RTRIM(s):去掉字符串s结尾处的空格。

    • TRIM(s):去掉头和尾的空格。

    • MID(s,n,len):从字符串s的start位置截取长度为length的子字符串,同SUBSTRING(s,n,len)。例如:SELECT MID("RUNOOB", 2, 3) AS ExtractString; -- UNO

    • SUBSTR(s, start, length):从字符串s的start位置截取长度为length的子字符串。

    • SUBSTRING(s, start, length):从字符串s的start位置截取长度为length的子字符串。

    • POSITION(s1 IN s):从字符串s中获取s1的开始位置,例如:SELECT POSITION('b' in 'abc') -- 2

    • REPEAT(s,n):将字符串s重复n次,例如:select repeat('j',3)---jjj。

    • REPLACE(s,s1,s2):将字符串s2替代字符串s中的字符串s1。SELECT REPLACE('abc','a','x') --xbc

    • REVERSE(s):将字符串s的顺序反过来,例如:SELECT REVERSE('abc') -- cba。

    • SPACE(n):返回n个空格。

    • STRCMP(s1,s2):比较字符串s1和s2,如果s1与s2相等返回0 ,如果s1>s2返回1,如果s1<s2返回-1,例如:SELECT STRCMP("runoob", "runoob"); -- 0

    • SUBSTRING_INDEX(s, delimiter, number):返回从字符串s的第number个出现的分隔符delimiter之后的子串。
      如果number是正数,返回第number个字符左边的字符串。
      如果number是负数,返回第(number的绝对值(从右边数))个字符右边的字符串。

      例如:

      SELECT SUBSTRING_INDEX('a*b','*',1) -- a
      SELECT SUBSTRING_INDEX('a*b','*',-1)    -- b
      SELECT SUBSTRING_INDEX(SUBSTRING_INDEX('a*b*c*d*e','*',3),'*',-1)    -- c
      

    -----mysql数字函数-----

    • abs(s):返回绝对值。

    • AVG(expression):返回平均值。expression是一个字段

    • ceil(x):返回大于或等于x的最小整数,也就是天花板数。SELECT CEIL(1.5) -- 返回2。CEILING(x)也一样。

    • FLOOR(x):返回小于或等于x的最大整数,也就是地板数。SELECT FLOOR(1.5) -- 返回1 

    • COUNT(expression):计数统计。

    • n DIV m :整除,n为被除数,m为除数。SELECT 10 DIV 5; -- 2。

    • EXP(x) :返回e的x次方。

    • GREATEST(expr1, expr2, expr3, ...):返回列表中的最大值。SELECT GREATEST(3, 12, 34, 8, 25); -- 34

    • LEAST(expr1, expr2, expr3, ...):返回列表中的最小值。SELECT LEAST(3, 12, 34, 8, 25); -- 3。

    • MAX(expression):求最大值。

    • MIN(expression):求最小值。

    • MOD(x,y):返回x除以y以后的余数。SELECT MOD(5,2) -- 1

    • PI():圆周率。

    • POW(x,y):返回x的y次方。POWER(x,y)也是一样的。SELECT POW(2,3) -- 8

    • RAND():返回0到1的随机数。SELECT RAND() --0.93099315644334

    • ROUND(x):返回离x最近的整数,要四舍五入。SELECT ROUND(1.23456) --1

    • TRUNCATE(x,y):返回数值x保留到小数点后y位的值(与ROUND最大的区别是不会进行四舍五入)SELECT TRUNCATE(1.23456,3) -- 1.234

    • SQRT(x):返回平方根。SELECT SQRT(25) -- 5

    • SUM(expression):求和。

    -------------mysql日期函数--------------------

    • ADDDATE(d,n):计算起始日期d加上n天的日期.例如:SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);->2017-06-25

    • SUBDATE(d,n):减去n天后的日期。

    • ADDTIME(t,n):时间t加上n秒的时间,

      SELECT ADDTIME('2011-11-11 11:11:11', 5)
      ->2011-11-11 11:11:16 (秒)
      
    • SUBTIME(t,n):减去n秒的时间。

    • curdate():返回当前日期。CURRENT_DATE()也一样。

    • CURRENT_TIME:返回当前时间。CURTIME()也一样。

    • LOCALTIME():返回当前日期和时间。LOCALTIMESTAMP()

    • CURRENT_TIMESTAMP():返回当前日期和时间,

      SELECT CURRENT_TIMESTAMP()
      -> 2018-09-19 20:57:43
      
    • DATE():从日期或日期时间表达式中提取日期值,

      SELECT DATE("2017-06-15");    
      -> 2017-06-15
      
    • DATEDIFF(d1,d2):计算日期d1->d2之间相隔的天数。

      SELECT DATEDIFF('2001-01-01','2001-02-02')
      -> -32
      
    • DATE_FORMAT(d,f):按表达式f的要求显示日期d

      SELECT DATE_FORMAT('2011-11-11 11:11:11','%Y-%m-%d %r')
      -> 2011-11-11 11:11:11 AM
      
    • DATE_SUB(date,INTERVAL expr type):函数从日期减去指定的时间间隔。select date_sub(now(),interval 2 day)--->返回当前日期的两天前的日期。

    • DAY(d):返回日期值d的日期部分,例如select day(now())返回当前日期的天数。

    • DAYNAME(d):返回日期d是星期几,如Monday,Tuesday。

    • MONTHNAME(d):返回日期当中的月份名称,如Janyary。

    • DAYOFWEEK(d):日期d今天是星期几,1星期日,2星期一,以此类推

    • DAYOFMONTH(d):计算日期d是本月的第几天。

    • DAYOFYEAR(d):计算日期d是本年的第几天

    • EXTRACT(type FROM d):从日期d中获取指定的值,type指定返回的值。例如:select extract(day from now())。从当前时间中拉取天数。

    • LAST_DAY(d) :返回指定日期的最后一天。例如:select last_day(now())--->2019-08-31

    • MAKEDATE(year, day-of-year):基于给定参数年份year和所在年中的天数序号day-of-year返回一个日期,例如:

      SELECT MAKEDATE(2017, 3);
      -> 2017-01-03
      
    • MAKETIME(hour, minute, second):组合时间,参数分别为小时、分钟、秒。

      SELECT MAKETIME(11, 35, 4);
      -> 11:35:04
      
    • MINUTE(t):获取分钟值。

    • SECOND(t):获取秒钟值。

    • MONTH(d):返回日期d中的月份值,1到12。

    • NOW():返回当前日期和时间。

    • sysdate():返回当前日期和时间。

    • PERIOD_ADD(period, number):为年-月组合日期添加一个时段,SELECT PERIOD_ADD(201703, 5); --->201708。

    • PERIOD_DIFF(period1, period2):返回两个时段之间的月份差值,SELECT PERIOD_DIFF(201710, 201703);--->7.

    • QUARTER(d):返回日期d是第几季节,返回1到4

    • STR_TO_DATE(string, format_mask):将字符串转变为日期。SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");--->2017-08-10

    • TIMEDIFF(time1, time2):计算时间差值。

    • WEEK(d):计算日期d是本年的第几个星期,范围是0到53.WEEKOFYEAR(d)也是一样的。

    • WEEKDAY(d):日期 d是星期几,0表示星期一,1表示星期二。

    • YEARWEEK(date, mode):返回年份及第几周(0到53),mode中0表示周天,1表示周一,以此类推。例如:select yearweek(now())。---201932

    --------mysql高级函数---------------

    case 表达式

    ​ when 条件 then 结果1

    ​ ····

    ​ else 结果

    end

    CASE表示函数开始,END表示函数结束。如果condition1成立,则返回result1, 如果condition2成立,则返回result2,当全部不成立则返回result,而当有一个成立之后,后面的就不执行了。

    • CAST(x AS type):转换数据类型。

      SELECT CAST("2017-08-29" AS DATE);
      -> 2017-08-29
      
    • COALESCE(expr1, expr2, ...., expr_n):返回参数中的第一个非空表达式(从左向右)

    • CONNECTION_ID():返回服务器的连接数

    • IF(expr,v1,v2):如果表达式expr成立,返回结果v1;否则,返回结果v2。

    • ifnull(v1,v2):如果v1的值不为NULL,则返回v1,否则返回v2。

    • NULLIF(expr1, expr2):比较两个字符串,如果字符串expr1与expr2相等返回NULL,否则返回expr1

  • 相关阅读:
    003-notepad++插件
    002-notepad++语言,编码,字体,背景色
    001-notepad++下载安装、添加右键
    015-elasticsearch5.4.3【五】-搜索API【四】Joining 多文档查询、GEO查询、moreLikeThisQuery、script脚本查询、span跨度查询
    014-elasticsearch5.4.3【五】-搜索API【三】复合查询boolQuery、constantScoreQuery、disMaxQuery
    013-elasticsearch5.4.3【五】-搜索API【二】term术语查询-termQuery、rangeQuery、existsQuery、prefixQuery、wildcardQuery、regexpQuery、fuzzyQuery
    012-elasticsearch5.4.3【五】-搜索API【一】搜索匹配所有matchAllQuery、全文查询[matchQuery、multiMatchQuery、commonTermsQuery、queryStringQuery、simpleQueryStringQuery]
    011-elasticsearch5.4.3【四】-聚合操作【二】-桶聚合【bucket】过滤、嵌套、反转、分组、排序、范围
    010-elasticsearch5.4.3【四】-聚合操作【一】-度量聚合【metrics】-min、max、sum、avg、count
    009-elasticsearch5.4.3【三】搜索概述-查询模型、分页、ES数据类型
  • 原文地址:https://www.cnblogs.com/jasonboren/p/11361838.html
Copyright © 2011-2022 走看看