【MySQL】内置函数

目录

🌈前言🌈

[📁 日期函数](#📁 日期函数)

[📁 字符串函数](#📁 字符串函数)

[📁 数学函数](#📁 数学函数)

[📁 其他函数](#📁 其他函数)

[📁 总结](#📁 总结)


🌈前言🌈

欢迎收看本期【MySQL】,本期内容将介绍MySQL中的内置函数,其中包含了日期函数,字符串函数,数学函数以及其他的一些函数,从功能到使用等方面介绍这些函数。

📁 日期函数

● 获得年月日

sql 复制代码
mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2024-09-25     |
+----------------+

● 获得时分秒

sql 复制代码
mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 20:47:18       |
+----------------+

● 获得时间戳

sql 复制代码
mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2024-09-25 20:48:04 |
+---------------------+

● 获得日期的基础上加日期

sql 复制代码
mysql> select date_add('2024-10-1',interval 10 day);
+---------------------------------------+
| date_add('2024-10-1',interval 10 day) |
+---------------------------------------+
| 2024-10-11                            |
+---------------------------------------+

//interval 后面的单位可以是 year,month,day,hour,minute,second

● 在日期的基础上减去时间:

sql 复制代码
mysql> select date_sub('2024-10-1' , interval 1 hour);
+-----------------------------------------+
| date_sub('2024-10-1' , interval 1 hour) |
+-----------------------------------------+
| 2024-09-30 23:00:00                     |
+-----------------------------------------+

● 计算两个日期之差:

sql 复制代码
mysql> select datediff('2024-10-1','1949-10-1');
+-----------------------------------+
| datediff('2024-10-1','1949-10-1') |
+-----------------------------------+
|                             27394 |
+-----------------------------------+

📁 字符串函数

● 获得表中某列的字符集

sql 复制代码
mysql> select charset(ename) from emp;
+----------------+
| charset(ename) |
+----------------+
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
| utf8mb3        |
+----------------+

● 拼接字符串

sql 复制代码
mysql> select * from student;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  9 | 刘备      |   18 |
| 10 | 关羽      |   18 |
| 11 | 张飞      |   18 |
| 12 | 曹操      |   19 |
| 13 | 孙策      |   20 |
| 14 | 孙权      |   20 |
| 15 | 孙尚香    |   20 |
+----+-----------+------+
7 rows in set (0.00 sec)

mysql> select concat(name ,'的年龄是' ,age) as 年龄 from student;
+-------------------------+
| 年龄                    |
+-------------------------+
| 刘备的年龄是18          |
| 关羽的年龄是18          |
| 张飞的年龄是18          |
| 曹操的年龄是19          |
| 孙策的年龄是20          |
| 孙权的年龄是20          |
| 孙尚香的年龄是20        |
+-------------------------+

● 求某列所用的字节数

sql 复制代码
mysql> select * from student;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  9 | 刘备      |   18 |
| 10 | 关羽      |   18 |
| 11 | 张飞      |   18 |
| 12 | 曹操      |   19 |
| 13 | 孙策      |   20 |
| 14 | 孙权      |   20 |
| 15 | 孙尚香    |   20 |
+----+-----------+------+
7 rows in set (0.00 sec)

mysql> select length(name) from student;
+--------------+
| length(name) |
+--------------+
|            6 |
|            6 |
|            6 |
|            6 |
|            6 |
|            6 |
|            9 |
+--------------+

● 替换字符串

sql 复制代码
mysql> select * from student;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  9 | 刘备      |   18 |
| 10 | 关羽      |   18 |
| 11 | 张飞      |   18 |
| 12 | 曹操      |   19 |
| 13 | 孙策      |   20 |
| 14 | 孙权      |   20 |
| 15 | 孙尚香    |   20 |
+----+-----------+------+

mysql> select replace(name,'孙','S') from student;
+-------------------------+
| replace(name,'孙','S')  |
+-------------------------+
| 刘备                    |
| 关羽                    |
| 张飞                    |
| 曹操                    |
| S策                     |
| S权                     |
| S尚香                   |
+-------------------------+

● 截取字符串的子串

sql 复制代码
mysql> select * from student;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  9 | 刘备      |   18 |
| 10 | 关羽      |   18 |
| 11 | 张飞      |   18 |
| 12 | 曹操      |   19 |
| 13 | 孙策      |   20 |
| 14 | 孙权      |   20 |
| 15 | 孙尚香    |   20 |
+----+-----------+------+
7 rows in set (0.00 sec)

mysql> select substr(name,1,1) from student;
+------------------+
| substr(name,1,1) |
+------------------+
| 刘               |
| 关               |
| 张               |
| 曹               |
| 孙               |
| 孙               |
| 孙               |
+------------------+

● 大小写转换

sql 复制代码
mysql> select * from student;
+----+-----------+------+
| id | name      | age  |
+----+-----------+------+
|  1 | smith     |   20 |
|  9 | 刘备      |   18 |
| 10 | 关羽      |   18 |
| 11 | 张飞      |   18 |
| 12 | 曹操      |   19 |
| 13 | 孙策      |   20 |
| 14 | 孙权      |   20 |
| 15 | 孙尚香    |   20 |
+----+-----------+------+
8 rows in set (0.00 sec)

mysql> select ucase(name) from student;
+-------------+
| ucase(name) |
+-------------+
| SMITH       |
| 刘备        |
| 关羽        |
| 张飞        |
| 曹操        |
| 孙策        |
| 孙权        |
| 孙尚香      |
+-------------+

📁 数学函数

● 绝对值

sql 复制代码
mysql> select abs(-100.1);
+-------------+
| abs(-100.1) |
+-------------+
|       100.1 |
+-------------+

● 向上取整

sql 复制代码
mysql> select ceiling(4.5);
+--------------+
| ceiling(4.5) |
+--------------+
|            5 |
+--------------+

● 向下取整

sql 复制代码
mysql> select floor(4.5);
+------------+
| floor(4.5) |
+------------+
|          4 |
+------------+

● 进制转换

sql 复制代码
mysql> select conv(10,10,16);
+----------------+
| conv(10,10,16) |
+----------------+
| A              |
+----------------+

● 格式化

sql 复制代码
mysql> select format(100.12345,2);
+---------------------+
| format(100.12345,2) |
+---------------------+
| 100.12              |
+---------------------+

● 产生随机数

sql 复制代码
mysql> select rand() * 1000;
+-------------------+
| rand() * 1000     |
+-------------------+
| 654.6384791421132 |
+-------------------+

📁 其他函数

● user():查询当前用户

sql 复制代码
mysql> select user();
+----------------+
| user()         |
+----------------+
| root@localhost |
+----------------+

● md5(str):对一个字符串进行md5摘要,摘要后得到一个32位字符串

sql 复制代码
mysql> select md5('ABCD123');
+----------------------------------+
| md5('ABCD123')                   |
+----------------------------------+
| c1a14d6139aee67b520c766321bd894d |
+----------------------------------+

● database():显示当前正在使用的数据库

sql 复制代码
mysql> select database();
+------------+
| database() |
+------------+
| test_db    |
+------------+

● ifnull(val1,val2):如果val1为null,返回val2,否则返回val1

sql 复制代码
mysql> select ifnull(null,4);
+----------------+
| ifnull(null,4) |
+----------------+
|              4 |
+----------------+
1 row in set (0.00 sec)

mysql> select ifnull(5,4);
+-------------+
| ifnull(5,4) |
+-------------+
|           5 |
+-------------+
1 row in set (0.00 sec)

📁 总结

以上就是本期【MySQL】的主要内容了,讲解了内置函数,有日期函数,字符串函数,数学函数以及其他函数,介绍了基本的功能的使用方式。

如果感觉本期内容对你有帮助,欢迎点赞,关注,收藏Thanks♪(・ω・)ノ

相关推荐
Championship.23.245 小时前
Linux 3.0 锁机制与故障排查详解
linux·运维·服务器
天疆说5 小时前
Zotero Connector 在 Edge 里找不到桌面 Zotero(Linux / Zotero 9.0.6 / Edge 150)
linux·前端·edge
AI-好学者6 小时前
阶段一-图数据库基础与PropertyGraph模型
数据库·rag·knowledge graph·graphrag
风123456789~7 小时前
【Linux专栏】ls 排除某个文件
linux·运维·服务器
IT曙光7 小时前
ubuntu apt-get离线源制作
linux·ubuntu
其实防守也摸鱼8 小时前
运维--学习阶段问题解答(1)(自测)
linux·运维·服务器·数据库·学习·自动化·命令模式
懒鸟一枚8 小时前
深入理解 Linux 内存、Swap 交换分区与分页机制的关系
java·linux·数据库
龙仔7258 小时前
SQL Server 创建只读账号完整操作(分两种场景:SSMS图形界面 + T-SQL脚本)
数据库·sql·oracle
霁月的小屋8 小时前
生产环境中的事务实践——银行系统上线记(四)
数据库
Database_Cool_9 小时前
AI 应用数据底座首选:阿里云 PolarDB 为大模型 RAG 提供一体化支撑
数据库·阿里云