MySQL常用函数

MySQL常用函数

在数据库中,函数是一种能够接收参数并返回单个值的数据库对象。函数可以在 SQL 查询中用于执行特定的计算、转换数据或执行其他操作。数据库系统通常提供了许多内置函数,同时也允许用户创建自定义函数以满足特定需求。这里就只对一些常用的内置函数进行一下简单的介绍:

函数名称描述示例
CONCAT()将多个字符串连接成一个字符串。CONCAT('Hello', ' ', 'World') 返回 'Hello World'
UPPER()将字符串转换为大写。UPPER('hello') 返回 'HELLO'
LOWER()将字符串转换为小写。LOWER('WORLD') 返回 'world'
LENGTH()返回字符串的字符数。LENGTH('Hello') 返回 5
SUBSTRING()返回字符串的子串。SUBSTRING('Hello World', 7, 5) 返回 'World'
ROUND()对数字进行四舍五入。ROUND(3.14159, 2) 返回 3.14
ABS()返回数字的绝对值。ABS(-10) 返回 10
CEILING()返回大于或等于指定数字的最小整数值。CEILING(3.14) 返回 4
POWER()返回指定数字的指定次幂。POWER(2, 3) 返回 8
DATE_FORMAT()将日期格式化为指定的字符串格式。DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s') 返回当前日期和时间的格式化字符串
DATE_ADD()在给定日期上添加指定的时间间隔。DATE_ADD('2022-01-01', INTERVAL 1 DAY) 返回 '2022-01-02'
DATEDIFF()返回两个日期之间的天数差。DATEDIFF('2022-01-01', '2022-01-05') 返回 -4
NOW()返回当前日期和时间。NOW() 返回当前日期和时间的值
IF()如果条件成立,则返回一个值,否则返回另一个值。IF(10 > 5, 'true', 'false') 返回 'true''false'
CASE用于执行多条件逻辑,类似于编程语言中的 switch 语句。CASE WHEN score >= 90 THEN 'A' ELSE 'B' END 根据分数等级返回对应的等级
AVG()返回数值列的平均值。AVG(sales) 返回销售额的平均值
SUM()返回数值列的总和。SUM(quantity) 返回数量的总和
MAX()返回数值列的最大值。MAX(price) 返回最高的价格
MIN()返回数值列的最小值。MIN(age) 返回最小的年龄
COUNT()返回行数或符合条件的行数。COUNT(*) 返回行数或非空值的数量
ARRAY_LENGTH()返回数组的长度。ARRAY_LENGTH([1, 2, 3, 4]) 返回 4
ARRAY_JOIN()将数组中的元素连接成一个字符串。ARRAY_JOIN(['apple', 'banana', 'orange'], ', ') 返回 'apple, banana, orange'
USER()返回当前用户。USER() 返回当前用户的名称
DATABASE()返回当前数据库。DATABASE() 返回当前数据库的名称
VERSION()返回数据库版本。VERSION() 返回当前数据库的版本号

假如我们有一张表,表名为 example_table,如下所示:

+----+---------------+----------------+-------------+-------------+--------------+
| id | string_column | numeric_column | date_column | bool_column | array_column |
+----+---------------+----------------+-------------+-------------+--------------+
|  1 | Apple         |          10.50 | 2024-06-10  |           1 | [1, 2, 3]    |
|  2 | Banana        |          20.75 | 2024-06-11  |           0 | [4, 5, 6]    |
|  3 | Orange        |          15.00 | 2024-06-12  |           1 | [7, 8, 9]    |
+----+---------------+----------------+-------------+-------------+--------------+
  • CONCAT():将 string_columnnumeric_column 连接起来。

    SELECT CONCAT(string_column, ' - $', numeric_column) AS concatenated_string 
    FROM example_table;
    
    +---------------------+
    | concatenated_string |
    +---------------------+
    | Apple - $10.50      |
    | Banana - $20.75     |
    | Orange - $15.00     |
    +---------------------+
    3 rows in set (0.00 sec)
    
  • UPPER() / LOWER():将 string_column 转换为大写和小写。

    SELECT UPPER(string_column) AS uppercase_string, 
    LOWER(string_column) AS lowercase_string 
    FROM example_table;
    
    +------------------+------------------+
    | uppercase_string | lowercase_string |
    +------------------+------------------+
    | APPLE            | apple            |
    | BANANA           | banana           |
    | ORANGE           | orange           |
    +------------------+------------------+
    3 rows in set (0.00 sec)
    
  • LENGTH():计算 string_column 的长度。

     SELECT string_column, LENGTH(string_column) AS string_length 
     FROM example_table;
     
    +---------------+---------------+
    | string_column | string_length |
    +---------------+---------------+
    | Apple         |             5 |
    | Banana        |             6 |
    | Orange        |             6 |
    +---------------+---------------+
    3 rows in set (0.00 sec)
    
  • ROUND():对 numeric_column 进行四舍五入。

    SELECT numeric_column, ROUND(numeric_column) AS rounded_number 
    FROM example_table;
    
    +----------------+----------------+
    | numeric_column | rounded_number |
    +----------------+----------------+
    |          10.50 |             11 |
    |          20.75 |             21 |
    |          15.00 |             15 |
    +----------------+----------------+
    3 rows in set (0.00 sec)
    
  • CURDATE():返回当前日期。

    SELECT CURDATE();
    
    +------------+
    | CURDATE()  |
    +------------+
    | 2024-06-10 |
    +------------+
    1 row in set (0.00 sec)
    
  • DATE_FORMAT():格式化 date_column

    SELECT date_column, DATE_FORMAT(date_column, '%W, %M %e, %Y') AS formatted_date 
    FROM example_table;
    
    +-------------+--------------------------+
    | date_column | formatted_date           |
    +-------------+--------------------------+
    | 2024-06-10  | Monday, June 10, 2024    |
    | 2024-06-11  | Tuesday, June 11, 2024   |
    | 2024-06-12  | Wednesday, June 12, 2024 |
    +-------------+--------------------------+
    3 rows in set (0.00 sec)
    
  • IF():根据 bool_column 返回不同的值。

    SELECT bool_column, IF(bool_column, 'Yes', 'No') AS result 
    FROM example_table;
    
    +-------------+--------+
    | bool_column | result |
    +-------------+--------+
    |           1 | Yes    |
    |           0 | No     |
    |           1 | Yes    |
    +-------------+--------+
    3 rows in set (0.00 sec)
    
  • CASE WHEN:根据条件返回不同的值。

    SELECT 
        numeric_column,
        CASE 
            WHEN numeric_column > 15 THEN 'High'
            WHEN numeric_column > 10 THEN 'Medium'
            ELSE 'Low'
        END AS value_category
    FROM example_table;
    
    +----------------+----------------+
    | numeric_column | value_category |
    +----------------+----------------+
    |          10.50 | Medium         |
    |          20.75 | High           |
    |          15.00 | Medium         |
    +----------------+----------------+
    3 rows in set (0.00 sec)
    

由于函数众多,我们将不再逐一列举。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值