SQL中的常用函数

SQL中的常用函数

以下函数可以当做字典来查询,没必要死记硬背。随着使用自然就会熟练。如有遗漏欢迎留言,我会及时补上!

数值

  • 求绝对值ABS(x)

    即返回 x 的绝对值。

  • 向上取整CEIL(x) 或 CEILING(x)

    即返回不小于 x 的最小整数。

  • 向下取整FLOOR(x)

    即返回不大于 x 的最大整数。

  • 四舍五入到指定小数位数ROUND(x, d)

    其中 d 为小数位数,默认为 0。

  • 截断到指定小数位数TRUNC(x, d)

    即保留 x 的前 d 位小数,其余部分舍去,d 默认为 0。

  • 求模运算MOD(x, y) 或 %

    即返回 x 除以 y 的余数。

  • 求幂运算POWER(x, y) 或 POW(x, y)

    即计算 x 的 y 次幂。

  • 求平方根SQRT(x)

    即返回 x 的平方根。

  • 求 e 的 x 次幂EXP(x)

    其中 e 是自然对数的底数。

  • 求自然对数LOG(x) 或 LN(x)

    即返回以 e 为底数的对数,其中 e 是自然对数的底数。

字符串

  • 字符串长度:LENGTH(str) 返回字符串 str 的长度。
  • 字符串连接:CONCAT(str1, str2, …) 将多个字符串连接成一个字符串。
  • 字符串截取:SUBSTRING(str, start, length) 或 SUBSTR(str, start, length) 从字符串 str 的指定位置开始截取指定长度的子串。
  • 字符串替换:REPLACE(str, search, replace) 在字符串 str 中将所有的 search 替换为 replace。
  • 字符串转换为大写:UPPER(str) 将字符串 str 转换为大写形式。
  • 字符串转换为小写:LOWER(str) 将字符串 str 转换为小写形式。
  • 去除首尾空格:TRIM(str) 去除字符串 str 首尾的空格。
  • 字符串拆分为数组:SPLIT(str, delimiter) 将字符串 str 按照指定的分隔符 delimiter 拆分为数组。
  • 字符串转换为整数:CAST(str AS INT) 将字符串 str 转换为整数类型。
  • 字符串转换为浮点数:CAST(str AS FLOAT) 将字符串 str 转换为浮点数类型。

时间日期

  • 获取当前日期时间:NOW() 返回当前的日期时间。
  • 获取当前日期:CURDATE() 返回当前日期。
  • 获取当前时间:CURTIME() 返回当前时间。
  • 提取年份:YEAR(date) 从日期 date 中提取年份部分。
  • 提取月份:MONTH(date) 从日期 date 中提取月份部分。
  • 提取日期:DAY(date) 从日期 date 中提取日期部分。
  • 提取小时:HOUR(time) 从时间 time 中提取小时部分。
  • 提取分钟:MINUTE(time) 从时间 time 中提取分钟部分。
  • 提取秒数:SECOND(time) 从时间 time 中提取秒数部分。
  • 日期时间格式化:DATE_FORMAT(date, format) 将日期 date 格式化为指定的格式。
  • 添加时间间隔:DATE_ADD(date, INTERVAL expr type) 给日期 date 添加指定的时间间隔。
  • 减去时间间隔:DATE_SUB(date, INTERVAL expr type) 从日期 date 减去指定的时间间隔。
  • 计算日期差:DATEDIFF(endDate, startDate) 计算两个日期之间的天数差。

聚合

MySQL 中提供了多种聚合函数,用于对数据进行统计和计算。

  • COUNT(column):计算指定列非空值的数量。
  • SUM(column):计算指定列值的总和。
  • AVG(column):计算指定列值的平均数。
  • MAX(column):找出指定列的最大值。
  • MIN(column):找出指定列的最小值。
  • GROUP_CONCAT(column):将指定列的值连接成一个字符串,并使用指定的分隔符进行分隔。
  • STDDEV(column):计算指定列值的标准偏差。
  • VARIANCE(column):计算指定列值的方差。

这些聚合函数可以应用于单个列或多个列,并且可以与其他 SQL 语句(如 SELECT、WHERE、GROUP BY 等)结合使用,以进行更复杂的数据分析和统计。

条件逻辑

MySQL提供了许多逻辑函数,用于处理和操作逻辑数据。下面列出了一些常用的MySQL逻辑函数:

  1. IF(condition, value1, value2): 如果条件为真,则返回值1,否则返回值2。

    SELECT IF(5 > 3, 'True', 'False');  -- 返回'True'
    SELECT IF(1 = 1, 10, 20);  -- 返回10
    
  2. CASE: 用于执行多路分支逻辑判断。

    • 简单CASE表达式:
    CASE column_name
    WHEN value1 THEN result1
    WHEN value2 THEN result2
    ELSE default_result
    END
    
    • 搜索CASE表达式:
    CASE
    WHEN condition1 THEN result1
    WHEN condition2 THEN result2
    ELSE default_result
    END
    
  3. NULLIF(expr1, expr2): 如果表达式1和表达式2的值相等,则返回NULL,否则返回表达式1的值。

    SELECT NULLIF(10, 10);  -- 返回NULL
    SELECT NULLIF(10, 20);  -- 返回10
    
  4. COALESCE(value1, value2, …): 返回参数列表中第一个非NULL值。

    SELECT COALESCE(NULL, 'A', 'B', NULL);  -- 返回'A'
    SELECT COALESCE(NULL, NULL, NULL, 'C');  -- 返回'C'
    
  5. AND, OR, NOT: 用于组合和操作逻辑条件。

    SELECT * FROM table_name WHERE condition1 AND condition2;
    SELECT * FROM table_name WHERE condition1 OR condition2;
    SELECT * FROM table_name WHERE NOT condition;
    
  6. IFNULL(expr1, expr2): 如果表达式1的值不为 NULL,则返回表达式1的值,否则返回表达式2的值。

    SELECT IFNULL(column_name, 0) FROM table_name;
    
  7. BETWEEN value1 AND value2: 判断一个值是否在某个范围内,如果在范围内则返回TRUE,否则返回FALSE。

    SELECT column_name FROM table_name WHERE column_name BETWEEN value1 AND value2;
    
  8. IN(value, list): 判断value是否在列表中,如果在列表中则返回TRUE,否则返回FALSE。

    SELECT column_name FROM table_name WHERE column_name IN (value1, value2, ...);
    
  9. EXISTS(subquery): 判断子查询是否返回结果,如果返回结果则为TRUE,否则为FALSE。

    SELECT column_name FROM table_name WHERE EXISTS (SELECT column_name FROM other_table WHERE condition);
    
  • 19
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值