当前位置: 首页 > news >正文

MySQL————内置函数

1.日期函数

1.1 获得年月时间

mysql> select current_date();
+----------------+
| current_date() |
+----------------+
| 2025-10-15     |
+----------------+
1 row in set (0.00 sec)

1.2 获得时分秒

mysql> select current_time();
+----------------+
| current_time() |
+----------------+
| 20:53:37       |
+----------------+
1 row in set (0.00 sec)

1.3 获取时间戳

mysql> select current_timestamp();
+---------------------+
| current_timestamp() |
+---------------------+
| 2025-10-15 20:54:21 |
+---------------------+
1 row in set (0.05 sec)

1.4 获取当前日期时间

mysql> select now();
+---------------------+
| now()               |
+---------------------+
| 2025-10-15 20:56:18 |
+---------------------+
1 row in set (0.00 sec)

1.5 date函数:返回date参数的日期部分

mysql> select date(now());
+-------------+
| date(now()) |
+-------------+
| 2025-10-15  |
+-------------+
1 row in set (0.00 sec)

1.6 在日期的基础上加日期

mysql> select date_add('2025-01-12',interval 10 day);
+----------------------------------------+
| date_add('2025-01-12',interval 10 day) |
+----------------------------------------+
| 2025-01-22                             |
+----------------------------------------+
1 row in set (0.11 sec)mysql> select date_add(now(),interval 10 day);
+---------------------------------+
| date_add(now(),interval 10 day) |
+---------------------------------+
| 2025-10-25 21:09:52             |
+---------------------------------+
1 row in set (0.00 sec)

1.7 计算两个日期之间相差多少天

mysql> select datediff(now(),'2024-09-19');
+------------------------------+
| datediff(now(),'2024-09-19') |
+------------------------------+
|                          391 |
+------------------------------+
1 row in set (0.01 sec)

2.字符串函数

2.1 charset函数

mysql> select charset('abcd');
+-----------------+
| charset('abcd') |
+-----------------+
| utf8            |
+-----------------+
1 row in set (0.02 sec)--获取emp表的ename列的字符集
select charset(ename) from EMP;

2.2 concat函数

mysql> select concat('a','b',12,3.12);
+-------------------------+
| concat('a','b',12,3.12) |
+-------------------------+
| ab123.12                |
+-------------------------+
1 row in set (0.00 sec)
--要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”
select concat(name, '的语文是',chinese,'分,数学是',math,'分') as '分数' from student;

2.3 instr函数

--1234在abcd1234efg的起始位置是5
mysql> select instr('abcd1234efg','1234');
+-----------------------------+
| instr('abcd1234efg','1234') |
+-----------------------------+
|                           5 |
+-----------------------------+
1 row in set (0.07 sec)

2.4 ucase函数

mysql> select ucase('abcd1234');
+-------------------+
| ucase('abcd1234') |
+-------------------+
| ABCD1234          |
+-------------------+
1 row in set (0.00 sec)

2.5 lcase函数

mysql> select lcase('ABCD1234');
+-------------------+
| lcase('ABCD1234') |
+-------------------+
| abcd1234          |
+-------------------+
1 row in set (0.00 sec)

2.6 left函数

mysql> select left('abcd1234',3);
+--------------------+
| left('abcd1234',3) |
+--------------------+
| abc                |
+--------------------+
1 row in set (0.00 sec)

2.7 length函数

mysql> select length('abcd1234');
+--------------------+
| length('abcd1234') |
+--------------------+
|                  8 |
+--------------------+
1 row in set (0.01 sec)--求学生表中学生姓名占用的字节数
select length(name), name from student;

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。

比如:字母、数字算作一个字节,中文表示多个字节数(与字符集编码有关)

2.8 replace函数

--将emp表中所有名字中有S的替换成'上海'
mysql> select ename,replace(ename,'S','上海') from emp;
+--------+-----------------------------+
| ename  | replace(ename,'S','上海')   |
+--------+-----------------------------+
| SMITH  | 上海MITH                    |
| ALLEN  | ALLEN                       |
| WARD   | WARD                        |
| JONES  | JONE上海                    |
| MARTIN | MARTIN                      |
| BLAKE  | BLAKE                       |
| CLARK  | CLARK                       |
| SCOTT  | 上海COTT                    |
| KING   | KING                        |
| TURNER | TURNER                      |
| ADAMS  | ADAM上海                    |
| JAMES  | JAME上海                    |
| FORD   | FORD                        |
| MILLER | MILLER                      |
+--------+-----------------------------+
14 rows in set (0.13 sec)

2.8 substring函数

