MySQL基础篇-函数

目录

 1.字符串函数

2.数值函数

3.日期函数

 4.流程函数

5.小结


在MySQL中,函数是一种数据库对象,用于执行特定的操作或计算,并返回结果。函数通常用于查询、数据处理和转换,以及在SQL语句中执行其他操作。MySQL提供了许多内置函数,可以用于各种用途。

 1.字符串函数

函数功能
CONCAT(str1, str2, ...)将两个或多个字符串连接成一个字符串
LENGTH(str)返回字符串的长度(字符数)
SUBSTRING(str, start, length)从字符串中提取子字符串,可以指定起始位置和提取的字符数
UPPER(str)将字符串转换为大写
LOWER(str)将字符串转换为小写
TRIM([leading | trailing | both] trimstr FROM str)去除字符串开头、结尾或两端指定字符(trimstr)
REPLACE(str, from_str, to_str)替换字符串中的特定子字符串
LEFT(str, length)返回字符串左边指定长度的子字符串
RIGHT(str, length)返回字符串右边指定长度的子字符串
LOCATE(substr, str[, start])查找子字符串(substr)在字符串中的位置
INSTR(str, substr)返回子字符串在字符串中的位置
CHAR_LENGTH(str)返回字符串的字符数,而不是字节数
REVERSE(str)反转字符串中的字符顺序
CONCAT_WS(separator, str1, str2, ...)将多个字符串连接成一个字符串,使用指定的分隔符(separator)分隔它们
LEFT()和RIGHT()这两个函数用于从字符串的左边或右边提取指定长度的字符
LPAD(str, length, padstr)将字符串左填充到指定长度,使用指定的填充字符(padstr)
RPAD(str, length, padstr)将字符串右填充到指定长度,使用指定的填充字符(padstr)
MID()SUBSTRING()用于从字符串中提取子字符串

常用的字符串函数

字符串拼接

# 字符串拼接
select concat('mysql',' hello');

返回结果:

转换大小写

# 转换为小写
select lower('DAN');# 转换为大写
select upper('dog');

左右填充字符串

# 左侧填充
select lpad('11',5,'_');# 右侧填充
select rpad('11',9,'%');

 去除左右空格
# 去除左右空格
select  trim('  dag d awd aw');

字符串截取

select substring('hello world',1,7);

2.数值函数

  1. SUM(column):计算指定列中所有数值的总和。

  2. AVG(column):计算指定列中所有数值的平均值。

  3. COUNT(column):计算指定列中非NULL值的数量。可以用于计算行数或满足特定条件的行数。

  4. MAX(column):找出指定列中的最大值。

  5. MIN(column):找出指定列中的最小值。

  6. ROUND(number, decimals):将数值四舍五入到指定的小数位数。

  7. CEIL(number):将数值向上取整为最接近的整数。

  8. FLOOR(number):将数值向下取整为最接近的整数。

  9. ABS(number):返回数值的绝对值。

  10. POWER(base, exponent):计算一个数的指定幂次方。

  11. SQRT(number):计算一个数的平方根。

  12. MOD(dividend, divisor):计算两个数相除的余数。

  13. RAND():生成一个介于0和1之间的随机浮点数

  14. TRUNCATE(number, decimals):截取一个数的小数部分,保留指定的小数位数。

  15. SIGN(number):返回一个数的符号,即1表示正数,-1表示负数,0表示零。

  16. LOG(number):计算一个数的自然对数.

这些数值函数允许你执行各种数学和统计操作,包括求和、平均值、最大值、最小值、取整、绝对值、幂运算、余数计算等。这些函数在数据分析、报表生成、计算和数值处理方面非常有用。

小案例 :通过上面的数值函数,生成一个六位数的随机验证码

思路:采用随机生成函数RAND(),乘以对应的位数,需要考虑到小数点不够的情况,在使用左填充或右填充补齐六位数

select lpad(round((rand()*1000000), 0),6,'0')

3.日期函数

  1. NOW():返回当前日期和时间。

  2. CURDATE():返回当前日期。

  3. CURTIME():返回当前时间。

  4. DATE_FORMAT(date, format):将日期按指定格式格式化为字符串。例如,"%Y-%m-%d"表示年-月-日。

  5. DAYNAME(date):返回日期对应的星期几的名称。

  6. MONTHNAME(date):返回日期对应的月份的名称。

  7. DAY(date):返回日期的日部分。

  8. MONTH(date):返回日期的月部分。

  9. YEAR(date):返回日期的年份部分。

  10. HOUR(time):返回时间的小时部分。

  11. MINUTE(time):返回时间的分钟部分。

  12. SECOND(time):返回时间的秒部分。

  13. TIMESTAMPDIFF(unit, start, end):计算两个日期或时间之间的差值,单位可以是秒、分、时、天、月等。

  14. TIMESTAMPADD(unit, interval, date):将指定的时间间隔添加到日期或时间中。

  15. DATE_ADD(date, INTERVAL expr unit):在日期上添加一段时间。

  16. DATE_SUB(date, INTERVAL expr unit):从日期中减去一段时间。

  17. DATEDIFF(end, start):计算两个日期之间的天数差异。

  18. STR_TO_DATE(str, format):将字符串转换为日期,根据指定的格式。

这些日期函数允许你在查询和数据操作中执行各种日期和时间处理操作,如日期格式化、日期计算、日期比较等。你可以根据具体需求选择适当的函数来处理日期和时间数据。

小案例:查询所有员工的入职天数,并根据入职天数进行倒序排序

SELECT employee_id, DATEDIFF(NOW(), hire_date) AS days_since_hire
FROM employees
ORDER BY days_since_hire DESC;

使用 DATEDIFF 函数来计算当前日期(NOW())与入职日期之间的天数差,然后将结果按照 days_since_hire 字段进行倒序排序,以显示入职天数最长的员工排在前面。

 4.流程函数

CASE 表达式:用于在SQL查询中实现条件分支逻辑。它有两种主要形式:

简单 CASE 表达式:类似于多个 IF-THEN-ELSE 语句。

CASE expressionWHEN value1 THEN result1WHEN value2 THEN result2...ELSE default_result
END

搜索 CASE 表达式:可以使用更复杂的条件来实现分支逻辑。

CASEWHEN condition1 THEN result1WHEN condition2 THEN result2...ELSE default_result
END

IF 函数:用于实现条件逻辑,类似于编程语言中的条件语句。它接受一个条件表达式,如果条件为真,则返回一个值;否则返回另一个值。

IF(condition, value_if_true, value_if_false)

COALESCE 函数:从一组表达式中返回第一个非NULL的值。通常用于处理可能为NULL的数据。

COALESCE(expr1, expr2, ...)

 NULLIF 函数:如果两个表达式相等,则返回NULL,否则返回第一个表达式的值。用于处理两个表达式的相等性。

NULLIF(expr1, expr2)

5.小结

常用的函数

1. 字符串函数

CONCAT,LOWER,UPPER,LPAD,RPAD,TEIM,SUNSTRING

2.数值函数

CEIL,FLOOR,MOD,RAND,ROUND

3.日期函数

CURDATE,CURTIME,NOW,YEAR,MONTH,DAY,DATE_ADD,DATEDIFF

4.流程函数

IF,CASE[...] WHEN ... THEN ... ELSE ... END

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

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

相关文章

linux驱动之input子系统简述

文章目录 一、什么是input子系统二、内核代码三、代码分析 一、什么是input子系统 Input驱动程序是linux输入设备的驱动程序,我们最常见的就按键,触摸,插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标…

C++ -- IO流

目录 C语言的输入与输出 CIO流 C标准IO流 C文件IO流 文件常见的打开方式如下 以二进制的形式操作文件 以文本的形式操作文件 读写结构体 stringstream的简单介绍 C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是scanf ()与printf()。 scanf(): 从标准输…

零基础学空手道_3_空手道的站姿(上)

欢迎回来一起学习刚柔流空手道。 讲一些比较严肃的内容,就是礼仪和站姿。 空手道一开始不是要学习怎么打,而是要学习怎么去尊重别人和不打。所以礼仪很重要。 一切事情都是以礼仪开始,以礼仪结束。这叫以理始以理终。 空手道也是这样&#xf…

MySQL - DML数据增删改

功能介绍: DML(Data Manipulation Language)数据操作语言,用来对数据库中表的数据记录进 行增、删、改操作。 添加数据(INSERT) 基本语法:insert into 表名(字段列表) values (值列表); …

【问题解决】Android Studio 无法连接手机(荣耀90)无法识别手机usb

问题描述: 使用AS调试的时候遇到一个问题,由于是重装后的电脑,什么都没配置,但是两个旧手机都在安装SDK tools里的Google usb driver后直接连上AS,而我的新手机却死活连不上,查了一下午,啥方法都…

Redis原理(一):Redis数据结构(上)

文章目录 1、 Redis数据结构-动态字符串2、 Redis数据结构-intset3、 Redis数据结构-Dict4、 Redis数据结构-ZipList5、 Redis数据结构-ZipList的连锁更新问题6、 Redis数据结构-QuickList1、 Redis数据结构-动态字符串 我们都知道Redis中保存的Key是字符串,value往往是字符串…

MongoDB(二)基础操作 创建、删除,查询等

