mysql中的函数

MySQL提供了丰富的内置函数,涵盖了字符串操作、数字计算、日期和时间处理、条件判断、聚合计算等多个方面。这些函数可以帮助开发者在查询和数据处理时更高效地完成任务。下面是对MySQL中常见的函数分类及其主要函数的介绍:

字符串函数

  1. CONCAT():连接字符串

    sql 复制代码
    SELECT CONCAT('Hello, ', 'world!'); -- 输出: 'Hello, world!'
  2. SUBSTRING() / SUBSTR():截取子字符串

    sql 复制代码
    SELECT SUBSTRING('Hello, world!', 8, 5); -- 输出: 'world'
  3. LENGTH():获取字符串长度

    sql 复制代码
    SELECT LENGTH('Hello'); -- 输出: 5
  4. UPPER():将字符串转换为大写

    sql 复制代码
    SELECT UPPER('hello'); -- 输出: 'HELLO'
  5. LOWER():将字符串转换为小写

    sql 复制代码
    SELECT LOWER('HELLO'); -- 输出: 'hello'
  6. TRIM():去除字符串首尾的空格

    sql 复制代码
    SELECT TRIM('  Hello  '); -- 输出: 'Hello'
  7. REPLACE():替换字符串中的子字符串

    sql 复制代码
    SELECT REPLACE('Hello, world!', 'world', 'there'); -- 输出: 'Hello, there!'

数字函数

  1. ABS():取绝对值

    sql 复制代码
    SELECT ABS(-10); -- 输出: 10
  2. CEIL() / CEILING():向上取整

    sql 复制代码
    SELECT CEIL(4.2); -- 输出: 5
  3. FLOOR():向下取整

    sql 复制代码
    SELECT FLOOR(4.8); -- 输出: 4
  4. ROUND():四舍五入

    sql 复制代码
    SELECT ROUND(4.567, 2); -- 输出: 4.57
  5. MOD():取模(取余数)

    sql 复制代码
    SELECT MOD(10, 3); -- 输出: 1
  6. POWER():幂运算

    sql 复制代码
    SELECT POWER(2, 3); -- 输出: 8
  7. SQRT():开平方

    sql 复制代码
    SELECT SQRT(16); -- 输出: 4

日期和时间函数

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

    sql 复制代码
    SELECT NOW(); -- 输出当前日期和时间
  2. CURDATE():当前日期

    sql 复制代码
    SELECT CURDATE(); -- 输出当前日期
  3. CURTIME():当前时间

    sql 复制代码
    SELECT CURTIME(); -- 输出当前时间
  4. DATE():提取日期部分

    sql 复制代码
    SELECT DATE(NOW()); -- 输出当前日期部分
  5. TIME():提取时间部分

    sql 复制代码
    SELECT TIME(NOW()); -- 输出当前时间部分
  6. DATEDIFF():计算日期差

    sql 复制代码
    SELECT DATEDIFF('2024-12-31', '2024-01-01'); -- 输出: 364
  7. DATE_ADD():日期加上时间间隔

    sql 复制代码
    SELECT DATE_ADD('2024-01-01', INTERVAL 10 DAY); -- 输出: '2024-01-11'
  8. DATE_SUB():日期减去时间间隔

    sql 复制代码
    SELECT DATE_SUB('2024-01-01', INTERVAL 10 DAY); -- 输出: '2023-12-22'

条件函数

  1. IF():条件判断

    sql 复制代码
    SELECT IF(1 > 0, 'true', 'false'); -- 输出: 'true'
  2. IFNULL():判断是否为NULL

    sql 复制代码
    SELECT IFNULL(NULL, 'default'); -- 输出: 'default'
  3. CASE:条件表达式

    sql 复制代码
    SELECT CASE
               WHEN score >= 90 THEN 'A'
               WHEN score >= 80 THEN 'B'
               WHEN score >= 70 THEN 'C'
               ELSE 'F'
           END AS grade
    FROM students;

聚合函数

  1. COUNT():计数

    sql 复制代码
    SELECT COUNT(*) FROM employees; -- 输出员工总数
  2. SUM():求和

    sql 复制代码
    SELECT SUM(salary) FROM employees; -- 输出薪水总和
  3. AVG():平均值

    sql 复制代码
    SELECT AVG(salary) FROM employees; -- 输出平均薪水
  4. MAX():最大值

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

    sql 复制代码
    SELECT MIN(salary) FROM employees; -- 输出最小薪水

JSON 函数(从MySQL 5.7开始)

  1. JSON_EXTRACT():提取JSON数据

    sql 复制代码
    SELECT JSON_EXTRACT('{"name": "John", "age": 30}', '$.name'); -- 输出: 'John'
  2. JSON_UNQUOTE():去掉JSON字符串的引号

    sql 复制代码
    SELECT JSON_UNQUOTE(JSON_EXTRACT('{"name": "John"}', '$.name')); -- 输出: John
  3. JSON_OBJECT():创建JSON对象

    sql 复制代码
    SELECT JSON_OBJECT('name', 'John', 'age', 30); -- 输出: {"name": "John", "age": 30}
  4. JSON_ARRAY():创建JSON数组

    sql 复制代码
    SELECT JSON_ARRAY('apple', 'banana', 'cherry'); -- 输出: ["apple", "banana", "cherry"]
  5. JSON_MERGE():合并两个JSON对象

    sql 复制代码
    SELECT JSON_MERGE('{"name": "John"}', '{"age": 30}'); -- 输出: {"name": "John", "age": 30}
相关推荐
名字还没想好☜20 分钟前
Kubernetes StatefulSet 实战:为什么数据库不能用 Deployment 部署
数据库·云原生·容器·kubernetes·statefulset
01_ice1 小时前
MySQL事务
数据库·mysql
名字还没想好☜1 小时前
Go 的 database/sql 连接池实战:SetMaxOpenConns 怎么配、连接泄漏怎么查
数据库·sql·golang·go·数据库连接池
大眼、不聚光2 小时前
2.oracle--表空间管理
数据库·oracle
字节跳动数据库2 小时前
火山 PostgreSQL Serverless × 飞书妙搭:把 AI 装进数据库,一句话唤醒数据智能
数据库·人工智能·后端
玛丽莲茼蒿2 小时前
Redis(六)—— Redis高级
数据库·redis·缓存
Wang's Blog2 小时前
PostgreSQL笔记22: WAL日志与崩溃恢复原理
数据库·笔记·postgresql
陈聪.3 小时前
企业级 NoSQL 数据库 Redis 核心知识整理
数据库·redis·nosql
翼龙云_cloud3 小时前
腾讯云国际代理商:CDB数据库自动备份和异地灾备配置 从快照到跨区域恢复
运维·数据库·云计算·腾讯云
小屁孩你滑稽掉了3 小时前
prisma操作数据库的方法使用教程(简洁版)
数据库·node.js·prisma·fastify