[MySQL]MySQL内置函数

news/2024/5/21 2:00:41/文章来源:https://blog.csdn.net/csdn_myhome/article/details/131692271

[MySQL]MySQL内置函数

文章目录

  • [MySQL]MySQL内置函数
    • 1. 日期函数
    • 2. 字符串函数
    • 3. 数学函数
    • 4. 其他函数

1. 日期函数

常用日期函数如下:

函数名称描述
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函数:

获取当前的日期(年,月,日)。

image-20230712172917517

current_time函数:

获取当前时间(时,分,秒)。

current_timestamp函数:

获取当前的时间戳。

image-20230712172935143

now函数:

获取当前日期时间。

image-20230712172940838

date函数:

获取datetime参数的日期部分。

image-20230712173219067

date_add函数:

在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second。

image-20230712173957578

date_sub函数:

在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second

image-20230712174232523

datediff函数:

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

image-20230712175018191

image-20230712175045681

时间函数综合案例

创建一个留言表,表中包含自增长的主键id、昵称、评论内容和评论时间。如下:

image-20230712181835590

向留言表中插入一条记录,其中用now函数来作为参数传入:

image-20230712182103116

可以借助date函数使得查询结果中只显示年、月、日:

image-20230712182212782

再在不同时间向表中插入一些记录:

image-20230712182552549

查询最近十分钟插入的记录:

image-20230712183447474

2. 字符串函数

常用字符串函数如下:

函数名称描述
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函数:

获取字符串使用的字符集。

image-20230712202442769

image-20230712202508960

concat函数:

获取连接后的字符串。

image-20230712201956568

image-20230712202038035

instr函数:

获取第二个参数在第一个参数中首次出现的位置,没有出现返回0。

image-20230712202329175

ucase函数:

获取转换成大写后的字符串。

image-20230712202620955

lcase函数:

获取转换成小写后的字符串。

image-20230712202626538

left函数:

从字符串的左边开始,向后截取length个字符。

image-20230712203110886

length函数:

获取字符串占用的字节数。

image-20230712203430302

strcmp函数:

逐字符比较两个字符串的大小。

类似于C语言中的strcmp函数:

image-20230712203803029

ltrim、rtrim、trim函数:

分别是去除字符串的前空格、后空格、前后空格。

image-20230712211934909

示例1 : 要求显示exam_result表中的信息,显示格式:“XXX的语文是XXX分,数学XXX分,英语XXX分”。

image-20230712205633771

示例2: 求学生表中学生姓名占用的字节数。

image-20230712205827993

示例3: 将EMP表中所有名字中有S的替换成’上海’。

image-20230712210610904

示例4: 截取EMP表中ename字段的第二个到第三个字符。

image-20230712210913246

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

image-20230712211304597

3. 数学函数

常用数学函数如下:

函数名称描述
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-20230712212520592

bin函数:

十进制转换成二进制。

image-20230712212643669

hex函数:

十进制转换成十六进制。

image-20230712212707563

conv函数:

将第一个参数传入的数字从第二个参数进制转换成第三个参数进制。

image-20230712212755532

ceiling函数:

向上取整。

向上取整函数图像:

image-20230712213815643

image-20230712214122016

floor函数:

向下取整。

向下取整函数图像:

image-20230712214030195

image-20230712214131520

format函数:

格式化,保留n位小数(四舍五入)。

image-20230712212920247

rand函数:

生成随机数,范围 [0.0, 1.0)。

image-20230712213311555

mod函数:

取余运算。

image-20230712213042259

4. 其他函数

user函数

user() 查询当前用户。

image-20230712214528199

md5函数

md5(str)对一个字符串进行md5摘要,摘要后得到一个32位字符串。

image-20230712215518690

  • 一般情况下公司内部数据库不会存储用户的明文密码,而会将用户密码形成摘要后存储对应的摘要,当用户登录账号时,将用户输入的的密码形成摘要后与数据库中存储的摘要做对比,如果对比成功则允许登录。
  • 这么做的好处主要有两个,第一个好处就是公司内部数据库中存储的不是用户的明文信息,就算用户信息泄露了也不会产生太大影响,第二个好处就是形成的摘要是定长的,这样有利于数据库表结构的设计。

database函数

database()显示当前正在使用的数据库。

image-20230712231010589

password函数

password()函数,MySQL数据库使用该函数对用户加密

image-20230712231032447

ifnull函数

ifnull(val1, val2) 如果val1为null,返回val2,否则返回val1的值

image-20230712230749026

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

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

相关文章

无法将“pip“识别为cmdlet、函数、脚本文件或可运行程序的名称。

出现问题如下: 出现问题原因: 没有添加pip对应的安装目录进入环境变量里面的系统变量。 解决方案: 1.确定python的安装路径 将python的路径添加到系统变量中 2.输入pip所在的安装路径: python路径\Lib\site-packages 3.添加…

如何执行Photoshop脚本

环境 Photoshop: CC2017 OS: Windows 10 脚本放置位置 C:\Program Files\Adobe\Adobe Photoshop CC 2015\Presets\Scripts #也就是 PS的安装目录\Presets\Scripts

程序员,到美国!赚美元!!!

🌷🍁 博主 libin9iOak带您 Go to New World.✨🍁 🦄 个人主页——libin9iOak的博客🎐 🐳 《面试题大全》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~&#x1f33…

Python 和 RabbitMQ 进行消息传递和处理

