[MySQL] MySQL中的内置函数

  本篇文章主要是对MySQL中常见的内置函数进行了详细解释。例如有日期类函数、字符串类函数、数学类函数等等。希望本篇文章会对你有所帮助。 

文章目录

一、日期类函数

1、1 使用详解

1、2 实例演示

二、字符串函数

2、1 使用详解

2、2 实例演示

三、数学函数

四、其他函数


🙋‍♂️ 作者:@Ggggggtm 🙋‍♂️

👀 专栏:MySQL 👀

💥 标题:MySQL中的内置函数💥

 ❣️ 寄语:与其忙着诉苦,不如低头赶路,奋路前行,终将遇到一番好风景 ❣️

一、日期类函数

  MySQL 中有许多内置的日期类函数,用于处理日期和时间数据。以下是一些常用的日期类内置函数及其功能详解:

  1. NOW()

    • 功能:返回当前日期和时间。
    • 示例:SELECT NOW();
  2. CURRENT_DATE()

    • 功能:返回当前日期。
    • 示例:SELECT CURRENT_DATE();
  3. CURRRENT_TIME()

    • 功能:返回当前时间。
    • 示例:SELECT CURRRENT_TIME();
  4. DATE_FORMAT(date, format)

    • 功能:将日期按指定格式进行格式化。
    • 示例:SELECT DATE_FORMAT('2023-12-06', '%Y-%m-%d');
  5. DAYOFWEEK(date)

    • 功能:返回日期对应的星期几,1 表示星期日,7 表示星期六。
    • 示例:SELECT DAYOFWEEK('2023-12-06');
  6. DATEDIFF(date1, date2)

    • 功能:返回两个日期之间的天数差。
    • 示例:SELECT DATEDIFF('2023-12-06', '2023-12-01');
  7. DATE_ADD(date, INTERVAL value unit)

    • 功能:在指定日期上加上一定的时间间隔。
    • 示例:SELECT ADDDATE('2023-12-06', INTERVAL 7 DAY);
  8. DATE_SUB(date, INTERVAL value unit)

    • 功能:在指定日期上减去一定的时间间隔。
    • 示例:SELECT SUBDATE('2023-12-06', INTERVAL 7 DAY);
  9. TIMESTAMPDIFF(unit, start_datetime, end_datetime)

    • 功能:返回两个日期时间之间的差距,根据指定的单位(如秒、分钟、小时等)。
    • 示例:SELECT TIMESTAMPDIFF(SECOND, '2023-12-01 12:00:00', '2023-12-06 12:00:00');

  具体我们也可结合下图进行观看。注意:sql语句是不区分大小写的。所以下述实例演示均用小写。

1、1 使用详解

SELECT NOW();

  功能就是查询当前时间,精确到年月日 和 时分秒。具体如下图:

CURRENT_DATE()

  功能即为查询当前日期。日期指的就是年月日。具体如下:

CURRRENT_TIME()

  功能就是查询当前时间,时间指的是时分秒。具体如下图:

DATE_FORMAT(date, format)

  功能就是date按照我们想要的格式进行输出,具体如下图:

DATEDIFF(date1, date2)

  功能就是计算两个日期的差值(date1 - date2),最后输出的单位是天。具体如下:

DATE_ADD(date, INTERVAL value unit)

  功能就是在date上加上我们所需要的时间。unit可以是年、月、日、时、分、秒。具体如下图:

DATE_SUB(date, INTERVAL value unit)

  这个函数的功能和用法与date_add是相同的。过多也就不再解释。直接看实例:

CURRENT_ TIMESTAMP()

  功能就是获取当前的时间戳。我们知道时间戳是一直变化的,直接看实例:

TIMESTAMPDIFF(unit, start_datetime, end_datetime)

  前面我们学习了两个日期的差值,输出的结果单位为天。现在我们想输出以秒或者其他单位,就可以用timestampdiff。具体实例如下:

1、2 实例演示

案例1:创建一张表,记录生日信息。

  具体表的创建如下:

  现在我们使用我们刚刚学到的内置函数进行插入信息。具体如下:

  我们也可使用current_date()来进行插入,具体如下图:

