【MySQL系列】MySQL内置函数的学习

news2024/11/14 5:45:56

「前言」文章内容大致是对MySQL内置函数的学习。

「归属专栏」MySQL

「主页链接」个人主页

「笔者」枫叶先生(fy)

MySQL

目录

  • 一、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_date函数用于获取当前的日期
在这里插入图片描述

current_time()

current_time函数用于获取当前的时间
在这里插入图片描述

current_timestamp()

该函数用于获取当前的时间戳
在这里插入图片描述

now()

该函数用于获取当前的日期时间
在这里插入图片描述

date(datetime)

该函数用于获取datetime参数的日期部分,函数也可以嵌套使用
在这里插入图片描述

date_add(date, interval d_value_type)

该函数用于在日期的基础上加上日期或时间,在date中添加日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second
在这里插入图片描述
注:如果在date_add函数中加上的日期/时间为负值,则相当于在日期的基础上减去日期/时间

date_sub(date, interval d_value_type)

该函数用于在日期的基础上减去日期或时间,在date中减去日期或时间,interval后的数值单位可以是:year、month、day、hour、minute、second
在这里插入图片描述

datediff(date1, date2)

该函数用于获取两个日期的差,单位是天
在这里插入图片描述

案例1

创建一张表,用于记录生日

mysql> create table tmp(
    -> id int primary key auto_increment,
    -> birthday date
    -> );

在这里插入图片描述
插入数据:
在这里插入图片描述

案例2

创建一个留言表

mysql> create table msg (
    -> id int primary key auto_increment,
    -> content varchar(30) not null,
    -> sendtime datetime
    -> );

在这里插入图片描述
插入数据
在这里插入图片描述
显示所有留言信息,发布日期只显示日期,不用显示时间
在这里插入图片描述
请查询在2分钟内发布的帖子

mysql> select * from msg where date_add(sendtime, interval 2 minute) > now();

在这里插入图片描述

二、MySQL的字符串函数

常用的字符串函数如下:

函数名称描述
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)去除字符串的前空格、后空格、前后空格

函数就不演示了,使用的测试表是雇员的信息表

获取emp表的ename列的字符集

可以使用charset函数获取ename列使用的字符集

mysql> select charset(ename) from emp;

在这里插入图片描述

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

使用的测试表是之前篇章的exam_result表
在这里插入图片描述
可以使用concat函数按要求进行字符串拼接

mysql> select concat(name, '的语文成绩是', chinese, '分,数学成绩是', math, '分,英语成绩是', english, '分。') 
    -> as 成绩 from exam_result;

在这里插入图片描述

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

可以使用length函数获取字符串占用的字节数
在这里插入图片描述
注:在mysql里面,一个UTF-8中文字符占用3字节,gbk中一个字符占用2个字节

注意:length函数返回字符串长度,以字节为单位。如果是多字节字符则计算多个字节数;如果是单字节字符则算作一个字节。比如:字母,数字算作一个字节,中文表示多个字节数(与字符集编码有关)

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

使用的是scott数据库中的雇员信息表emp
在这里插入图片描述
可以使用replace函数进行替换

myql> select ename, replace(ename, 'S', '上海') from emp;

在这里插入图片描述

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

可以使用substring函数进行截取子串

mysql> select ename, substring(ename, 2, 2) from emp;

在这里插入图片描述

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

  • 使用substring函数,截取员工姓名的第一个字符,然后使用lcase将其转换成小写。
  • 使用substring函数,截取员工姓名的第二个字符及其后续字符。
  • 使用concat函数,将第一次截取并转换成小写的首字母,和第二次截取的字符串进行连接。
mysql> select ename, concat(lcase(substring(ename, 1, 1)), substring(ename, 2)) from emp;

在这里插入图片描述
注意:在MySQL中,字符串的下标是从1开始的。

ltrim、rtrim和trim函数

trim函数用于去除字符串的前后空格
在这里插入图片描述
ltrim和rtrim函数分别用于去除字符串的前空格和后空格
在这里插入图片描述

三、MySQL的数学函数

常用的数学函数如下:

函数名称描述
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(number)

该函数用于获取一个数的绝对值
在这里插入图片描述

bin(decimal_number)

函数用于将一个十进制数转换成二进制
在这里插入图片描述

hex(decimal_number)

该函数用于将一个十进制数转换成十六进制
在这里插入图片描述

conv(number, from_base, to_base)

函数用于将一个数从一个进制转换成另一个进制
在这里插入图片描述

ceiling(number) 和 floor(number)

ceiling函数用于对一个数进行向上取整(向大的方向取整,向上取整后得到的是第一个大于等于该数的整数)
在这里插入图片描述
floor函数用于对一个数进行向下取整(向小的方向取整,向下取整后得到的是第一个小于等于该数的整数)
在这里插入图片描述