mongodb有一个特点,如果某个库,库下面没数据(mongodb成集合),该库等于不存在的 mongodb只要创建一个库,在库下写入数据,该库才会生成 mongoshe [-hhost -pxxx] 创建数据库 use 数据库名 # 如果…

c语言常见字符函数、内存函数(详讲)

前言: 其实在c语言当中是没有字符串这一概念的,不像c里面有string类型用来存放字符串。在c语言中我们只能把字符串放在字符串常量以及字符数组中。 1.常见字符串函数 1.1strlen size_t strlen ( const char * str );作用:用来求字符串中 …

人工智能的未来:从 Jetson 到 GPT,沙龙见闻与洞察

前言 在当今数字化时代,人工智能正以惊人的速度改变着我们的生活和工作方式。从智能语音助手到自动驾驶汽车,从智能家居到医疗诊断,人工智能技术已经广泛渗透到各个行业,并为其带来了巨大的变革和创新。越来越多的行业专家、学者…

postman发送图片

POSTMAN 如何发送携带图片的请求? 闲话不叙 步骤如下: 新建一个请求,在Headers中添加一对k-v : Content-Type > multipart/form-data 请求的接口: RequestMapping("/fileUploadController")public String fileUpload(MultipartFile fil…

【C++】构造函数和析构函数第一部分(构造函数和析构函数的作用)--- 2023.9.25

目录 前言初始化和清理的概念构造函数和析构函数的作用构造函数的作用析构函数的作用 使用构造函数和析构函数的注意事项默认的构造函数和析构函数结束语 前言 在使用c语言开发的项目场景中,我们往往会遇到申请空间的需求,同时也肯定遇到过程序运行一段…

积跬步致千里 || 可视化动图展示

可视化动图展示 目前只能在 jupyter notebook 中测试成功 %matplotlib notebook import numpy as np import matplotlib.pyplot as plt import timen 500 data np.random.normal(0,1,n)fig plt.figure() ax fig.add_subplot(111)fig.show() fig.canvas.draw()for i in ra…

什么是Redux?它的核心概念有哪些?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 什么是Redux?⭐ 它的核心概念有哪些?⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 欢迎来到前端入门之旅!感兴趣的可以订阅本专栏哦!这个专栏是为那些对Web开发…

C++——模板

目录 泛型编程 函数模板 函数模板概念 函数模板格式 类模板 类模板的定义格式 类模板的实例化 泛型编程 泛型编程是什么呢?泛型编程:编写与类型无关的通用代码,是代码复用的一种手段。模板是泛型编程的基础。型就是类型,不…

【Java】医院智能导诊小程序源码,springboot框架

智能导诊 可以根据用户症状描述精准推荐科室及医生智能学习医院历史数据及自动进行科室对照,与医院的系统连接后,患者可直接完成预约。 一、系统概述 “智能导诊”以人工智能手段为依托,为人们提供智能分诊、问病信息等服务,在一定程度上满足了人们自我…

低照度增强算法(图像增强+目标检测+代码)

本文介绍 在增强低光图像时,许多深度学习算法基于Retinex理论。然而,Retinex模型并没有考虑到暗部隐藏的损坏或者由光照过程引入的影响。此外,这些方法通常需要繁琐的多阶段训练流程,并依赖于卷积神经网络,在捕捉长距…

python+vue驾校驾驶理论考试模拟系统

管理员的主要功能有: 1.管理员输入账户登陆后台 2.个人中心:管理员修改密码和账户信息 3.用户管理:管理员可以对用户信息进行添加,修改,删除,查询 4.添加选择题:管理员可以添加选择题目&#xf…

ElementUI首页导航和左侧菜单静态页面的实现,以及Mockjs和总线的介绍

目录 前言 一. Mock.js 1.1 什么是Mock.js 1.2 Mockjs的安装与配置 1.2.1 安装Mock.js 1.2.2 引入Mock.js 1.3 Mockjs的使用 1.3.1 定义数据测试文件 1.3.2 mock拦截ajax请求 二. 首页导航以及左侧菜单的搭建 2.1 什么是总线 2.2 创建三个vue组件 首页AppMain.vue组…

QT 6.5下载安装及配置教程

一、下载 今天打算换一个QT安装版本,去官网看了一眼发现变成了在线安装。 本来官方下载的就慢,现在更是雪上加霜,现在给大家推荐几种下载方式。 1、国内镜像 中国科学技术大学:http://mirrors.ustc.edu.cn/qtproject/ 清华大学:https://mirrors.tuna.ts…

电压放大器在超声成像中的工作原理和应用

在超声成像中,电压放大器是一种重要的仪器,主要用于放大从探头传来的微弱信号,并将其转换为可以处理和显示的电信号。下面安泰电子将详细介绍电压放大器在超声成像中的工作原理和应用。 图:超声成像 工作原理 在超声成像中&#x…