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/8/3 5:24:37 阅读更多 →
全能工具箱:电脑检测与管理的综合效率工具

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

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

2026/8/3 5:24:37 阅读更多 →
Unity与AI骨骼检测:5分钟实现低成本体感游戏开发

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

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

2026/8/3 5:23:36 阅读更多 →

最新新闻

BeautifulSoup4实战:HTML解析与Python爬虫数据提取

BeautifulSoup4实战:HTML解析与Python爬虫数据提取

1. BeautifulSoup&#xff1a;HTML/XML解析利器解析作为Python生态中最受欢迎的HTML/XML解析库&#xff0c;BeautifulSoup凭借其"人性化"的API设计改变了网络数据提取的体验。不同于正则表达式的晦涩难懂&#xff0c;也不同于XPath的复杂语法&#xff0c;它允许开发者…

2026/8/3 6:11:59 阅读更多 →
终极指南:如何让老旧MacBook Pro焕发新生,运行最新macOS系统?

终极指南:如何让老旧MacBook Pro焕发新生,运行最新macOS系统?

终极指南&#xff1a;如何让老旧MacBook Pro焕发新生&#xff0c;运行最新macOS系统&#xff1f; 【免费下载链接】OpenCore-Legacy-Patcher Experience macOS just like before 项目地址: https://gitcode.com/GitHub_Trending/op/OpenCore-Legacy-Patcher 还在为手中老…

2026/8/3 6:11:59 阅读更多 →
解决PyTorch3D环境配置中的‘No module named torch‘错误

解决PyTorch3D环境配置中的‘No module named torch‘错误

1. 问题现象与初步诊断最近在配置PyTorch3D开发环境时&#xff0c;遇到了一个看似简单却困扰不少开发者的经典错误&#xff1a;"No module named torch"。这个报错出现在执行import torch或安装PyTorch3D时&#xff0c;表面看是Python找不到torch模块&#xff0c;但背…

2026/8/3 6:11:59 阅读更多 →
SpringBoot构建校园二手交易平台架构与优化实践

SpringBoot构建校园二手交易平台架构与优化实践

1. 项目概述 去年接手了一个校园二手交易平台的重构项目&#xff0c;用SpringBoot从零搭建了一套完整的系统。这个看似简单的需求背后&#xff0c;其实藏着不少技术门道。今天就把整个设计过程和实现细节完整分享出来&#xff0c;特别适合需要快速搭建交易类系统的开发者参考。…

2026/8/3 6:11:59 阅读更多 →
C语言指针进阶:二级指针、volatile与数组指针详解

C语言指针进阶:二级指针、volatile与数组指针详解

1. 指针的本质与内存视角在C语言的世界里&#xff0c;指针就像是一把双刃剑——用得好可以让你直接操控内存实现高效编程&#xff0c;用不好则会导致各种难以调试的崩溃和错误。要真正理解二级指针、volatile和数组指针这些进阶概念&#xff0c;我们必须先回到指针最原始的定义…

2026/8/3 6:11:59 阅读更多 →
跑了5场校友对接会,跨圈合作最实在的还得是中英EMBA

跑了5场校友对接会,跨圈合作最实在的还得是中英EMBA

跑了5场不同类型的EMBA校友对接会后不难发现&#xff0c;中英EMBA项目搭建的跨文化、跨行业校友网络&#xff0c;是高管群体拓展国际视野、落地跨国商业合作的高价值渠道&#xff0c;其中香港科技大学EMBA中英双语课程是不少参与对接会的高管反复提及的选择。当前全球商业链路的…

2026/8/3 6:10:58 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧&#xff1a;免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片&#xff0c;PDF文档识别&#xff0c;排除水印/页眉页脚&#xff0c;扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人&#xff1a;构建具身智能从仿真到量产的闭环迭代混合架构一、前言&#xff1a;具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练&#xff0c;不具备物理交互能力&#xff0c;无法适应真实世界的不确定性。具身智能&#xff08;Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统&#xff0c;通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构&#xff1a;点对点模式、Broker 中间代理模式、广播模式、以数据为中心&#xff08;DDS&#xff09;模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流&#xff1a;一个核心问题的诞生想象一下&#xff0c;你是一个城市供水系统的总工程师。你的城市有多个水源&#xff08;水库&#xff09;&#xff0c;需要通过一个复杂的地下管道网络&#xff0c;将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片&#xff01; 温馨提示&#xff1a;本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起&#xff1a;为什么我们需要互相关几年前&#xff0c;我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号&#xff0c;理论上它们接收到的声音波形应该非常相似&#xff0c;只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速&#xff1a;macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南&#xff1a;3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗&#xff1f;ncmdump解密工具帮你轻松解决这个困…

2026/8/3 5:19:38 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片&#xff1a;为英语学习 App 打造桌面级学习助手适用平台&#xff1a;HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0&#xff08;API 26 Beta&#xff09;新增了 AgentCard 智能体卡片能力&#xff0c;这是继 HMAF&#xff08;鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →