【MySQL函数】:让你的数据库操作更高效(二)

news2024/11/24 20:48:15

前言

✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL日期时间、条件判断、系统信息、加密、进制转换和IP地址转换函数的讲解

目录

      • 前言
      • 一、日期和时间函数
      • 二、条件判断函数
      • 三、系统信息函数
      • 四、加密函数
      • 五、进制转换函数
      • 六、IP地址转换函数
      • 七、总结

一、日期和时间函数

函数作用
CURDATE(),CURRENT_DATE()返回当前日期
CURTIME(),CURRENT_TIME()返回当前时间
NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),
SYSDATE(),LOCALTIMESTAMP()
返回会当前日期和事件
YEAR(日期)返回日期中的年份
MONTH(日期)返回日期中的月份[1,12]
DAY(日期)返回日期中的天[1,31]
HOUR(时间)返回时间中的小时
MINUTE(时间)返回时间中的分钟
SECOND(时间)返回时间中的秒
DAYOFWEEK(日期)返回星期几,1星期日,2星期一
WEEKDAY(日期)返回星期几,0星期一,1星期二
DAYOFYEAR(日期)计算指定日期是本年第几天
DAYOFMONTH(日期)计算指定日期是本月第几天
QUARTER(日期)计算指定日期是第几季度
TIME_TO_SEC(time)将指定时间转换为秒
SEC_TO_TIME(sec)将以秒为单位的时间转换为时分秒的格式
DATEDIFF(d1,d2)计算两个日期相隔的天数
ADDDATE(date,n)计算指定日期加上n天后的日期
SUBDATE(date,n)计算指定日期减去n天后的日期
ADDTIME(time,n)计算指定时间加上n秒后的时间
SUBTIME(time,n)计算指定时间减去n秒后的时间
DATE_FORMAT(date,f)按格式返回日期
TIME_FORMAT(time,f)按格式返回时间

日期和时间函数练习:

  • CURDATE(),CURRENT_DATE()返回当前日期CURTIME(),CURRENT_TIME() ,返回当前时间NOW(),CURRENT_TIMESTAMP(),LOCALTIME(),SYSDATE(),LOCALTIMESTAMP(),返回会当前日期和事件

    SELECT CURDATE(),CURTIME(),NOW(),LOCALTIME(),SYSDATE();
    
  • MONTH(日期) : 返回日期中的月份[1,12],DAY(日期) : 返回日期中的天[1,31],HOUR(时间) : 返回时间中的小时,MINUTE(时间) : 返回时间中的分钟,SECOND(时间) : 返回时间中的秒

    SELECT YEAR(NOW()),MONTH(NOW()),DAY(NOW()),HOUR(NOW()),MINUTE(NOW()),SECOND(NOW());
    
  • DAYOFWEEK:(日期) 返回星期几,1星期日,2星期一;WEEKDAY(日期):返回星期几,0星期一,1星期二

    SELECT DAYOFWEEK(NOW()),WEEKDAY(NOW());
    
  • DAYOFYEAR(日期):计算指定日期是本年第几天;DAYOFMONTH(日期) : 计算指定日期是本月第几天;QUARTER(日期) :计算指定日期是第几季度

    SELECT DAYOFYEAR(NOW()),DAYOFMONTH(NOW()),QUARTER(NOW());
    
  • TIME_TO_SEC(time) :将指定时间转换为秒;SEC_TO_TIME(sec) : 将以秒为单位的时间转换为时分秒的格式

    SELECT TIME_TO_SEC('01:00:00');
    SELECT SEC_TO_TIME('3600');
    
  • ADDDATE(date,n) : 计算指定日期加上n天后的日期;SUBDATE(date,n) : 计算指定日期减去n天后的日期;ADDTIME(time,n): 计算指定时间加上n秒后的时间;SUBTIME(time,n) : 计算指定时间减去n秒后的时间

    SELECT DATEDIFF(CURDATE(),'2023/6/5');
    SELECT ADDDATE(CURDATE(),'2'),SUBDATE(CURDATE(),'2');
    SELECT ADDTIME(CURTIME(),'2'),SUBTIME(CURTIME(),'2');
    
  • DATE_FORMAT(date,f): 按格式返回日期;TIME_FORMAT(time,f) :按格式返回时间注意:%Y表示年份为4位,%y表示两位,分钟的格式化字符要用%i

    SELECT DATE_FORMAT(CURDATE(),'%Y-%m-%d');
    SELECT DATE_FORMAT(CURDATE(),'%y-%m-%d');
    SELECT TIME_FORMAT(CURTIME(),'%h-%i-%s');
    

