SQL函数

目录

一、聚合函数

二、数值型函数

三、字符串函数

四、日期和时间函数

五、流程控制函数

IF(expr,v1,v2)

IFNULL(v1,v2)

CASE

使用CASE value WHEN语句执行分支操作

使用CASE WHEN语句执行分支操作


一、聚合函数

聚合函数对一组值进行运算,并返回单个值。也叫组合函数。

        COUNT(*|列名)                 统计行数

        AVG(数值类型列名)           平均值

        SUM (数值类型列名)         求和

        MAX(列名)                         最大值

        MIN(列名)                          最小值

除了COUNT()以外,聚合函数都会忽略NULL值。

二、数值型函数

函数名称 作用
ABS 求绝对值
SQRT 求平方根
POW 和 POWER 两个函数的功能相同,返回参数的幂次方
MOD 求余数
CEIL 和 CEILING 两个函数功能相同,都是返回不小于参数的最小整数,即向上取整
FLOOR 向下取整,返回值转化为一个BIGINT
RAND 生成一个0~1之间的随机数,传入整数参数是,用来产生重复序列
ROUND 对所传参数进行四舍五入
SIGN 返回参数的符号

三、字符串函数

函数名称 作用
LENGTH 计算字符串长度函数,返回字符串的字节长度
CHAR_LENGTH 计算字符串长度函数,返回字符串的字符长度,注意两者的区别
CONCAT 合并字符串函数,返回结果为连接参数产生的字符串,参数可以使一个或多个
INSERT(str,pos,len,newstr) 替换字符串函数
LOWER 将字符串中的字母转换为小写
UPPER 将字符串中的字母转换为大写
LEFT(str,len) 从左侧字截取符串,返回字符串左边的若干个字符
RIGHT 从右侧字截取符串,返回字符串右边的若干个字符
TRIM 删除字符串左右两侧的空格
REPLACE(s,s1,s2) 字符串替换函数,返回替换后的新字符串
SUBSTRING(s,n,len) 截取字符串,返回从指定位置开始的指定长度的字符换
REVERSE 字符串反转(逆序)函数,返回与原始字符串顺序相反的字符串
STRCMP(expr1,expr2) 比较两个表达式的顺序。若expr1 小于 expr2 ,则返回 -1,0相等,1则相反
LOCATE(substr,str [,pos]) 返回第一次出现子串的位置
INSTR(str,substr) 返回第一次出现子串的位置

四、日期和时间函数

函数名称 作用
CURDATE() CURRENT_DATE() CURRENT_DATE 两个函数作用相同,返回当前系统的日期值
CURTIME CURRENT_TIME() CURRENT_TIME 两个函数作用相同,返回当前系统的时间值
NOW() 返回当前系统的日期和时间值
SYSDATE 返回当前系统的日期和时间值
DATE 获取指定日期时间的日期部分
TIME 获取指定日期时间的时间部分
MONTH 获取指定日期中的月份
MONTHNAME 获取指定曰期对应的月份的英文名称
DAYNAME 获取指定曰期对应的星期几的英文名称
YEAR 获取年份,返回值范围是 1970〜2069
DAYOFWEEK 获取指定日期对应的一周的索引位置值,也就是星期数,注意周日是开始日,为1
WEEK 获取指定日期是一年中的第几周,返回值的范围是否为 0〜52 或 1 〜53
DAYOFYEAR 获取指定曰期是一年中的第几天,返回值范围是1~366
DAYOFMONTH 和 DAY 两个函数作用相同,获取指定日期是一个月中是第几天,返回值范围是1~31
DATEDIFF(expr1,expr2) 返回两个日期之间的相差天数,如 SELECT DATEDIFF('2007-12-31 23:59:59','2007-12-30');
SEC_TO_TIME 将秒数转换为时间,与TIME_TO_SEC 互为反函数
TIME_TO_SEC 将时间参数转换为秒数,是指将传入的时间转换成距离当天00:00:00的秒数,00:00:00为基数,等于 0 秒

五、流程控制函数

函数名称 作用

IF(expr,v1,v2)

判断,流程控制,当expr = true时返回 v1,当expr = false、null 时返回v2

IFNULL(v1,v2)

判断是否为空,如果 v1 不为 NULL,则 IFNULL 函数返回 v1,否则返回 v2

CASE

搜索语句

使用CASE value WHEN语句执行分支操作

CASE  <表达式>
   WHEN <值1> THEN <操作>
   WHEN <值2> THEN <操作>
   ...
   ELSE <操作>
END

将 <表达式> 的值 逐一和 每个 when 跟的 <值> 进行比较
如果跟某个<值>想等,则执行它后面的 <操作> ,如果所有 when 的值都不匹配,则执行 else 的操作
如果 when 的值都不匹配,且没写 else,则会报错

例子:

SELECT name,dept_id,
CASE
        dept_id 
        WHEN 0 THEN
        "实习生" 
        WHEN 1 THEN
        "销售部" 
        WHEN 2 THEN
        "信息部" 
        WHEN 3 THEN
        "财务部" 
        ELSE "没有部门" 
    END AS "部门" 
FROM
    emp;

使用CASE WHEN语句执行分支操作

SELECT CASE WHEN 1<0 THEN 'true' ELSE 'false' END;

你可能感兴趣的:(DateBase,sql,数据库,mysql,windows)