【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♪(・ω・)ノ

相关推荐
Zfox_8 分钟前
【Linux】进程信号全攻略(二)
linux·运维·c语言·c++
gavin_gxh10 分钟前
ORACLE 删除archivelog日志
数据库·oracle
一叶飘零_sweeeet13 分钟前
MongoDB 基础与应用
数据库·mongodb
安於宿命13 分钟前
【Linux】简易版shell
linux·运维·服务器
黄小耶@25 分钟前
linux常见命令
linux·运维·服务器
叫我龙翔26 分钟前
【计网】实现reactor反应堆模型 --- 框架搭建
linux·运维·网络
古驿幽情28 分钟前
CentOS AppStream 8 手动更新 yum源
linux·运维·centos·yum
猿小喵29 分钟前
DBA之路,始于足下
数据库·dba
BillKu29 分钟前
Linux(CentOS)安装 Nginx
linux·运维·nginx·centos
BillKu32 分钟前
Linux(CentOS)yum update -y 事故
linux·运维·centos