效果如下:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、条件判断函数

函数作用
IF(expr,v1,v2)如果表达式expr成立,返回结果v1;否则,返回结果v2。
IFNULL(v1,v2)如果v1的值不为NULL,则返回v1,否则返回v2
CASE分支(详见下面)
  • IF(expr,v1,v2)
SELECT IF(1>0,'true','false');
->true
  • IFNULL(v1,v2)
SELECT IFNULL(NULL,'king');
->king
  • CASE

语法1:

CASE
	WHEN expr1 THEN V1
	WHEN expr2 THEN V2
	...
	ELSE vn
END	
SELECT CASE 
  WHEN 1 > 0
  THEN '1 > 0'
  WHEN 2 > 0
  THEN '2 > 0'
  ELSE '3 > 0'
  END
->1 > 0

语法2:

CASE expr 
  WHEN e1 THEN v1
  WHEN e1 THEN v1
  ...
  ELSE vn
END
SELECT CASE 1 
  WHEN 1 THEN '我是1'
  WHEN 2 THEN '我是2'
ELSE '你是谁'

三、系统信息函数

系统信息函数用来查询MySQL数据库的系统信息。

函数作用
VERSION()返回数据库的版本号
CONNECTION_ID()返回服务器的连接数
DATABASE()、SCHEMA返回当前数据库名
USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()、CURRENT_USER返回当前用户
CHARSET(str)返回字符串str的字符集
COLLATION(str)返回字符串str的字符排列方式

系统信息函数练习:

  • VERSION() : 返回数据库的版本号

    SELECT VERSION();
    
  • CONNECTION_ID(): 返回服务器的连接数

    SELECT CONNECTION_ID();
    
  • DATABASE()、SCHEMA: 返回当前数据库名

    SELECT DATABASE();
    
  • USER()、SYSTEM_USER()、SESSION_USER()、CURRENT_USER()、CURRENT_USER: 返回当前用户

    SELECT user();
    
  • CHARSET(str) :返回字符串str的字符集

    SELECT CHARSET('123564');
    
  • COLLATION(str): 返回字符串str的字符排列方式

    SELECT COLLATION('king');
    

效果如下:

在这里插入图片描述

四、加密函数

加密函数是MySQL用来对数据进行加密的函数.

函数作用
MD5(str)对字符串str进行散列,可以用于一些普通的不需要解密的数据加密,如密码
sha1对字符串str进行散列,可以用于一些普通的不需要解密的数据加密,如密码,比MD5更安全
SELECT MD5('12345679'),SHA1('12345679');
-->defac44447b57f152d14f30cea7a73cb   -->c4b93599b61b85b1f109064294c5bd7adf73ca66

我们会发现sha1产生的密码更长

五、进制转换函数

函数作用
BIN(x)返回x的二进制
HEX(x)返回x的十六进制
OCT(x)返回x的八进制
CONV(x,from_base,to_base)将from_base进制的x,转成to_base进制
SELECT BIN(10),HEX(10),OCT(10),CONV(16,16,10);
->1010 A 12 22

六、IP地址转换函数

