问:MySQL中的常用SQL函数整理?

在MySQL中,SQL函数是执行特定任务、简化复杂查询和操作数据的强大工具。这些函数可以分为多个类别,包括字符串函数、数学函数、日期和时间函数、聚合函数以及控制流函数等。以下是一些常用MySQL函数。

一、字符串函数

  1. CONCAT(): 连接两个或多个字符串。

    sql 复制代码
    SELECT CONCAT('MySQL', ' ', 'Functions'); -- 输出: MySQL Functions
  2. LENGTH()CHAR_LENGTH(): 返回字符串的长度。

    sql 复制代码
    SELECT LENGTH('Hello World'); -- 输出: 11
    SELECT CHAR_LENGTH('Hello World'); -- 输出: 11
  3. UPPER()LOWER(): 将字符串转换为大写或小写。

    sql 复制代码
    SELECT UPPER('Hello'); -- 输出: HELLO
    SELECT LOWER('WORLD'); -- 输出: world
  4. SUBSTRING(): 从字符串中提取子串。

    sql 复制代码
    SELECT SUBSTRING('Hello World', 7); -- 输出: World
    SELECT SUBSTRING('Hello World', 1, 5); -- 输出: Hello
  5. TRIM(): 去除字符串两端的空格。

    sql 复制代码
    SELECT TRIM('  Hello World  '); -- 输出: Hello World
  6. REPLACE(): 替换字符串中的部分字符。

    sql 复制代码
    SELECT REPLACE('Hello World', 'World', 'MySQL'); -- 输出: Hello MySQL

二、数学函数

  1. ROUND(): 对数进行四舍五入。

    sql 复制代码
    SELECT ROUND(3.14159); -- 输出: 3
    SELECT ROUND(3.567, 2); -- 输出: 3.57
  2. CEIL()CEILING(): 返回大于或等于给定数字的最小整数。

    sql 复制代码
    SELECT CEIL(3.14); -- 输出: 4
    SELECT CEILING(-3.14); -- 输出: -3
  3. FLOOR(): 返回小于或等于给定数字的最大整数。

    sql 复制代码
    SELECT FLOOR(3.14); -- 输出: 3
    SELECT FLOOR(-3.14); -- 输出: -4
  4. ABS(): 返回数字的绝对值。

    sql 复制代码
    SELECT ABS(-10); -- 输出: 10

三、日期和时间函数

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

    sql 复制代码
    SELECT NOW(); -- 输出: 当前日期和时间,如 2024-10-28 06:10:23
  2. CURDATE()CURTIME(): 分别返回当前日期和当前时间。

    sql 复制代码
    SELECT CURDATE(); -- 输出: 当前日期,如 2024-10-28
    SELECT CURTIME(); -- 输出: 当前时间,如 06:10:23
  3. DATE_FORMAT(): 按指定格式格式化日期/时间。

    sql 复制代码
    SELECT DATE_FORMAT(NOW(), '%Y-%m-%d %H:%i:%s'); -- 输出: 格式化的当前日期和时间
  4. YEAR() , MONTH() , DAY(): 分别提取日期的年、月、日部分。

    sql 复制代码
    SELECT YEAR('2024-10-28'); -- 输出: 2024
    SELECT MONTH('2024-10-28'); -- 输出: 10
    SELECT DAY('2024-10-28'); -- 输出: 28

四、聚合函数

  1. COUNT(): 计算表中的行数。

    sql 复制代码
    SELECT COUNT(*) FROM users; -- 输出: 用户表中的行数
  2. SUM(): 计算某列的总和。

    sql 复制代码
    SELECT SUM(salary) FROM employees; -- 输出: 员工薪水总和
  3. AVG(): 计算某列的平均值。

    sql 复制代码
    SELECT AVG(salary) FROM employees; -- 输出: 员工薪水平均值
  4. MAX()MIN(): 返回某列的最大值和最小值。

    sql 复制代码
    SELECT MAX(salary) FROM employees; -- 输出: 员工薪水的最大值
    SELECT MIN(salary) FROM employees; -- 输出: 员工薪水的最小值

五、控制流函数

  1. IF(): 根据条件返回不同的值。

    sql 复制代码
    SELECT IF(score >= 60, 'Pass', 'Fail') FROM exams; -- 根据分数判断是否及格
  2. CASE: 更复杂的条件判断。

    sql 复制代码
    SELECT 
        CASE 
            WHEN score >= 90 THEN 'A'
            WHEN score >= 80 THEN 'B'
            WHEN score >= 70 THEN 'C'
            ELSE 'D'
        END AS grade
    FROM exams; -- 根据分数划分等级
  3. COALESCE(): 返回第一个非NULL的值。

    sql 复制代码
    SELECT COALESCE(NULL, NULL, 'Third Value', 'Fourth Value'); -- 输出: Third Value

这些函数只是MySQL中可用函数的一个子集,但它们在日常的数据库查询和操作中非常常用。熟练掌握这些函数,可以帮助数据库管理员、开发人员和数据分析师更有效地处理数据、生成报告和构建复杂的应用程序。

相关推荐
XiaoH23316 分钟前
培训机构Day15
sql·mysql
ThisIsClark37 分钟前
【后端面试总结】MySQL主从复制逻辑的技术介绍
mysql·面试·职场和发展
Python之栈1 小时前
【无标题】
数据库·python·mysql
亦世凡华、2 小时前
MySQL--》如何在MySQL中打造高效优化索引
数据库·经验分享·mysql·索引·性能分析
Hacker_LaoYi8 小时前
SQL注入的那些面试题总结
数据库·sql
Hacker_LaoYi10 小时前
【渗透技术总结】SQL手工注入总结
数据库·sql
独行soc10 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍06-基于子查询的SQL注入(Subquery-Based SQL Injection)
数据库·sql·安全·web安全·漏洞挖掘·hw
独行soc12 小时前
#渗透测试#漏洞挖掘#红蓝攻防#护网#sql注入介绍08-基于时间延迟的SQL注入(Time-Based SQL Injection)
数据库·sql·安全·渗透测试·漏洞挖掘
White_Mountain12 小时前
在Ubuntu中配置mysql,并允许外部访问数据库
数据库·mysql·ubuntu
老王笔记12 小时前
GTID下复制问题和解决
mysql