案例2:创建一个留言表 

  我们所需要的留言表就是能够记录下用户的留言,和其留言的时间。具体表结构如下:

  现在我们在进行插入数据,具体如下图:

  现在我们想查询所发表评论的日期,不需要时间,具体如下: 

  想要统计一段时间内帖子的流量,例如查询十分钟内所有的评论,具体如下:

二、字符串函数

2、1 使用详解

  我们在mysql中常见的字符串内置函数如下图:

  很多功能我们在学习语言的时候就已经学过,所以我们直接看其具体使用的案例。

charset (str)

  charset就是用来获取字符串所使用的字符集。查询一下员工表的工号和员工姓名所使用的字符集。具体如下图:

  在查询员工表中的信息时,使用charset函数获取所对应列使用的字符集即可,具体如下图:

concat (str1, str2, ...) 

  concat功能将我们所需要的字符串拼接到一起,使用起来较为简单。具体如下图:

  当我们所拼接的并不是字符串类型时,会自动转换为字符串类型再进行拼接。

instr(string,substring)

  instr就是查询字串的功能。注意:找不到的话返回0,能找到就返回在string中的位置。默认的第一给字符的下标为1。具体使用如下图:

ucase(str) 

  ucase将小写字母转换为大写字母。遇到不是字母的就自动跳过。具体如下:

lcase(str)

  lcase将小写字母转换为大写字母。遇到不是字母的跳过。具体如下:

left(str,length)与 right(str,length)

  left 和 right的功能:从左或者从右取length个字符输出。相当于就是取字串,但是是从第一字符或者最后一个字符开始。具体如下图:

length(str) 

  length是用来求取字符串str的长度的。注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数组算作一个字节,中文表示多个字节数(与字符集编码有关,utf-8中的一个中文占3个字节)。具体如下图:

  replace(str,search_str,repalce_str)的功能:先在str中进行查找,找到的话就进行替换。不再过多解释。

  strcmp(str1,str2)和 substring(str,pos,length)相信对大家来说都是再熟悉不过了。我们接下来看一下ltrim、rtrim、trim的使用

  其中trim(str)是去除str两侧的空格。ltrim(str)是去除str左侧的空格,rtrim(str)是去除str右侧的空格,具体如下:

2、2 实例演示

要求显示student表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX 

  我们现在所使用的表如下:

  题目的要求就是将所有考生的信息格式化输出。这时候可用到concat来拼接字符串。具体如下:

求表中学生姓名占用的字节数 

  所占用的字节数我们就可以用length(str)来求,单位就是字节。具体如下图:

EMP表中所有名字中有S的替换成'上海'

  EMP表是员工表,具体如下图:

  我们现在需要做的是将EMP表中的ename中带有'S'的替换成’上海‘。可以直接用replace,就是先查询再替换。具体如下图:

截取EMP表中ename字段的第二个到第三个字符

  题目的要求就是找字串。我们可以直接用substring(str,pos,length)进行求取。具体如下图:

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

  首先,我们需要得到ename的首字母,然后再将它变成小写。最后在与剩余的部分进行拼接即可。具体如下图:

  注意,substring(str,pos,length)省去第三个参数时默认就是截取到字符串末尾。

三、数学函数

  mysql中常用到数学类的内置函数如下图:

  其中数学函数的使用较为简单。我们这里就不再举实例演示了。直接看一下其用法即可。

abs(num)求绝对值

bin(num)十进制转二进制

  注意:在转换小数时,默认只会转换整数部分,小数部分并不进行转换。

hex(num)十进制转十六进制

  注意:上述的16转换为十六进制时,并不是转换成了十,而是十六进制的1、0。

conv(num,from_base,to_base)将 num 从 from_base 进制转换为 to_base 进制

floor(num)向下取整,ceiling(num)向上取整

  相信这两个函数大家并不陌生。如果搞不清楚,建议画一条竖线进行标注。我们直接看使用:

format(num,n) 格式化num,保留n为小数

 