format(number, n)

该函数用于格式化一个数字,保留n位小数(四舍五入)
在这里插入图片描述

rand()

该函数用于生成0.0到1.0的随机浮点数
在这里插入图片描述
如果想要生成0到100的随机数,可以用生成的随机浮点数乘以100,然后再以某种取整方式进行取整
在这里插入图片描述

mod(number, denominator)

该函数用于对数值进行求余运算
在这里插入图片描述

四、 其它函数

user()函数

该函数用于获取MySQL连接的当前用户名和主机名( 查询当前用户)
在这里插入图片描述

md5(str)函数

该对一个字符串进行md5摘要,摘要后得到一个32位字符串
在这里插入图片描述
注:一般情况下公司内部数据库不会存储用户的明文密码,而会将用户密码形成摘要后存储对应的摘要,当用户登录账号时,将用户输入的的密码形成摘要后与数据库中存储的摘要做对比,如果对比成功则允许登录。

database()函数

该函数用于显示当前正在使用的数据库
在这里插入图片描述

password(str)函数

password(str)函数,MySQL数据库使用该函数对用户加密,一般经常使用这个对用户密码加密。
在这里插入图片描述

ifnull(val1, val2)函数

如果val1为null,返回val2,否则返回val1的值,类似与C语言的三目运算符
在这里插入图片描述
--------------------- END ----------------------

「 作者 」 枫叶先生
「 更新 」 2023.8.21
「 声明 」 余之才疏学浅,故所撰文疏漏难免,
          或有谬误或不准确之处,敬请读者批评指正。

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

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

相关文章

Netty为什么高效,为什么这么受欢迎?

文章目录 前言Netty 解决的问题简化网络编程粘包和拆包 高性能的设计多线程调度零拷贝 总结 前言 上篇文章通过 Java NIO 的处理流程与 Netty 的总体流程比较,并结合 Netty 的源码,可以更加清晰地理解Netty。本文将结合源码详细解析Netty的高效和强大功…

MySQL 用户管理操作

目录 一、用户管理概述 二、用户管理 1、创建用户 2、删除用户 三、账户密码管理 1、root用户修改自己的密码 2、ROOT用户修改其他普通用户密码 3、普通用户修改自己的密码 4、ROOT用户密码忘记解决办法 1)Linux系统 2)windows系统 四、用户权…

中小学vr仿真教学课件综合管理平台拓宽了学生的视野

VR智慧教学平台可以为实践课程提供全方位的辅助,帮助学生更好地理解和掌握知识。本文将详细介绍VR智慧教学平台在实践课程中的作用。 一、提供沉浸式的学习体验 传统的实践课程往往需要学生亲自动手操作,但由于条件限制,很多学生无法获得实际…

【Linux命令行与Shell脚本编程】第二十章 sed进阶

Linux命令行与Shell脚本编程 第二十章 sed进阶 文章目录 Linux命令行与Shell脚本编程十.sed进阶10.1.多行命令(nNDP)10.1.1.next命令10.1.1.1.单行next命令n10.1.1.2.合并文本行N 10.1.2.多行删除命令D10.1.3.多行打印命令P 10.2.保留空间(hHgGx)10.3.排除命令(!)10.4.改变执行…

如何管理一个散漫的团队?

散漫的团队管理,是一个让人头疼的问题。团队成员缺乏积极性,工作效率低下,协作能力也不强,这样的团队很容易导致项目延误,影响整个团队的工作进展。那么,如何管理一个散漫的团队呢?接下来&#…

问道管理:环保板块走势强劲,启迪环境三连板,碧兴物联等涨停

环保板块21日盘中大幅走高,到发稿,碧兴物联、国泰环保、太和水、正和生态、启迪环境等涨停,钱江生化涨近9%。值得注意的是,启迪环境已连续3个交易日涨停, 音讯面上,近日国家发改委等部门联合发布《关于促进…

常见的网络设备有哪些?分别有什么作用?

个人主页:insist--个人主页​​​​​​ 本文专栏:网络基础——带你走进网络世界 本专栏会持续更新网络基础知识,希望大家多多支持,让我们一起探索这个神奇而广阔的网络世界。 目录 一、网络设备的概述 二、常见的网络设备 1、…

0009Java程序设计-jsp在线学习平台设计与实现

摘 要目 录系统实现开发环境 摘 要 在线学习平台,是一个利用因特网作为平台传送教学内容,实施网上教学,进行网上交流和学习的信息系统。构建在线学习系统平台,可以克服传统课堂教育的局限性,形成一种主动的、协作的、…

23种设计模式攻关

