内置函数【MySQL】

文章目录

  • MySQL 内置函数
  • 日期和时间函数
  • 字符串函数
  • 数学函数
  • 信息函数
  • 参考资料

MySQL 内置函数

MySQL 的内置函数主要分为以下几种:

  • 字符串函数:用于对字符串进行操作,如连接、截取、替换、反转、格式化等。
  • 数值函数:用于对数值进行计算,如求和、平均、最大、最小、绝对值、幂、对数、三角函数等。
  • 日期和时间函数:用于对日期和时间进行操作,如获取当前日期和时间、格式化日期和时间、计算日期和时间的差值、提取日期和时间的部分等。
  • 聚合函数:用于对一组数据进行统计,如计数、求和、平均、最大、最小、标准差、方差等。
  • 流程控制函数:用于根据条件执行不同的操作,如条件判断、选择、循环等。
  • 信息函数:用于获取数据库、表、列、用户等的信息,如数据库名、表名、列名、用户名、版本号等。

日期和时间函数

常用的日期和时间函数有:

函数名称描述
current_date()获取当前日期
current_time()获取当前时间
current_timestamp()获取当前时间戳
now()获取当前日期时间
date(datetime)获取 datetime 参数的日期部分
date_add(date, interval d_value_type)在 date 中添加日期或时间,interval 后的数值单位可以是:year、month、day、hour、minute、second
date_sub(date, interval d_value_type)在 date 中减去日期或时间,interval 后的数值单位可以是:year、month、day、hour、minute、second
datediff(date1, date2)获取两个日期的差,单位是天

current_date 函数、current_time 函数、current_timestamp 函数和 now 函数:获取当前日期、时间、时间戳以及当前日期时间:

image-20231126162905547

date 函数:获取获取 datetime 参数的日期部分:

image-20231126163204482

在已有日期的基础上添加日期或时间:

image-20231126163427798

操作的单位可以是日期或时间,根据原有的日期或时间而可以精确到秒数。

date_sub 函数的功能完全相同,只是它对已有日期或时间操作的是减法运算。

获取两个日期的差,单位是天:

image-20231126163913008

日期和时间是数据的一种属性,例如在网上发表评论,需要用日期和时间标记。

评论测试表:

image-20231126165005903

插入记录并查询:

image-20231126165034820

用户可能不需要这么精确的日期或时间,对于比较久远的评论,可以只精确到天:

image-20231126165239802

如果要查询 2 分钟之前的评论,就可能需要用若干函数组合来查询了:

image-20231126165737087

字符串函数

常用字符串函数有:

函数名称描述
charset(str)获取字符串使用的字符集
concat(str1, str2 [, …])获取连接后的字符串
instr(str, substr)获取 substr 在 str 中首次出现的位置,没有出现返回 0
ucase(str)获取转换成大写后的字符串
lcase(str)获取转换成小写后的字符串
left(str, length)从字符串的左边开始,向后截取 length 个字符
length(str)获取字符串占用的字节数
replace(str, search_str, replace_str)将字符串中的 search_str 替换成 replace_str
strcmp(str1, str2)逐字符比较两个字符串的大小
substring(str, position [, length])从字符串的 position 开始,向后截取 length 个字符
ltrim(str)、rtrim(str)、trim(str)去除字符串的前空格、后空格、前后空格

charset 函数用来返回指定字符串的字符集。字符集是一种给定一系列字符并赋予对应的编码的方式。例如,给定字符列表为 {‘A’,’B’}时, {‘A’=>0, ‘B’=>1}就是一个字符集。

例如查看这张员工雇佣表中名字这一列的字符集:

image-20231128141857258

concat 函数:按参数顺序连接字符串。例如将上面的雇佣表的列属性按照如下方式连接成一个字符串。

image-20231128142250417

instr 函数:获取一个字符串在另一个字符串中首次出现的位置,如果没有出现则返回 0。

image-20231128142353993

ucase 函数:获取转换成大写后的字符串。

image-20231128142434264

lcase 函数:获取转换成小写后的字符串。

image-20231128142516985

left 函数:从字符串的左边开始,向后截取指定个数的字符。

image-20231128142712051

length 函数:获取字符串占用的字节数。

image-20231128142758258

值得注意的是这个函数返回的是字节数而不是字符数,如果是汉字,utf8 占 3 个字节,gbk 占 2 个字节。

replace 函数:将字符串中的指定子字符串替换成另一个字符串。

image-20231128143010442

strcmp 函数:逐字符按照 ASCII 码比较两个字符串的大小,两个字符串大小相等返回 0,前者大返回 1,后者大返回 - 1。且不区分大小写。

image-20231128143205001

substring 函数:从字符串的指定位置开始,向后截取指定个数的字符。

image-20231128143253039

trim 函数:去除字符串的前后空格。

ltrim 和 rtrim 函数:去除字符串的前空格和后空格。

image-20231128143542322

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

  1. substring 函数和 lcase 函数将姓名的第一个字母转换成小写。
  2. substring 函数截取员工姓名的第二个字符及其后续字符。
  3. concat 函数用于连接上面获得的两个字符串。
image-20231128143820702

数学函数

常用的数学函数如下:

函数名称描述
abs(number)绝对值函数
bin(decimal_number)十进制转换成二进制
hex(decimal_number)十进制转换成十六进制
conv(number, from_base, to_base)from_base 进制转换成 to_base 进制
ceiling(number)向上取整
floor(number)向下取整
format(number, n)格式化,保留 n 位小数(四舍五入)
rand()生成随机浮点数,范围 [0.0, 1.0)
mod(number, denominator)求余

abs 函数:获取参数绝对值。

image-20231128144934588

bin 函数和 hex 函数:将参数转换为二进制或十六进制:
image-20231128145011445

conv 函数:进制转换。

image-20231128145049121

ceiling 函数:对参数向上取整。

image-20231128145147136

floor 函数:对参数向下取整。

image-20231128145231947

format 函数:对参数格式化,以四舍五入的方式保留指定位数的小数。

image-20231128145317310

rand 函数:生成 0.0 到 1.0 的随机浮点数。

image-20231128145344356

如果想要生成 0 到 100 的随机数,可以用生成的随机浮点数乘以 100,然后再取整。

image-20231128145421317

mod 函数:对参数求余。

image-20231128145514818

信息函数

user 函数:获取 MySQL 连接的当前用户名和主机名。

image-20231128145718504

md5 函数:对一个字符串进行 md5 摘要,摘要后得到一个 32 位字符串。

image-20231128145735586

md5 是一种密码散列函数,它可以将任意长度的信息映射为固定长度(通常为 32bit)的哈希值。它具有不可逆性、唯一性和抗碰撞性。并且由于哈希算法的雪崩效应,即使被加密的信息发生了一个很微小的改动,也会使得最后的哈希值变得完全不同。这是因为密码哈希算法通常采用对轮迭代和复杂的非线性变换,使得输入的每一位都会影响输出的每一位(信息安全专业的同学应该会比较了解)。

在工业应用中持久化存储用户的账号和密码这样的私密信息时,为了用户的安全是不会存储明文的,而是存储它的摘要,在验证时也是也是以同样的方式对用户输入的密码进行摘要,通过与数据库中的哈希值比较以验证用户身份。

这么做也有一个好处,不论用户的密码多长,加密得到的哈希值总是固定的,这样在设计表时就可以用固定长度的列存储密码摘要。

database 函数:显示当前正在使用的数据库。

image-20231128150651038

password 函数:对用户数据进行加密。

image-20231128150639319

另外,像 password 这样涉及用户隐私的函数,它不会被保存在 MySQL 的历史命令中(键盘上下方向键查看)。

ifnull 函数接受两个参数,如果第一个参数不为 null 则返回第一个参数值,否则返回第二个参数值。

image-20231128150733468

参考资料

  • MySQL 函数|菜鸟教程
  • MySQL 内置函数

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

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

相关文章

Spark_Spark高阶特性

wscg filter导致断链 Codegen 向量化 simdjson Orc Parquet 支持批量读取 spark本身对parquet支持比较好,因为parquet

jquery 地址四级联级显示 不默认选择

代码效果 <body class"bgca"><img src"./files/joinTooBg.png" style"width: 100%;object-fit: cover;" alt""><!--填写申请资料--><section><div class"zi-liao"><h3 class"zong-h…

【CVE-2023-49103】ownCloud graphapi信息泄露漏洞(2023年11月发布)

漏洞简介 ownCloud owncloud/graphapi 0.2.x在0.2.1之前和0.3.x在0.3.1之前存在漏洞。graphapi应用程序依赖于提供URL的第三方GetPhpInfo.php库。当访问此URL时&#xff0c;会显示PHP环境的配置详细信息&#xff08;phpinfo&#xff09;。此信息包括Web服务器的所有环境变量&a…

在Mysql中,什么是回表,什么是覆盖索引,索引下推?

一、什么是回表查询&#xff1f; 通俗的讲就是&#xff0c;如果索引的列在 select 所需获得的列中&#xff08;因为在 mysql 中索引是根据索引列的值进行排序的&#xff0c;所以索引节点中存在该列中的部分值&#xff09;或者根据一次索引查询就能获得记录就不需要回表&#x…

【傻瓜级JS-DLL-WINCC-PLC交互】2.wincc使用C#开发的.net控件

思路 JS-DLL-WINCC-PLC之间进行交互&#xff0c;思路&#xff0c;先用Visual Studio创建一个C#的DLL控件&#xff0c;然后这个控件里面嵌入浏览器组件&#xff0c;实现JS与DLL通信&#xff0c;然后DLL放入到WINCC里面的图形编辑器中&#xff0c;实现DLL与WINCC的通信。然后PLC与…

微机原理_7

一、单项选择题(本大题共15小题&#xff0c;每小题3分&#xff0c;共45分。在每小题给出的四个备选项中&#xff0c;选出一个正确的答案,请将选定的答案填涂在答题纸的相应位置上。) 下列属于串行通信接口标准的有&#xff08;) A. PCI B. IDE C. USB D. EISA Intel 8086/8088…

echart 柱状图-bar

业务场景一 效果 业务组件调用代码 <template> <barCom :domId"1" :title"barComProps.title" :xAxisData"barComProps.xAxisData" :yAxisProps"barComProps.yAxisProps" :seriseData"barComProps.serise…

基于FactoryBean、实例工厂、静态工厂创建Spring中的复杂对象

&#x1f609;&#x1f609; 学习交流群&#xff1a; ✅✅1&#xff1a;这是孙哥suns给大家的福利&#xff01; ✨✨2&#xff1a;我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 &#x1f96d;&#x1f96d;3&#xff1a;QQ群&#xff1a;583783…

在 vue3 中使用 Recorder 实现录音并上传(mp3、wav)兼容 PC 和移动端

一、Recorder 介绍 使用 Recorder插件可以在网页中进行录音。生成 blob 文件并可以自定义上传&#xff0c;同时&#xff0c;录音过程中会显示可视化波形&#xff0c;同时能够做到兼容PC端、Android、和iOS&#xff0c;十分好用&#xff01; Recorder github 首页 插件效果展…

深度学习回顾:七种网络

一、说明 本文 揭开CNN、Seq2Seq、Faster R-CNN 和 PPO &#xff0c;以及transformer和humg-face— 编码和创新之路。对于此类编程的短小示例&#xff0c;用于对照观察&#xff0c;或做学习实验。 二、CNN网络示例 2.1 CNN用mnist数据集 CNN 专为图像处理而设计&#xff0c;包…

学习笔记-瑞吉外卖项目实战(一)

软件开发整体介绍 软件开发流程 角色分工 软件环境 瑞吉外卖项目介绍 项目介绍 产品原型介绍 技术选型 功能架构 角色 开发环境搭建 数据 创建database reggie&#xff0c;在里面创建表&#xff1a; maven 创建springboot项目并导入相关依赖坐标&#xff1a; 我们可以在项目…

基于SSM的论文管理系统的设计与实现

末尾获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;SSM 前端&#xff1a;Vue 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xff1a;IDEA / Eclipse 是否Maven项目&#xff1a;是 目录…