MySQL数据库原理与实践(五):内置函数
本篇目标了解 MySQL 内置函数的概念及作用掌握函数的基本使用方式。掌握常用字符串函数、数值函数、日期函数的使用方法能够对数据进行简单处理。掌握聚合函数的使用能够完成数据统计与分析操作。掌握条件判断函数的使用实现 SQL 中的数据逻辑处理。能够在实际 SQL 查询中灵活运用内置函数提高数据查询和处理能力。一.函数1.日期函数1.1.介绍与简单使用函数名称描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回 datetime 参数的日期部分date_add(date, interval d_value_type)在 date 中添加日期或时间interval 后的数值单位可以是year、month、day、hour、minute、seconddate_sub(date, interval d_value_type)在 date 中减去日期或时间interval 后的数值单位可以是year、month、day、hour、minute、seconddatediff(date1, date2)两个日期的差单位是天now()当前日期时间使用案例1.获得年月日select current_date();2.获得时分秒select current_time();3.获得时间戳也就是具体的时间select current_timestamp();select now();注意在 MySQL 中current_timestamp()和now()返回值和功能基本一致主要区别在于前者属于 SQL 标准函数后者是 MySQL 中更常用、更简洁的写法。4.在日期的基础上加日期:select date_add(2017-10-28, interval 10 day); select date_add(2017-10-28, interval 10 year); select date_add(2017-10-28, interval 10 month);5.在日期的基础上减去时间select date_sub(2027-10-1, interval 2 day); select date_sub(2027-10-1, interval 2 month); select date_sub(2027-10-1, interval 2 year);6.计算两个日期之间相差多少天:select datediff(2027-10-10, 2066-9-1);1.2.案例演示1.创建一张表记录生日create table tmp( id int primary key auto_increment, birthday date );insert into tmp (birthday) values(current_date());2.创建一个留言表create table msg( id int primary key auto_increment, content varchar(30) not null, sendtime datetime );insert into msg(content,sendtime) values(hello1, now()); insert into msg(content,sendtime) values(少偶好甜, now());当我们想要显示所有留言信息发布日期只显示日期不用显示具体时间时select content,date(sendtime) from msg;如果是查询在2分钟内发布的帖子可以如图理解insert into msg(content,sendtime) values(少偶99, now()); select * from msg where date_add(sendtime, interval 2 minute) now();2.字符串函数2.1.介绍函数名称描述charset(str)返回字符串的字符集concat(string1 [, string2, ...])连接多个字符串instr(string, substring)返回substring在string中首次出现的位置未找到返回0ucase(string)将字符串转换为大写lcase(string)将字符串转换为小写left(string, length)从字符串左边截取length个字符length(string)返回字符串的长度字节数replace(str, search_str, replace_str)将字符串str中的search_str替换为replace_strstrcmp(string1, string2)逐字符比较两个字符串的大小substring(str, position [, length])从str的position位置开始截取length个字符省略length时截取到末尾ltrim(string)去除字符串左侧空格rtrim(string)去除字符串右侧空格trim(string)去除字符串两端空格2.2.使用实例注意此次出现的表是之前已经创建好了的1.获取emp表的ename列的字符集:select charset(ename) from emp;2.要求显示exam_result表中的信息显示格式“XXX的语文是XXX分数学XXX分英语XXX分”select concat(name, 的语文是,chinese,分数学是,math,分) as 分数 from exam_result;3.求学生表中学生姓名占用的字节数:select length(name), name from exam_result;注意length函数返回字符串长度以字节为单位如果是多字节字符则计算多个字节数 如果是单字节字符则算作一个字节。比如字母数字算作一个字节中文表示多个字节数 与字符集编码有关例如4.将emp表中所有名字中有S的替换成上海:select replace(ename, s, 上海) ,ename from emp;5.字符串转大小写select ucase(ASDddf); select ucase(aaaddf); select lcase(ASDFGH); select lcase(ASsdgsGH);6.截取emp表中ename字段的第二个到第三个字符:select substring(ename, 2, 2), ename from emp;7.以首字母小写的方式显示所有员工的姓名:8.去除字符串空格select ltrim( sdssf); select rtrim(sdssf ); select rtrim( sdssf );8.逐字符比较两个字符串的大小:select strcmp(fgdsf,dsdsd);3.数学函数1.介绍函数名称描述abs(number)返回绝对值bin(decimal_number)将十进制数转换为二进制hex(decimal_number)将十进制数转换为十六进制conv(number, from_base, to_base)在不同进制之间转换ceiling(number)向上取整floor(number)向下取整format(number, decimal_places)格式化数字并保留指定的小数位数rand()返回[0.0, 1.0)范围内的随机浮点数mod(number, denominator)取模求余数2.使用案例1.绝对值:select abs(-1); select abs(-100);2.进制转换select bin(10); select bin(100);select hex(16); select hex(160);select conv(10,10,2); //10进制到二进制的转换 select conv(10,10,3); //10进制到三进制的转换 select conv(10,10,16); //10进制到十六进制的转换3.取整:select ceiling(23.04); select floor(23.04);4.保留2位小数位数小数四舍五入):select format(12.3456, 2); select format(3.1415926, 2); select format(3.1415926, 10);5.产生随机数:select rand(); select rand();想要较大的值直接乘以10的倍数即可select rand()*1000;6.取模求余数:select mod(10,2); select mod(10,3); select mod(100,5.6);4.其它函数1.user() 查询当前用户:select user();2.md5(str)对一个字符串进行md5摘要摘要后得到一个32位字符串:select md5(admin);3.database()显示当前正在使用的数据库:select database();4.password()函数MySQL数据库使用该函数对用户加密:select password(root);5.ifnullval1 val2 如果val1为null返回val2否则返回val1的值:select ifnull(abc, 123); select ifnull(null, 123);总结本篇我们学习了 MySQL 中常用的内置函数包括日期函数、字符串函数、数学函数以及其它常用函数。日期函数主要用于获取和处理日期、时间数据能够方便地完成时间计算、日期格式化等操作字符串函数可以对字符串进行拼接、截取、替换、大小写转换等处理数学函数提供了绝对值、取整、随机数、进制转换等常见数学运算此外还学习了user()、database()、md5()、ifnull()等实用函数在实际开发中能够帮助我们快速完成数据处理和业务逻辑。熟练掌握这些内置函数不仅能够简化 SQL 语句提高开发效率还能减少应用层代码的编写使数据处理更加灵活、高效为后续学习 MySQL 的高级查询、视图、存储过程等内容打下坚实的基础。