rand()生成随机之,范围[ 0.0,1.0)

  rand()生成的随机数是有范围的。但是我们可以对生成的结果进行算术运算,得到我们想要的随机值范围。假如我们想要生成的随机数单位为:0~100。具体如下图:

mod(num1,num2)取模,求余

 

四、其他函数

user()

  user函数功能:用于获取mysql连接的当前用户名和主机名。具体如下图:

database()

  database函数用于显示当前正在使用的数据库,具体如下图:

ifnullval1 val2

  ifnull()函数与C语言中的三目操作符 :? 很相似。ifnullval1 val2)功能是如果val1null,返回val2,否则返回val1的值。具体如下:

md5()与password()

  md5()与password()是用于加密和处理用户密码的常见函数。这两个函数可以帮助保护用户密码的安全性。具体详细细节就不再过多解释,我们直接看起用法:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/225728.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Linux Docker 安装Nginx

1.21、查看可用的Nginx版本 访问Nginx镜像库地址:https://hub.docker.com/_/nginx 2、拉取指定版本的Nginx镜像 docker pull nginx:latest #安装最新版 docker pull nginx:1.25.3 #安装指定版本的Nginx 3、查看本地镜像 docker images 4、根据镜像创建并运行…

Linux学习笔记2

web服务器部署: 1.装包: [rootlocalhost ~]# yum -y install httpd 2.配置一个首页: [rootlocalhost ~]# echo i love yy > /var/www/html/index.html 启动服务:[rootlocalhost ~]# systemctl start httpd Ctrl W以空格为界…

2024年安防行业预测:5G与安防视频监控技术的5大关键趋势

5G技术是一项以前所未有的速度和可靠性提供数据传输的技术,它的出现将极大地促进安防视频监控技术的发展。随着5G技术的快速发展,安防视频监控系统将在多个方面迎来显著的改进和创新。伴随着2023年进入尾声,2024即将到来,那么在20…

静态住宅代理科普——实际应用场景以及如何配置?

住宅代理IP不仅是理论上的网络工具,它在多个实际应用场景中表现突出,极大地便利了用户的网络操作。接下来,将深入探讨住宅代理IP在市场调研、内容访问、社交媒体管理等方面的实际应用,揭示其在不同领域的实用价值。 ## 实际应用场…

【Java】实验三

实现加减乘除功能的计算器 实验要求 (1)界面包括菜单栏、显示区和按键区,参照附件中的计算器,如下: (2)功能要求:先实现加减乘除,其他功能根据自己的进度尽可能多地实现。附部分按键的功能说明: 1、C是清除键,功能是将之前输入的数字、计算结果等信息全部归零。…

常见动物经济手术3d模拟交互演示教学实现了教育资源的共享

动物常见病防治是兽医必备的技能,为了让实习兽医在上岗作业前拥有丰富的常见病防治经验。借助动物常见病防治VR虚拟仿真技术开展动物常见病防治VR模拟实操培训,能极大方便院校实训。 提高教学质量 传统的动物医学教学往往依赖于理论知识和实验室实践&…

深度学习实战64-人脸检测模型LFFD的搭建,LFFD模型的架构与原理的详细介绍

大家好,我是微学AI,今天给大家介绍一下深度学习实战64-人脸检测模型LFFD的搭建,LFFD模型的架构与原理的详细介绍。LFFD(Light and Fast Face Detector)模型是一种用于人脸检测的深度学习模型,其设计旨在实现轻量级和快速的人脸检测。本文将详细介绍LFFD模型的定义、优点、原…

word模板导出word文件

前期准备工作word模板 右键字段如果无编辑域 ctrlF9 一下&#xff0c;然后再右键 wps 直接 ctrlF9 会变成编辑域 pom.xml所需依赖 <dependencies> <!--word 依赖--> <dependency><groupId>fr.opensagres.xdocreport</groupId><artifactId…

h5和小程序通信