--截取emp表中ename字段的第二个到第三个字符
mysql> select substring(ename,2,2),ename from emp;
+----------------------+--------+
| substring(ename,2,2) | ename  |
+----------------------+--------+
| MI                   | SMITH  |
| LL                   | ALLEN  |
| AR                   | WARD   |
| ON                   | JONES  |
| AR                   | MARTIN |
| LA                   | BLAKE  |
| LA                   | CLARK  |
| CO                   | SCOTT  |
| IN                   | KING   |
| UR                   | TURNER |
| DA                   | ADAMS  |
| AM                   | JAMES  |
| OR                   | FORD   |
| IL                   | MILLER |
+----------------------+--------+
14 rows in set (0.00 sec)

2.9 补充案例

以首字母小写的方式显示所有员工的姓名

mysql> select ename,concat(lcase(substring(ename,1,1)),substring(ename,2)) from emp;
+--------+--------------------------------------------------------+
| ename  | concat(lcase(substring(ename,1,1)),substring(ename,2)) |
+--------+--------------------------------------------------------+
| SMITH  | sMITH                                                  |
| ALLEN  | aLLEN                                                  |
| WARD   | wARD                                                   |
| JONES  | jONES                                                  |
| MARTIN | mARTIN                                                 |
| BLAKE  | bLAKE                                                  |
| CLARK  | cLARK                                                  |
| SCOTT  | sCOTT                                                  |
| KING   | kING                                                   |
| TURNER | tURNER                                                 |
| ADAMS  | aDAMS                                                  |
| JAMES  | jAMES                                                  |
| FORD   | fORD                                                   |
| MILLER | mILLER                                                 |
+--------+--------------------------------------------------------+
14 rows in set (0.00 sec)

3.数学函数

3.1 绝对值

select abs(-998);

3.2 向上取整

select ceiling(23.04);

4.其它函数

4.1 user() 查询当前用户

mysql> select user();
+--------+
| user() |
+--------+
| root@  |
+--------+
1 row in set (0.00 sec)

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

mysql> select md5('admin');
+----------------------------------+
| md5('admin')                     |
+----------------------------------+
| 21232f297a57a5a743894a0e4a801fc3 |
+----------------------------------+
1 row in set (0.00 sec)

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

select database();

4.4 password()函数,MySQL数据库使用该函数对用户加密

mysql> select password('root');
+-------------------------------------------+
| password('root')                          |
+-------------------------------------------+
| *81F5E21E35407D884A6CD4A731AEBFB6AF209E1B |
+-------------------------------------------+
1 row in set, 1 warning (0.00 sec)

4.5 ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

select ifnull('abc', '123');
+----------------------+
| ifnull('abc', '123') |
+----------------------+
| abc                  |
+----------------------+
1 row in set (0.01 sec)select ifnull(null, '123');
+---------------------+
| ifnull(null, '123') |
+---------------------+
| 123                 |
+---------------------+
1 row in set (0.00 sec)

http://www.dtcms.com/a/486714.html

相关文章:

  • 精通iptables:从基础到实战安全配置
  • OpenAI发布构建AI智能体的实践指南:实用框架、设计模式与最佳实践解析
  • 如何使用网站模板金华关键词优化平台
  • php大气企业网站东莞邦邻网站建设
  • 简述php网站开发流程网站 设计公司 温州
  • thinkphp8+layui多图上传,带删除\排序功能
  • LeetCode 合并K个升序链表
  • FFmpeg 基本API avformat_alloc_context 函数内部调用流程分析
  • ubuntu系统中ffmpeg+x264简易编译安装指南
  • FLAC to MP3 批量转换 Python
  • 开源鸿蒙6.1和8.1版本被确定为LTS建议版本,最新路标正式发布!-转自开源鸿蒙OpenHarmony社区
  • linux sdl图形编程之helloworld.
  • 开发一个网站系统报价电子商务网站建设试卷及答案
  • 瑞芯微算法环境搭建(2)------编译opencv
  • 计算机视觉(opencv)——人脸网格关键点检测
  • 自己做网站投入编程培训机构需要哪些证件
  • AXI总线的基础知识
  • 【泛微OA】泛微OA平台实现计算具体的天数
  • 「深度学习笔记1」深度学习全面解析:从基本概念到未来趋势
  • puppeteer 生成pdf,含动态目录,目录带页码
  • 深度学习的卷积神经网络中医舌诊断病系统-ResNet50与VGG16方法的比较研究
  • 如何查看网站空间wordpress图片多选
  • Android的Activity与intent知识点
  • 一、前置基础(MVC学习前提)_核心特性_【C# MVC 前置】委托与事件:从 “小区通知” 看懂 MVC 过滤器的底层逻辑
  • 网站建设年度汇报详情页设计理念怎么写
  • Spring Boot项目中Maven引入依赖常见报错问题解决
  • Android 13 启动的时候会显示一下logo,很不友好
  • seo网站快速排名外包关键词seo排名优化如何
  • Linux防火墙:核心机制与安全实践全解析
  • SX1261IMLTRT射频收发器Semtech赋能远距离物联网连接的低功耗射频芯片IC