相关新闻

Hot-153 寻找旋转排序数组中的最小值

Hot-153 寻找旋转排序数组中的最小值

解法&#xff1a;一半一定有序的二分查找 class Solution:def findMin(self, nums: List[int]) -> int:# 一半一定是有序的numMin nums[0]left,right 0 , len(nums) - 1while left < right:mid (left right) // 2if nums[mid] < numMin:numMin nums[mid]# 左边有…

2026/10/19 14:52:54 阅读更多 →
全能工具箱:电脑检测与管理的综合效率工具

全能工具箱:电脑检测与管理的综合效率工具

1. 项目概述&#xff1a;全能工具箱的价值与定位这个名为"免费工具箱"的软件产品&#xff0c;本质上是一个集成了电脑检测与管理功能的综合型效率工具。作为一名长期与各类系统工具打交道的IT从业者&#xff0c;我深知这类工具在实际工作中的重要性。它不像那些功能单…

2026/10/20 15:28:50 阅读更多 →
Unity与AI骨骼检测:5分钟实现低成本体感游戏开发

Unity与AI骨骼检测:5分钟实现低成本体感游戏开发

1. 项目概述&#xff1a;当Unity遇见AI骨骼检测最近几年&#xff0c;AI技术从云端“下凡”&#xff0c;开始实实在在地改变我们做游戏的方式。以前想做个体感游戏&#xff0c;要么得上昂贵的硬件&#xff0c;比如Kinect或者专门的动捕设备&#xff0c;要么就得写一堆复杂的图像…

2026/10/17 18:44:15 阅读更多 →

最新新闻

AI编程项目如何避免90天腐烂?构建可验证迭代闭环

AI编程项目如何避免90天腐烂?构建可验证迭代闭环

