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输入设备的驱动程序,我们最常见的就按键,触摸,插拔耳机这些。其中事件设备驱动程序是目前通用的驱动程序,可支持键盘、鼠标…

Go基础语法:list

概述 container/list包实现了基本的双向链表功能,包括元素的插入、删除、移动功能 链表元素 链表中元素定义如下: type Element struct {Value interface{} }func (e *Element) Next() *Element func (e *Element) Prev() *Element通过Value属性来获…

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 (值列表); …

HTML计时事件(JavaScript)网页电子钟+网页计时器

setTimeout("函数","未来指定毫秒后调用函数"); clearTimeout(setTimeout("函数","未来指定毫秒后调用函数")); <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title>…

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

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

前端架构师之09_JavaScript_BOM

1 什么是 BOM 对象 BOM&#xff1a;Brower Object Model&#xff0c;指的是浏览器对象模型。 BOM 用来操作浏览器窗口及窗口上的控件&#xff0c;实现用户和页面的动态交互。 浏览器对象&#xff1a;浏览器提供的一系列内置对象的统称。 BOM 浏览器对象模型&#xff1a;各内…

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

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

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

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

Android - Monkey 测试应用出现Crash报错IllegalStateException

问题描述 平时使用Lottie动画都是正常的&#xff0c;没出过这个crash问题&#xff0c;看下的报错信息&#xff0c;代码中文件夹也设置了&#xff0c;没看出来问题。 AndroidRuntime: java.lang.IllegalStateException: You must set an images folder before loading an imag…

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

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

C语言 L1-016 查验身份证

L1-016 查验身份证 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下&#xff1a; 首先对前17位数字加权求和&#xff0c;权重分配为&#xff1a;{7&#xff0c;9&#xff0c;10&#xff0c;5&#xff0c;8&#xff0c;4&#xff0c…

【MySQL】基础实战篇(1)—数据库与数据表的操作

创建管理数据库创建数据库查看与选择数据库修改数据库删除数据库 创建管理数据表创建数据表查看数据修改数据表删除数据表 创建管理数据库 创建数据库 语法&#xff1a; CREATE DATABASE 数据库名称;注&#xff1a; 在同一个数据库服务器上必须是唯一的&#xff0c;不允许存…

c++模版元编程,基于递归的编程

基于递归的模版元编程允许在模版中进行递归调用&#xff0c;以便在编译时生成更复杂的代码。这种技术的核心思想是将问题分解为一个个较小的子问题&#xff0c;并通过递归地调用模版来处理它们。 模版元编程的基本概念和原理&#xff1a; 模版元编程是一种利用C模版系统在编译时…

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

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

postman发送图片

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

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

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

蓝牙核心规范(V5.4)10.9-BLE 入门笔记之GAP

1.概述 蓝牙核心规范的通用访问配置文件(GAP)部分定义了与设备发现和在两个设备之间建立连接有关的过程。如何执行数据的基本无连接通信、如何使用周期性广播(参见 PADVB-LE Periodic Advertising Broadcast)以及如何设置等时通信(参见 LE BIS和LE CIS - Isochronous Com…

购物车案例

1功能模块分析 请求动态渲染购物车&#xff0c;数据存vuex 数据框控件 修改数据 动态计算总价和总数量 2脚手架新建项目 终端安装axios&#xff1a;npm install axios -g 基于json-server工具&#xff0c;准备后端接口服务环境:&#xff08;模拟后台假数据&#xff09; 1…