相信大部分人可能都会遇到要在微信小程序里面嵌入h5&#xff0c;这个时候h5和小程序之间的通信就成了不可避免的一环&#xff0c;不用紧张&#xff0c;其实很简单。 看一下微信小程序官方文档怎么说 首先我们按照文档上的指示&#xff0c;在需要向小程序传递参数的页面引入 jw…

vuepress-----20、全文搜索

默认主题自带的搜索, 只会为页面的标题、h2、h3 以及 tags构建搜索索引。所以尽量将围绕知识点的关键字体现到标题上。而 tags 更为灵活&#xff0c;可以把相关的能想到的关键字都配置到 tags 中&#xff0c;以方便搜索。 默认插件介绍 (opens new window) 默认主体配置 (ope…

frp内网穿透部署,轻松实现内网服务对外访问

FRP&#xff08;Fast Reverse Proxy&#xff09;是一种轻量级、高性能的反向代理工具&#xff0c;利用反向代理技术将公网请求转发至内网服务器上&#xff0c;并将内网服务器的响应再次转发至公网请求者。在实现内网穿透时&#xff0c;FRP能够将公网与内网之间的隔离突破&#…

企业ERP软件定制开发的重点在哪里?|手机app小程序搭建

企业ERP软件定制开发的重点在哪里&#xff1f;|手机app小程序搭建 随着企业规模的扩大和业务的复杂化&#xff0c;越来越多的企业开始意识到使用一款适合自己的企业资源计划&#xff08;Enterprise Resource Planning&#xff0c;简称ERP&#xff09;软件的重要性。然而&#x…

Axure动态面板控制

首先创建一个项目&#xff0c;拖拽几个矩形喝一个动态面板 然后双击动态面板添加状态state1,state2,state3 然后分别在state1,state2,state3编辑导航对应的内容。 接下来就是添加交互事件&#xff0c;将不同导航对应不同的state. 点击“交互”->鼠标点击->进入交互编辑…

SpringSecurity(五)

深入理解HttpSecurity的设计 一、HttpSecurity的应用 在前章节的介绍中我们讲解了基于配置文件的使用方式&#xff0c;也就是如下的使用。 也就是在配置文件中通过 security:http 等标签来定义了认证需要的相关信息&#xff0c;但是在SpringBoot项目中&#xff0c;我们慢慢脱离…

世微 大功率降压恒流IC LED车灯过EMC电源驱动 AP3266

产品描述 AP3266 是高效率、外围简单、内置功率管的同步降压恒流芯片&#xff0c;适用于4-40V输入的降压LED恒流驱动芯片。输出最大功率可达 40W&#xff0c;最大电流3.6A。AP3266 可通过调节 OVP 端口的分压电阻&#xff0c;设定输出空载电压 保护&#xff0c;避免高压 空载上…

word中如何插入公式,如何高效使用mathtype,遇到他人论文的复杂公式如何直接粘贴复制,为你一一答疑解惑!!

文章目录 一、论文中插入公式---最原始&#xff0c;最好用&#xff0c;最稳定的方法1.1 主页--插入---对象1.2 找到公式编辑器&#xff0c;对应你的版本1.3 直接输入公式&#xff0c;关闭界面 二、如何做好一个懒人——如何直接粘贴别人PDF等格式论文中的公式&#xff1f;2.1 使…

JVM 运行时参数

面试题 JVM的参数&#xff0c;你知道的说一下 (百度) 说说你知道的几种主要的JVM参数&#xff08;京东&#xff09; JVM调优调的哪些参数&#xff1f;在哪里写这些参数&#xff1f; &#xff08;亚信&#xff09; 内存调优参数都有什么&#xff1f;&am…

基于若依的ruoyi-nbcio流程管理系统支持支持定时边界事件和定时捕获事件

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 1、定时边界事件 <template><div class"panel-tab__content"><!--目前只处理定…

shell命令学习(1)——(待完善)

explainshell.com shell统计当前文件夹下的文件个数、目录个数Linux之shell常用命令&#xff08;三&#xff09; sort&#xff08;排序&#xff09;、uniq&#xff08;处理重复字符&#xff09; linux中shell将换行输入到文件中 shell脚本&#xff0c;将多行内容写入文件中 f…