👍一、创建者模式 🔖1.1、单例模式 单例模式(Singleton Pattern),用于确保一个类只有一个实例,并提供全局访问点。 在某些情况下,我们需要确保一个类只能有一个实例,比如数据库连接…

[oneAPI] 基于BERT预训练模型的命名体识别任务

[oneAPI] 基于BERT预训练模型的命名体识别任务 Intel DevCloud for oneAPI 和 Intel Optimization for PyTorch基于BERT预训练模型的命名体识别任务语料介绍数据集构建使用示例 命名体识别模型前向传播模型训练 结果 参考资料 比赛:https://marketing.csdn.net/p/f3…

PyCharm PyQt5 开发环境搭建

环境 python:3.6.x PyCharm:PyCharm 2019.3.5 (Community Edition) 安装PyQT5 pip install PyQt5 -i https://pypi.douban.com/simplepip install PyQt5-tools -i https://pypi.douban.com/simple配置PyCharm PyQtUIC Program :D:\Pytho…

疲劳驾驶检测和识别4:C++实现疲劳驾驶检测和识别(含源码,可实时检测)

疲劳驾驶检测和识别4:C实现疲劳驾驶检测和识别(含源码,可实时检测) 目录 疲劳驾驶检测和识别4:C实现疲劳驾驶检测和识别(含源码,可实时检测) 1.疲劳驾驶检测和识别方法 2.人脸检测方法 3.疲劳驾驶识别模型(Python) &#xf…

iPhone开启“轻点唤醒”功能但点击屏幕无反应怎么解决?

iPhone的“轻点唤醒”功能启用时,用户只需手指轻触或点击手机屏幕即可快速唤醒设备,无需按压任何按钮。然而,有些用户在使用“轻点唤醒”功能唤醒屏幕时,遇到该功能失灵,无法正常唤醒屏幕的情况,这是怎么回…

找出数组中最小K个数【最小堆】

面试题 17.14. 最小K个数 - 力扣&#xff08;LeetCode&#xff09; 设计一个算法&#xff0c;找出数组中最小的k个数。以任意顺序返回这k个数均可。 示例&#xff1a; 输入&#xff1a; arr [1,3,5,7,2,4,6,8], k 4 输出&#xff1a; [1,2,3,4]提示&#xff1a; 0 < l…

MySQL系统变量 会话变量,用户变量、mysql8.0的全局变量持久化

系统变量 分类 全局系统变量需要添加 global 关键字&#xff0c;有时把全局系统变量简称 全局变量 会话系统变量需要添加 session 关键字&#xff0c;有时也把会话系统变量称为 local 变量 局部变量 如果不写&#xff08;global、session&#xff09;默认会话级别。 静态变量在…

导轨式频率脉冲信号隔离转换电压电流信号变换器0-5KHz/0-10KHz/1-5KHz转0-10V/1-5V/0-20mA/4-20mA

主要特性 将单位脉冲信号转换成直流电压或电流信号。 精度等级&#xff1a;0.1 级、0.2 级、0.5 级。产品出厂前已检验校正&#xff0c;用户可以直接使用。 国际标准信号输入: 0-5KHz/0-10KHz/1-5KHz等 0-5V/0-10V/1-5V 等电压信号,0-10mA/0-20mA/4-20mA 等电流信号。 …

小技巧:一键上传多文件,快速导出3D翻页的电子书

​hi&#xff01;今天咱们聊一聊怎样一键上传多文件&#xff0c;快速导出电子书&#xff0c;其实就是一款很方便的工具。它能一次批量上传多文件&#xff0c;在1分钟后就能呈现出一本3D翻页的电子书 接下来就是看小编是怎么操作的&#xff0c;一起学起来吧&#xff01; 【操作步…

Linux —— 进程间通信(管道)

目录 一&#xff0c;进程间通信 二&#xff0c;管道 匿名管道 命名管道 一&#xff0c;进程间通信 进程间通信&#xff08;IPC&#xff0c;InterProcess Communication&#xff09;&#xff0c;即在不同进程之间进行信息的传播或交换&#xff1b;由于一般进程用户地址空间是…

爬虫逆向实战(十九)--某号站登录

一、数据接口分析 主页地址&#xff1a;某号站 1、抓包 通过抓包可以发现登录接口 2、判断是否有加密参数 请求参数是否加密&#xff1f; 通过查看“载荷”模块可以发现有一个jsondata_rsa的加密参数 请求头是否加密&#xff1f; 无响应是否加密&#xff1f; 无cookie是否…

数据分析问答总结

一、SQL窗口函数 1.是什么 OLAP&#xff08;Online Anallytical Processing联机分析处理&#xff09;&#xff0c;对数据库数据进行实时分析处理。 2.基本语法&#xff1a; <窗口函数>OVER &#xff08;PARTITION BY <用于分组的列名> ORDER BY <用于排序的…