函数作用
INET_ATON(IP)将点分十进制的IP地址转为数字
INET_NTOA(number)将数字形式的IP转为点分十进制
SELECT INET_ATON('192.168.0.1')
    ->3232235521
SELECT INET_NTOA(3232235521)
    ->192.168.0.1

七、总结

✨~MySQL 函数会对传递进来的参数进行处理,并返回一个处理结果,也就是返回一个值。MySQL 包含了大量并且丰富的函数,咱们讲解几十个常用的,剩下的比较罕见的函数我们可以到「✨MySQL 参考手册」查询。

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

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

相关文章

chatgpt赋能python:Python怎么直接打出两个括号?

Python怎么直接打出两个括号? 你是否曾经在使用Python编写代码时,需要频繁地输入括号?每次都需要输入Shift键和9/0键来输入左右两个括号,有时还会出现输入错误的情况。那么有没有一种更加快捷的方法来输入括号呢?答案…

【Python 随练】企业奖金计算器

题目: 企业发放的奖金根据利润提成。利润 : 低于或等于 10 万元时,奖金可提 10%;高于 10 万元,低于 20 万元时,低于 10 万元的部分按 10%提成,高于 10万元的部分,可提成7.5%&#…

PCIe卡设计方案:单路12Gsps 3G 带宽模拟信号源PCIe卡

一、板卡概述 单路3G带宽模拟信号源卡由DA子卡和PCIe底板组成,二者通过标准FMC连接器互联,可以实现将PCIe总线数据转换为一路高速的模拟量输出。北京太速科技板可广泛用于雷达、通信、光电领域的噪声信号、毛刺、脉冲信号模拟产生等领域。 二、 …

程序的性能优化实践总结——JAVA

文章目录 1、 衡量程序性能的指标2、Java 程序性能优化切入点3、获取程序的性能数据1、nmon:获取系统性能数据2、jvisualvm:获取JVM性能数据3、jmc:获取Java应用详细性能数据4、arthas:获取单个请求的调用链耗时5、wrk获取Web接口的性能数据 4、应用程序优化1、缓冲区2、缓存3、…

mlr3系列机器学习教程1–mlr3介绍.

mlr3包是既往mlr包的升级,mlr3包为大量的机器学习技术提供了一个通用的技术接口。mlr3不单单是一个包,而是一个生态系列,包括一系列机器学习的R包。 我们下导入mlr3包,使用R自带的汽车数据来做个简单的演示 library(mlr3) libra…

Nodejs一、初识

零、文章目录 Nodejs一、初识 1、初识 Node.js (1)回顾与思考 浏览器中的 JavaScript 的组成部分 为什么 JavaScript 可以在浏览器中被执行 为什么 JavaScript 可以操作 DOM 和 BOM 浏览器中的 JavaScript 运行环境 JavaScript 能否做后端开发&#…

HTMLCSS Day07 CSS Flex布局

文章目录 1.flex布局2.flex布局属性容器属性元素属性 3.flex弹性盒模型3.1.主轴3.2.沿主轴的排列处理3.3.flex-flow属性3.4.justify-content属性3.5.align-items属性3.6.align-content3.7 项目属性3.8.order3.9.flex-grow3.10.flex-shrink3.11.flex-basis3.12.flex3.13.align-s…

干翻Mybatis源码系列之第十篇:Mybatis拦截器基本开发、基本使用和基本细节分析

给自己的每日一句 不从恶人的计谋,不站罪人的道路,不坐亵慢人的座位,惟喜爱耶和华的律法,昼夜思想,这人便为有福!他要像一棵树栽在溪水旁,按时候结果子,叶子也不枯干。凡他所做的尽…

使用终极 GUI 框架 NiceGUI 提升你的 Python 应用程序

介绍 随着机器学习和深度学习网站应用程序的快速增长,开发人员一直在寻找新的 Web 框架,以便更轻松地构建这些网站应用程序。 数据科学应用程序的普及程度已经上升,因此新的框架也在增加。开发人员创建了许多新的框架,这些框架被证…

