zoukankan      html  css  js  c++  java
  • Mysql--常用函数

    一、MySQL 数字函数
    count()函数
    1、SELECT COUNT(字段名) FROM 表名;
      解释:统计该字段名不为null的数据总数。
    2、SELECT COUNT(*) FROM 表名;
      解释:统计该数据表中数据总数。
    3、SELECT COUNT(1) FROM 表名;
      解释:统计该数据表中数据总数。
    COUNT(*)和COUNT(1)的区别:
      这俩种方式都可以用来统计表中总数据量,但是他们的实现方式略有不同。
    •   COUNT(*)是统计表中的行(该行数据同时都不为null)的数据总量,也就是说如果有一行所有数据都为null,那么就不会被统计。
    •   COUNT(1)是通过在该表的表结构中添加一列,该列的数据都为1,最终是通过统计该列中有多少个数据为1的数量,即为数据总数。
    avg()函数
    找到 OrderPrice 值高于 OrderPrice 平均值的客户。
    SELECT Customer FROM Orders WHERE OrderPrice>(SELECT AVG(OrderPrice) FROM Orders)
     
    first()函数、last()函数
    查找 "OrderPrice" 列的最后一个值。
    SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders
     
    max() 、min()函数
    SELECT MAX(column_name) FROM table_name
    注释:MIN 和 MAX 也可用于文本列,以获得按字母顺序排列的最高或最低值。
     
    sum()函数
    SELECT SUM(column_name) FROM table_name
     
    len() 函数
    LEN 函数返回文本字段中值的长度。
    SELECT LEN(column_name) FROM table_name
     
    round() 、floor()、ceil()函数
    ROUND 函数用于把数值字段舍入为指定的小数位数。
    SELECT ROUND(column_name,decimals) FROM table_name
     
    二、MySQL 字符串函数
    concat(s1,s2...)将多个字段值的字符串合并为一个字符串
    concat_ws(x, s1,s2....) 将多个字段值的字符串合并为一个字符串,第一个参数为分隔符
    SELECT CONCAT_WS("-", "SQL", "Tutorial", "is", "fun!")AS ConcatenatedString;
     
    find_ in_set(s1, s2):返回字符串 c 在指定字符串中的位置
    SELECT FIND_IN_SET("c", "a,b,c,d,e");
     
    locate(s1, s):从字符串 s 中获取 s1 的开始位置
    SELECT LOCATE('st','myteststring'); -- 5
     
    positon(s1 IN s): 从字符串 s 中获取 s1 的开始位置
    SELECT POSITION('b' in 'abc') -- 2
     
    left(s,n) 返回字符串 s 的前 n 个字符
    right(s,n)返回字符串 s 的后 n 个字符
    SELECT LEFT('runoob',2) -- ru
     
    lpad(s1,len,s2) 在字符串 s1 的开始处插入字符串 s2,使字符串长度达到 len
    rpad(s1,len,s2) 在字符串 s1 的结尾处添加字符串 s2,使字符串的长度达到 len
    SELECT LPAD('abc',5,'xx') -- xxabc
     
    mid(s,n,len) 从字符串 s 的 n 位置截取长度为 len 的子字符串,同substring(s,n,len)
    SELECT MID("RUNOOB", 2, 3) AS ExtractString; -- UNO
     
    insert(s1, x, len, s2)函数
    字符串 s2 替换 s1 的 x 位置开始长度为 len 的字符串
    SELECT INSERT("google.com", 1, 6, "runoob");
     
    replace(s,s1,s2) 将字符串 s2 替代字符串 s 中的字符串 s1
    SELECT REPLACE('abc','a','x') --xbc
     
    substr(s, start, length) 从字符串 s 的 start 位置截取长度为 length 的子字符串
    substring(s, start, length)从字符串 s 的 start 位置截取长度为 length 的子字符串
    SELECT SUBSTR("RUNOOB", 2, 3) AS ExtractString; -- UNO
     
    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
     
    strcmp(s1,s2) 比较字符串 s1 和 s2,如果 s1 与 s2 相等返回 0 ,如果 s1>s2 返回 1,如果 s1<s2 返回 -1
    SELECT STRCMP("runoob", "runoob"); -- 0
     
    format(x, n) 用于对字段的显示进行格式化。
    SELECT FORMAT(column_name,format) FROM table_name
     
    三、MySQL 日期函数
    adddate(d,n) 计算起始日期 d 加上 n 天的日期
    SELECT ADDDATE("2017-06-15", INTERVAL 10 DAY);
    ->2017-06-25
     
    addtime(t,n)n 是一个时间表达式,时间 t 加上时间表达式 n
    SELECT ADDTIME('2011-11-11 11:11:11', 5);
    ->2011-11-11 11:11:16 (秒)
     
    current_date()返回当前日期
    current_time()返回当前时间
    current_timestamp()返回当前日期和时间
    localtime()返回当前日期和时间
    localtimestamp()返回当前日期和时间
    now()返回当前日期和时间
    SELECT CURRENT_DATE();
    -> 2018-09-19
    SELECT CURRENT_TIME();
    -> 19:59:02
    SELECT CURRENT_TIMESTAMP()
    -> 2018-09-19 20:57:43
    SELECT LOCALTIME()
    -> 2018-09-19 20:57:43
    SELECT LOCALTIMESTAMP()
    -> 2018-09-19 20:57:43
     
    date()从日期或日期时间表达式中提取日期值
    datediff(d1,d2)计算日期 d1->d2 之间相隔的天数
    timediff(time1, time2)计算时间差值
    date_add(d,INTERVAL expr type)计算起始日期 d 加上一个时间段后的日期
    date_sub(date,INTERVAL expr type)函数从日期减去指定的时间间隔。
    subdate(d,n) 日期 d 减去 n 天后的日期
    subtime(t,n) 时间 t 减去 n 秒的时间
    SELECT DATE("2017-06-15");
    -> 2017-06-15
    SELECT DATEDIFF('2001-01-01','2001-02-02')
    -> -32
    SELECT TIMEDIFF("13:10:11", "13:10:10");
    -> 00:00:01
    SELECT ADDDATE('2011-11-11 11:11:11',1)
    -> 2011-11-12 11:11:11    (默认是天)
    SELECT ADDDATE('2011-11-11 11:11:11', INTERVAL 5 MINUTE)
    -> 2011-11-11 11:16:11 (TYPE的取值与上面那个列出来的函数类似)
    SELECT SUBDATE('2011-11-11 11:11:11', 1)
    ->2011-11-10 11:11:11 (默认是天)
    SELECT SUBTIME('2011-11-11 11:11:11', 5)
    ->2011-11-11 11:11:06 (秒)
     
    dayname(d)返回日期 d 是星期几
    dayofmonth(d)计算日期 d 是本月的第几天
    dayofweek(d)日期 d 今天是星期几,1 星期日,2 星期一,以此类推
    dayofyear(d)计算日期 d 是本年的第几天
    extract(type from d)从日期 d 中获取指定的值,type 指定返回的类型。
    SELECT DAYNAME('2011-11-11 11:11:11')
    ->Friday
    SELECT DAYOFMONTH('2011-11-11 11:11:11')
    ->11
    SELECT DAYOFWEEK('2011-11-11 11:11:11')
    ->6
    SELECT DAYOFYEAR('2011-11-11 11:11:11')
    ->315
    SELECT EXTRACT(MINUTE FROM '2011-11-11 11:11:11')
    -> 11
     
    year(d)返回年份
    month(d)返回日期d中的月份值
    minute(t)返回 t 中的分钟值
    second(t)返回 t 中的秒钟值
    SELECT MONTH('2011-11-11 11:11:11')
    ->11
    SELECT MINUTE('1:2:3')
    -> 2
    SELECT SECOND('1:2:3')
    -> 3
     
    makedate(year, day-of-year)基于给定参数年份 year 和所在年中的天数序号 day-of-year 返回一个日期
    maketime(hour, minute, second)组合时间,参数分别为小时、分钟、秒
    SELECT MAKEDATE(2017, 3);
    -> 2017-01-03
    SELECT MAKETIME(11, 35, 4);
    -> 11:35:04
     
    sec_to_time(s)将s 转换为时分秒的格式
    time_to_sec(t)将时间 t 转换为秒
    str_to_time(string, format_mask)将字符串转变为日期
    SELECT SEC_TO_TIME(4320)
    -> 01:12:00
    SELECT TIME_TO_SEC('1:12:00')
    -> 4320
    SELECT STR_TO_DATE("August 10 2017", "%M %d %Y");
    -> 2017-08-10
     
    四、MySQL 高级函数
    cast(x as type)转换数据类型
    SELECT CAST("2017-08-29" AS DATE);
    -> 2017-08-29
     
    conv(x, f1, f2)返回 f1 进制数变成 f2 进制数
    SELECT CONV(15, 10, 2);
    -> 1111
     
    if(expr, v1, v2)如果表达式 expr 成立,返回结果 v1;否则,返回结果 v2。
    SELECT IF(1 > 0,'正确','错误')
    ->正确
     
    case expression case 表示函数开始,end表示函数结束。
    SELECT CASE 
      WHEN 1 > 0
      THEN '1 > 0'
      WHEN 2 > 0
      THEN '2 > 0'
      ELSE '3 > 0'
      END
    ->1 > 0

  • 相关阅读:
    从投影的角度理解pca:向量,投影,基,内积,坐标,维数,分散程度,方差,协方差矩阵,对角化,特征值分解,主成分分析PCA
    随机变量的方差variance & 随机向量的协方差矩阵covariance matrix
    对于随机变量的标准差standard deviation、样本标准差sample standard deviation、标准误差standard error的解释
    fmri当前相关软件工具整理
    NPAIRS框架的理解
    phy+
    当前,思路+进展+idea+下一步要做的工作
    dagli最早干了这样一件事儿 Localization of Cardiac-Induced Signal Change in fMRI
    zollei的心动噪声探索性识别
    第九章——中位数和顺序统计量
  • 原文地址:https://www.cnblogs.com/absoluteli/p/14085197.html
Copyright © 2011-2022 走看看