1. 这不是危言耸听&#xff1a;AI编程项目“烂掉”的真实时间线“你的 AI 编程项目迟早会烂掉&#xff0c;除非你做了这件事”——这句话刚在某技术社区刷屏时&#xff0c;我正盯着一个上线才三个月的智能代码补全插件发呆。它最初能准确预测87%的函数调用&#xff0c;现在连基…

2026/10/20 21:01:55 阅读更多 →
云真机CLI化:用adb命令无缝接入云端设备实现自动化测试

云真机CLI化:用adb命令无缝接入云端设备实现自动化测试

1. 从"云真机只能网页点点点"到CLI接管&#xff1a;这个项目要解决的问题做Android开发或者测试的同行应该都有这种经历&#xff1a;手头的真机就那几台&#xff0c;系统版本覆盖不全&#xff0c;异构屏占比机型更是一机难求。遇到需要验证老版本兼容性、多机型回归、…

2026/10/20 21:01:55 阅读更多 →
C++学习之命名空间详解

C++学习之命名空间详解

前言 命名空间&#xff08;namespace&#xff09;解决的是「名字冲突」这个古老问题。两个库都提供了 init()&#xff0c;两个头文件都定义了 Node&#xff0c;如果没有命名空间&#xff0c;把它们放进同一个程序就会撞名。C 的做法是把名字放进不同的作用域容器&#xff0c;用…

2026/10/20 21:01:55 阅读更多 →
Hadoop开发环境搭建实战:Eclipse集成与WordCount调试

Hadoop开发环境搭建实战:Eclipse集成与WordCount调试

1. 为什么还要回头啃 Hadoop 环境搭建这块硬骨头大数据入门这条路上&#xff0c;有个特别有意思的现象&#xff1a;很多人能跟你聊明白 MapReduce 的 Shuffle 过程&#xff0c;能画得出 HDFS 的架构图&#xff0c;但真让他从零把一套本地开发环境跑起来&#xff0c;立马卡壳。我…

2026/10/20 21:01:55 阅读更多 →
Hadoop入门实战:从伪分布式环境搭建到WordCount完整跑通

Hadoop入门实战:从伪分布式环境搭建到WordCount完整跑通

1. 为什么我要重新认真梳理Hadoop入门这件事大数据这个词现在几乎成了每个技术团队的标配&#xff0c;不管你是做后端、做数据分析还是做运维&#xff0c;只要公司数据量一上来&#xff0c;Hadoop这三个字就绕不开。但说实话&#xff0c;我见过太多人卡在入门这一步——不是被M…

2026/10/20 21:01:55 阅读更多 →
多模态情绪识别与情感计算在心理咨询中的落地实践

多模态情绪识别与情感计算在心理咨询中的落地实践

我最早接触情感计算在心理咨询里的应用&#xff0c;是陪着一位做咨询师督导的朋友复盘一段录像。录像里&#xff0c;来访者全程语气平稳、表情克制&#xff0c;嘴里反复说着“都还好、能应付”。朋友凭二十年的临床经验判断这人状态不对&#xff0c;但被问到具体哪里不对&#…

2026/10/20 21:00:51 阅读更多 →

日新闻

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

CLRC663芯片Pin-to-Pin替代实战:从评估到量产全记录

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
ESP32舵机控制指南:原理、多路驱动与避坑实战

ESP32舵机控制指南:原理、多路驱动与避坑实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →
位移法实现一阶低通滤波:单片机ADC采样降噪实战

位移法实现一阶低通滤波:单片机ADC采样降噪实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 1:01:30 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型&#xff08;GMM&#xff09;的语音识别系统&#xff0c;很多人第一反应就是一堆数学公式&#xff0c;觉得门槛很高。但如果你真的在MATLAB里把它落地跑通&#xff0c;会发现核心其实就是三件事&#xff1a;把声音变成特征向量&#xff0c;用GMM给每个类别…

2026/10/20 10:02:13 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人&#xff0c;但落到具体操作上&#xff0c;无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程&#xff1a;对图像做反白、改调色板、彩色转灰度&#xff0c;最后把像素数据导出成txt文件。单看每一…

2026/10/20 20:43:59 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词&#xff0c;你会发现一个很有意思的现象&#xff1a;每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型&#xff0c;有人指的是运动控制系统&#xff0c;还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/20 2:50:50 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 10:02:08 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/20 9:50:45 阅读更多 →