一、RabbitMQ 简介 RabbitMQ 是一个开源的消息代理软件,它实现了高级消息队列协议(AMQP)标准。它的官方客户端提供了多种编程语言的接口,包括 Python、Java 和 Ruby 等。它支持消息的持久化、多种交换机类型、消息通知机制、灵活…

Orange pi3初调试

因为树莓派沦为理财产品1年前出手殆尽后,现在唯一一个B性能不足一直没动力调试,沦为吃灰工具。 偶然之间多多给推了个orange产品预售,看了下pi3的参数,这不和赚了差价的3B一个性能吗?果断定了个预售款,在差…

2023年Unity面试题大全,共十万字面试题总结【收藏一篇足够面试,持续更新】

🎈前言 为了方便大家可以重点复习某个模块,所以将各方面的知识点进行了拆分并更新整理了新的内容,并对之前的版本中有些模糊的地方进行了纠正。此篇文章为Unity所有面试题模块的目录导航文章,全网最全的 Unity 面试题 都在这里了…

反转链表 (反转整个链表+反转部分链表)

简单问题:反转整个链表 定义一个函数,输入一个链表的头节点,反转该链表并输出反转后链表的头节点。 解题思路: 1.因为反转后链表的末尾节点是原链表的头节点,所以一开始将头节点的后驱保存起来; 2.将头节…

漏洞攻击 --- TCP -- 半开攻击、RST攻击

TCP半开攻击(半连接攻击) --- syn攻击 (1)定义: sys 攻击数据是DOS攻击的一种,利用TCP协议缺陷,发送大量的半连接请求,耗费CPU和内存资源,发生在TCP三次握手中。 A向B…

计算机视觉的图像标注与视觉任务

1 ​计算机视觉应用 计算机视觉是一种利用计算机和数学算法来模拟人类视觉的技术,可以应用于许多领域。以下是计算机视觉的八大应用: 图像识别:利用计算机视觉技术,可以对图像进行分类、识别和分割,从而实现自动化的…

AI + 电力、大模型主题师资培训落地,飞桨持续赋能AI人才培养

随着数字浪潮袭来,人工智能的发展声势浩大,高校人工智能专业建设以及AI的人才培养已经提上日程。如何夯实产教融合,加快人工智能研究创新,培养具备AI系统能力和电力行业知识的拔尖人才,是推进电力产业智能化升级的迫切…

uniapp 封装公共方法(无需每个页面引用,直接调用)

封装方法: 1. 在根目录下建立common文件夹 创建com.js 2.在main.js中挂载(写在定义vue之后) import $com from /common/com.js Vue.prototype.$com $com 3.在com.js中按照以下格式定义方法 export default {//定义需要的方法 } 4.使用 click"$com.已经定义的方法名&q…

分布式ELK 企业级日志分析系统

一、ELK的相关知识 1.ELK简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求。 ElasticSearch:是基于Lucene(一个全文检…

Flutter入门教程(一),2023最新版包含安装,初始化!简单易懂!

Flutter入门教程(一),2023最新版包含安装,初始化!简单易懂! Flutter介绍 首先,在一切的开始之前我们来介绍一下什么是Flutter,Flutter 是一个由 Google 开发的开源移动应用程序开发…

永久区和元空间的区别

一文搞懂JVM之 方法区、永久代、元空间三者的区别 - 知乎 元空间和永久代的区别-腾讯云开发者社区-腾讯云 方法区和永久区/元空间之间的关系 - 简书 方法区(Method Area),是JVM规范中提出的一个(概念),用于存储类信息、常量池、静态变量、JIT编译后的代码等。 Th…

大模型基础知识 - 语言模型及其演进 公开版

本文为作者内部分享文档,由于不涉敏可以公开,分享本身是课程形式,有什么疑问欢迎在评论区留言。 开场白 人工智能发展到现在,在2个重要领域取得了重大突破,有望达到人类水平: 计算机视觉 (Com…

cuda中radix_sort

背景 radix_sort排序是一种经典排序,在gpu上都有对其进行支持,这里主要参考cub中的实现,简单介绍一种单block的情形, 本文只适合看过源码但是没有看懂的同学。 流程 在second step中完全实在ScanCounters()函数中,具体分为upswe…

【Android】从零搭建组件化项目

组件化系列文章介绍的内容稍微多了点,本着研究透这玩意的精神,从组件化的简介开始说起。 目录 简介组件化、模块化与插件化开始创建配置共享文件打包模式配置APT与JavaPoet 简介 什么是组件化? 将多个功能模板拆分、重组的过程。 为什么要使…

使用mongodump和mongorestore备份与恢复Mongodb数据

一、备份与恢复方案 mongodump是MongoDB官方提供的备份工具,它可以从MongoDB数据库读取数据,并生成BSON文件,mongodump适合用于备份和恢复数据量较小的MongoDB数据库, 不适用于大数据量备份。 默认情况下mongodump不获取local数据库里面的内容。mongodump仅备份数据库中的文档…

RestTemplate和Sentinel整合

引入restTemplate EnableDiscoveryClient EnableFeignClients SpringBootApplication public class OrderApplication {BeanLoadBalanced//添加注解SentinelRestTemplateSentinelRestTemplatepublic RestTemplate getRestTemplate() {return new RestTemplate();}public stati…

Redis_简介(1)

目录 Redis简介 Redis特性 Redis 优势 Redis应用场景 源码等资料获取方法 Redis简介 Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由…