• MySQL 常用函数 2022/09/06


    🔥MySQL 内置函数 🔥

    MySQL函数指的是MySQL数据库提供的内置函数,包含数学函数、字符串函数、日期和时间函数、聚合函数、条件判断函数等,这些内置函数可以帮助用户更方便的处理表中的数据简化用户的操作。

    函数描述
    数学函数如ABS、SQRT、MOD、SIN、COS、TAN、COT等
    字符串函数如LENGTH、LOWER、UPPER、TRIM、SUBSTRING等
    日期和时间函数如NOW、CURDATE、CURTIME、SYSDATE、DATE_FORMAT、YEAR、MONTH、WEEK等
    聚合函数COUNT、SUM、AVG、MIN、MAX
    条件判断函数IF、IFNULL、CASE WHEN等
    系统信息函数VERSION、DATABASE、USER等
    加密函数MD5、SHA1、SHA2等

    函数now()

    now函数用于返回当前的日期和函数。

    1. select now();
    2. +---------------------+
    3. | now() |
    4. +---------------------+
    5. | 2022-09-07 13:06:30 |
    6. +---------------------+
    7. 1 row in set (0.00 sec)

    应用场景:

    在实际应用中,大多数业务表都会带一个创建时间create_time字段,用于记录每一条数据产生时间。在向表中插入数据时,就可以在insert语句中使用now()函数。

    1. create table tb_user(id int not null auto_increment primary key,
    2. name varchar(30) comment '姓名', create_time datetime comment '创建时间');
    1. desc tb_user;
    2. +-------------+-------------+------+-----+---------+----------------+
    3. | Field | Type | Null | Key | Default | Extra |
    4. +-------------+-------------+------+-----+---------+----------------+
    5. | id | int | NO | PRI | NULL | auto_increment |
    6. | name | varchar(30) | YES | | NULL | |
    7. | create_time | datetime | YES | | NULL | |
    8. +-------------+-------------+------+-----+---------+----------------+
    9. 3 rows in set (0.01 sec)
    1. mysql> insert into tb_user(name,create_time) values('大哥',now());
    2. Query OK, 1 row affected (0.01 sec)
    3. mysql> select * from tb_user;
    4. +----+------+---------------------+
    5. | id | name | create_time |
    6. +----+------+---------------------+
    7. | 1 | 大哥 | 2022-09-07 13:23:53 |
    8. +----+------+---------------------+
    9. 1 row in set (0.00 sec)

    函数date_format()

    用于指定格式显示日期/时间

    1. select date_format(now(),'%Y/%m/%d %H:%i:%s');
    2. +----------------------------------------+
    3. | date_format(now(),'%Y/%m/%d %H:%i:%s') |
    4. +----------------------------------------+
    5. | 2022/09/07 13:57:07 |
    6. +----------------------------------------+
    7. 1 row in set (0.01 sec)

    使用场景

    在实际应用中,一般会按照标准格式存储日期/时间,如2020-12-12 12:12:12 。在查询使用数据时,往往又会有不同的格式要求,这时就需要使用date_format()函数进行格式转换。

    1. select name,date_format(create_time,'%Y/%m/%d') from tb_user;
    2. +------+-------------------------------------+
    3. | name | date_format(create_time,'%Y/%m/%d') |
    4. +------+-------------------------------------+
    5. | 大哥 | 2022/09/07 |
    6. +------+-------------------------------------+
    7. 1 row in set (0.01 sec)

     🔥聚合函数 🔥

    聚合函数是对一组值进行计算,并返回单个值。MySQL常用的聚合函数有5个,分别是count、sum、avg、min和max。

    函数描述
    count返回符合条件的记录总数
    sum返回指定列的总和,忽略空值
    avg返回指定列的平均值,忽略空值
    min返回指定列的最小值,忽略空值
    max返回指定列的最大值,忽略空值

     🔥函数ifnull() 🔥

    函数ifnull()用于处理NULL值。ifnull(v1,v2),如果v1的值不为NULL,则返回v1,否则返回v2。

    1. mysql> select ifnull('大哥','张三');
    2. +-----------------------+
    3. | ifnull('大哥','张三') |
    4. +-----------------------+
    5. | 大哥 |
    6. +-----------------------+
    7. 1 row in set (0.00 sec)
    8. mysql> select * from tb_user;
    9. +----+------+---------------------+
    10. | id | name | create_time |
    11. +----+------+---------------------+
    12. | 1 | 大哥 | 2022-09-07 13:23:53 |
    13. +----+------+---------------------+
    14. 1 row in set (0.00 sec)
    15. mysql> select ifnull('李四','王五');
    16. +-----------------------+
    17. | ifnull('李四','王五') |
    18. +-----------------------+
    19. | 李四 |
    20. +-----------------------+
    21. 1 row in set (0.00 sec)
    22. mysql> select ifnull(null,'老二');
    23. +---------------------+
    24. | ifnull(null,'老二') |
    25. +---------------------+
    26. | 老二 |
    27. +---------------------+
    28. 1 row in set (0.00 sec)

    🔥 case when 🔥 

    case when 是流程控制语句,可以在SQL语句中使用case when 来获取更加准确和直接的结果。SQL中的case when类似于编程语言中的if else或者switch。

    case when的语法有两种

    1. CASE [col_name] WHEN [value1] THEN [result1] ... ELSE [default] END
    2. CASE WHEN [expr] THEN [result1] ... ELSE [default] END
    1. select id,name,case sex when '1' then '男' when '2' then '女' else '未知' end as sex from tb_user;
    2. +----+----------+-----+
    3. | id | name | sex |
    4. +----+----------+-----+
    5. | 1 | 大哥 | 男 |
    6. | 2 | 小妹 | 女 |
    7. | 3 | 小妹妹 | 女 |
    8. | 4 | 大哥哥 | 男 |
    9. | 5 | 大哥哥哥 | 男 |
    10. +----+----------+-----+
    11. 5 rows in set (0.00 sec)

     🔥 abs() 🔥

    1. mysql> select abs(-10);
    2. +----------+
    3. | abs(-10) |
    4. +----------+
    5. | 10 |
    6. +----------+
    7. 1 row in set (0.00 sec)
    8. mysql> select abs(-100.00);
    9. +--------------+
    10. | abs(-100.00) |
    11. +--------------+
    12. | 100.00 |
    13. +--------------+
    14. 1 row in set (0.00 sec)

    🔥 length() 🔥 

    1. mysql> select length("好好");
    2. +----------------+
    3. | length("好好") |
    4. +----------------+
    5. | 4 |
    6. +----------------+
    7. 1 row in set (0.00 sec)
    8. mysql> select length("好好学习");
    9. +--------------------+
    10. | length("好好学习") |
    11. +--------------------+
    12. | 8 |
    13. +--------------------+
    14. 1 row in set (0.00 sec)
    15. mysql> select length("length");
    16. +------------------+
    17. | length("length") |
    18. +------------------+
    19. | 6 |
    20. +------------------+
    21. 1 row in set (0.00 sec)

     🔥 count(*) 🔥 

    1. mysql> select count(*) from tb_user;
    2. +----------+
    3. | count(*) |
    4. +----------+
    5. | 5 |
    6. +----------+
    7. 1 row in set (0.01 sec)
    8. mysql> select count(*) from employee;
    9. +----------+
    10. | count(*) |
    11. +----------+
    12. | 3 |
    13. +----------+
    14. 1 row in set (0.02 sec)
    1. select count(*) from tb_user where sex='1';
    2. +----------+
    3. | count(*) |
    4. +----------+
    5. | 3 |
    6. +----------+
    7. 1 row in set (0.00 sec)
    1. select count(*) from tb_user where sex='2';
    2. +----------+
    3. | count(*) |
    4. +----------+
    5. | 2 |
    6. +----------+
    7. 1 row in set (0.00 sec)

     🔥 sum() 🔥 

    1. select sum(salary) from employee;
    2. +-------------+
    3. | sum(salary) |
    4. +-------------+
    5. | 14500 |
    6. +-------------+
    7. 1 row in set (0.00 sec)

    🔥 avg() 🔥  

    1. select avg(salary) from employee;
    2. +-------------+
    3. | avg(salary) |
    4. +-------------+
    5. | 4833.3333 |
    6. +-------------+
    7. 1 row in set (0.00 sec)

    🔥 max() 🔥  

    1. select max(salary) from employee;
    2. +-------------+
    3. | max(salary) |
    4. +-------------+
    5. | 5500 |
    6. +-------------+
    7. 1 row in set (0.00 sec)

    🔥 min() 🔥 

    1. select min(salary) from employee;
    2. +-------------+
    3. | min(salary) |
    4. +-------------+
    5. | 4500 |
    6. +-------------+
    7. 1 row in set (0.00 sec)

     🔥 md5() 🔥 

    1. select md5("md5");
    2. +----------------------------------+
    3. | md5("md5") |
    4. +----------------------------------+
    5. | 1bc29b36f623ba82aaf6724fd3b16718 |
    6. +----------------------------------+
    7. 1 row in set (0.01 sec)
  • 相关阅读:
    DQL语言进阶3
    2195. 深海机器人问题(网络流,费用流,上下界可行流,网格图模型)
    java调用jni全流程,简洁易懂!
    6. Go的切片
    java-php-python-基于Web的社区商超系统的设计与实现计算机毕业设计
    【C语言小游戏--猜数字】
    《Web安全基础》04. 文件操作安全
    Spring Boot 热部署与日志
    30WSIP网络号角喇叭
    java.sql.Date、java.sql.Time 和 java.sql.Timestamp
  • 原文地址:https://blog.csdn.net/u013491829/article/details/126725653