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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

销售如何开发客户?

在销售过程中,开发客户是至关重要的一环。只有拥有足够的客户群体,才能为公司带来更多的业务机会和收入。 现如今,不管是哪一行竞争都十分激烈,特别是那些本身没有核心竞争力和核心技术的传统 to b企业,正处于十分尴尬…

Leo赠书活动-12期 【Java程序员,你掌握了多线程吗?】文末送书

Leo赠书活动-12期 【Java程序员,你掌握了多线程吗?】文末送书 ✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页&#xff1…

socket 套接字

1、套接字介绍 socket起源于Unix,遵循“一切皆文件”出发点,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。 在设计模式中,Socket把复杂的TCP/IP协议族隐藏在Socket接口后面,Socket去组织数据&#xf…

Pytorch线性回归教程

import torch import numpy as np import torch.nn as nn import matplotlib.pyplot as plt生成测试数据 # 长期趋势 def trend(time, slope0):return slope * time# 季节趋势 def seasonal_pattern(season_time):return np.where(season_time < 0.4,np.cos(season_time * …

vue3 + mark.js 实现文字标注功能

效果图 安装依赖 npm install mark.js --save-dev npm i nanoid代码块 <template><!-- 文档标注 --><header><el-buttontype"primary":disabled"selectedTextList.length 0 ? true : false"ghostclick"handleAllDelete"…

Linux学习笔记2

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

排序算法介绍(一)插入排序

0. 简介 插入排序&#xff08;Insertion Sort&#xff09; 是一种简单直观的排序算法&#xff0c;它的工作原理是通过构建有序序列&#xff0c;对于未排序数据&#xff0c;在已排序序列中从后向前扫描&#xff0c;找到相应位置并插入。插入排序在实现上&#xff0c;通常…

mybatis数据输出-驼峰命名规则设置

1、建库建表 CREATE DATABASE mybatis-example;USE mybatis-example;CREATE TABLE t_emp(emp_id INT AUTO_INCREMENT,emp_name CHAR(100),emp_salary DOUBLE(10,5),PRIMARY KEY(emp_id) );INSERT INTO t_emp(emp_name,emp_salary) VALUES("tom",200.33); INSERT INTO…

持续集成交付CICD:GitLabCI 实现Sonarqube代码扫描

目录 一、实验 1.GitLabCI 代码扫描 二、问题 1.GitLab 执行sonar-scanner命令报错 一、实验 1.GitLabCI 代码扫描 &#xff08;1&#xff09;打开maven项目 &#xff08;2&#xff09;maven项目流水线调用公共库 &#xff08;3&#xff09;项目组添加token认证 &#xf…

FreeRTOS系统延时函数分析

一、概述 FreeRTOS提供了两个系统延时函数&#xff0c;相对延时函数vTaskDelay()和绝对延时函数vTaskDelayUntil()。相对延时是指每次延时都是从任务执行函数vTaskDelay()开始&#xff0c;延时指定的时间结束&#xff0c;绝对延时是指每隔指定的时间&#xff0c;执行一次调用vT…

项目分析:解决类的复杂设计中遇到的问题

1.问题1&#xff1a;析构函数乱码问题 【样例输入】 -3 1 3 -1 -3 2 3 -2 【样例输出】 gouzao 1 -3 1 3 -1 gouzao 2 -3 2 3 -2 -3 1 3 -1 -3 2 3 -2 9.4245 18.849 Ellipse xigou 3 -2 Point xigou 3 -2 Point xigou -3 2 Point xigou 3 -2 Point xigou -3 2…

2023年阿里云云栖大会-核心PPT资料下载

一、峰会简介 历经14届的云栖大会&#xff0c;是云计算产业的建设者、推动者、见证者。2023云栖大会以“科技、国际、年轻”为基调&#xff0c;以“计算&#xff0c;为了无法计算的价值”为主题&#xff0c;发挥科技平台汇聚作用&#xff0c;与云计算全产业链上下游的先锋代表…

关于mysql高版本使用groupby导致的报错

在开发时&#xff0c;遇到mysql版本在5.7.X及以上版本时使用group by 语句会报以下的错误 Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column business_typ…

使用pandas制作图表

数据可视化对于数据分析的重要性不言而喻&#xff0c;一个优秀的图表有足以一眼就看出关键所在。pandas利用matplotlib实现绘图。能够提供各种各样的图表功能&#xff0c;包括: 单折线图多折线图柱状图叠加柱状图水平叠加柱状图直方图拆分直方图箱型图区域块图形散点图饼图多子…

13年测试老鸟总结,性能测试常遇问题+解决方案+分析...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、内存溢出 1&a…

【高数:1 映射与函数】

【高数&#xff1a;1 映射与函数】 例2.1 绝对值函数例2.2 符号函数例2.3 反函数表示例2.4 双曲正弦sinh&#xff0c;双曲余弦cosh&#xff0c;双曲正切tanh 参考书籍&#xff1a;毕文斌, 毛悦悦. Python漫游数学王国[M]. 北京&#xff1a;清华大学出版社&#xff0c;2022. 例2…

设计之初,成就AI创作的非凡之路——AI绘画

一.官方活动 活动链接&#xff1a;| 2023腾讯云 AI 绘画有奖征文大赛&#xff0c;秀出你的AI新质生产力 https://cloud.tencent.com/developer/article/2367375 二.产品体验 1.产品链接:https://cloud.tencent.com/act/pro/AIhuihua?from20421&from_column20421 2.产品…

Maven-高效的Java项目构建与管理工具(含Maven详细安装与配置过程)

Maven 什么是Maven&#xff1f; 正如题目所说&#xff0c;Maven就是一款高效的Java项目构建与管理工具&#xff0c;基于项目对象模型&#xff08;POM&#xff09;概念&#xff0c;利用一个中央信息片断能管理一个项目的构建、报告和文档等步骤。是Apache软件基金会的一个开源…

网站测试都要测试哪些?如何进行测试?

1 UI测试 看页面是否美观养眼(包括页面的布局是否合理&#xff0c;策划是否舒服美观&#xff0c;页面长度是否合理&#xff0c;前景色与背景色是否搭配&#xff0c;页面风格是否统一&#xff0c;色调是否适合人眼&#xff0c;会不会太刺眼&#xff0c;字体大小是否合适&#x…

Java多线程:代码不只是在‘Hello World‘

Java线程好书推荐 概述01 多线程对于Java的意义02 为什么Java工程师必须掌握多线程03 Java多线程使用方式04 如何学好Java多线程写在末尾&#xff1a; 主页传送门&#xff1a;&#x1f4c0; 传送 概述 摘要&#xff1a;互联网的每一个角落&#xff0c;无论是大型电商平台的秒杀…