【压缩技巧】如何把文件压缩成RAR?如何解压?

在生活及工作中,我们经常需要压缩文件使其更方便存储或传送。 压缩文件的格式有很多种,RAR是其中一种常见的格式,也是WinRAR软件独有的压缩格式。所以想要把文件压缩成RAR,就可以通过WinRAR来操作。 压缩方法如下: 1…

数组的原型方法-es6

数组的原型方法-es6Array.form()Array.of() find() 和 findIndex()copyWithin()fill()entries(),keys()和values()includes()flat()和flatMap()扩展运算符at()reduce()和reduceRight()some()判断数组中是否存在满足条件的项 18、Array.form() Array.from方法用于将两类对象转…

linuxOPS系统服务_linux高级命令

find命令 find 路径 [选项 选项的值] … 选项作用-name根据文件的名称进行-type按文件类型进行搜索,f代表普通文件,d代表文件夹 find命令查找文件 示例1 查找一个文件 案例1 ,在linux整个系统中查找 test.txt文件 find / -name test.txt -type f案例…

《Opencv3编程入门》学习笔记—第六章

《Opencv3编程入门》学习笔记 记录一下在学习《Opencv3编程入门》这本书时遇到的问题或重要的知识点。 第六章 图像处理 一、线性滤波:方框滤波、均值滤波、高斯滤波 (一)平滑处理 平滑处理也称模糊处理,是一种简单且使用频率…

像拿快递一样取文件的FileCodeBox

本文大约完成于 2月中旬,镜像中途有过更新; 什么是 FileCodeBox ? FileCodeBox 中文名是 文件快递柜,取文件像取快递一样,支持通过匿名口令分享文本,文件。 很多时候,我们都想将一些文件或文本传…

流量卡和手机上显示的流量对不上,这是怎么回事呢?

很多朋友反映,自己购买的流量卡和手机上显示的流量对不上,这到底是怎么回事呢?小编认为,如果出现这种情况,无非有两种因素: ​ 一、买了不正规的流量卡,也就是大家所说的物联卡。 物联卡的特点…

低压电源系统中防雷浪涌保护器的布局方案

低压电源系统是工业、商业和住宅领域中广泛应用的电力系统,其供电电压一般在1000V以下。由于雷击和浪涌等自然灾害的存在,低压电源系统需要防雷浪涌保护器来保护系统不受损坏。本文将详细介绍低压电源系统中防雷浪涌保护器的布置位置与规范。 防雷浪涌保…

AUTOSAR】UDS协议的代码分析与解读(八)----UDS安全访问27h和通讯控制28h

8.9 安全访问 Security Access (27h) 由于保密、排放或安全的原因, 安全访问服务提供一种方法以方便访问受限制的数据或诊断服务。 支持安全访问的ECU应该实现种子和密钥的合理算法,该算法应在特定文档中记录,而只有特定的少数 人可以访问该文…

FasterTransformer 003: CMAKELIST in gemm_test

cmake -DSM60 -DCMAKE_BUILD_TYPERelease .. -DCMAKE_BUILD_TYPE cmake编译类型通常默认为debug,但是在编译软件时,一般都需要使用release版本的,debug太慢了。设置为release版本可以在cmake文件里进行,也可以在运行cmake命令时使…

深度学习实践篇[17]:模型压缩技术、模型蒸馏算法:Patient-KD、DistilBERT、DynaBERT、TinyBERT

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

观点碰撞燃爆会场,2023开放原子全球开源峰会区块链分论坛圆满落幕!

2023开放原子全球开源峰会区块链分论坛活动现场 6月13日,由开放原子开源基金会主办,XuperCore开源项目承办,北京百度网讯科技有限公司、招商银行、联通数字科技有限公司、杭州趣链科技有限公司等协办的2023开放原子全球开源峰会区块链分论坛在…