我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【MySQL基础教程】函数的介绍与使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【MySQL基础教程】函数的介绍与使用

前言

在这里插入图片描述

本文为 【MySQL基础教程】函数的介绍与使用 相关知识,下边具体将对字符串函数数值函数日期函数流程函数等进行详尽介绍~

📌博主主页:小新要变强 的主页
👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~
👉Java微服务开源项目可参考:企业级Java微服务开源项目(开源框架,用于学习、毕设、公司项目、私活等,减少开发工作,让您只关注业务!)


目录

在这里插入图片描述

函数 是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中
已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那
么,函数到底在哪儿使用呢?

我们先来看两个场景:

在这里插入图片描述

  • (1)在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能 够看到当前员工入职的天数。而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计 算出天数呢?
  • (2)在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?

其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。

MySQL中的函数主要分为以下四类: 字符串函数数值函数日期函数流程函数

一、字符串函数

MySQL中内置了很多字符串函数,常用的几个如下:

函数功能
CONCAT(S1,S2,…Sn)字符串拼接,将S1,S2,… Sn拼接成一个字符串
LOWER(str)将字符串str全部转为小写
UPPER(str)将字符串str全部转为大写
LPAD(str,n,pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str,n,pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str,start,len)返回从字符串str从start位置起的len个长度的字符串

演示如下:

A. concat : 字符串拼接

select concat('Hello' , ' MySQL');

B. lower : 全部转小写

select lower('Hello');

C. upper : 全部转大写

select upper('Hello');

D. lpad : 左填充

select lpad('01', 5, '-');

E. rpad : 右填充

select rpad('01', 5, '-');

F. trim : 去除空格

select trim(' Hello MySQL ');

G. substring : 截取子字符串

select substring('Hello MySQL',1,5);

案例:

在这里插入图片描述

由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如: 1号员
工的工号应该为00001。

update emp set workno = lpad(workno, 5, '0');

处理完毕后, 具体的数据为:

在这里插入图片描述

二、数值函数

常见的数值函数如下:

函数功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,y)返回x/y的模
RAND()返回0~1内的随机数
ROUND(x,y)求参数x的四舍五入的值,保留y位小数

演示如下:

A. ceil:向上取整

select ceil(1.1);

B. floor:向下取整

select floor(1.9);

C. mod:取模

select mod(7,4);

D. rand:获取随机数

select rand();

E. round:四舍五入

select round(2.344,2);

案例:

通过数据库的函数,生成一个六位数的随机验证码。

思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础
上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0

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

三、日期函数

常见的日期函数如下:

函数功能
CURDATE()返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date, INTERVAL exprtype)返回一个日期/时间值加上一个时间间隔expr后的时间值
DATEDIFF(date1,date2)返回起始时间date1 和 结束时间date2之间的天数

演示如下:

A. curdate:当前日期

select curdate();

B. curtime:当前时间

select curtime();

C. now:当前日期和时间

select now();

D. YEAR , MONTH , DAY:当前年、月、日

select YEAR(now());select MONTH(now());select DAY(now());

E. date_add:增加指定的时间间隔

select date_add(now(), INTERVAL 70 YEAR );

F. datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');

案例:

查询所有员工的入职天数,并根据入职天数倒序排序。

思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

select name, datediff(curdate(), entrydate) as 'entrydays' from emp order byentrydays desc;

四、流程函数

流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。

函数功能
IF(value , t , f)如果value为true,则返回t,否则返回f
IFNULL(value1 , value2)如果value1不为空,返回value1,否则返回value2
CASE WHEN [ val1 ] THEN [res1] …ELSE [ default ] END如果val1为true,返回res1,… 否则返回default默认值
CASE [ expr ] WHEN [ val1 ] THEN [res1] … ELSE [ default ] END如果expr的值等于val1,返回res1,… 否则返回default默认值

演示如下:

A. if

select if(false, 'Ok', 'Error');

B. ifnull

select ifnull('Ok','Default');select ifnull('','Default');select ifnull(null,'Default');

C. case when then else end
需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

select    name,    ( case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end )     as '工作地址'from emp;

案例:

create table score(  id int comment 'ID',  name varchar(20) comment '姓名',  math int comment '数学',  english int comment '英语',  chinese int comment '语文') comment '学员成绩表';insert into score(id, name, math, english, chinese) VALUES (1, 'Tom', 67, 88, 95), (2, 'Rose' , 23, 66, 90),(3, 'Jack', 56, 98, 76);

具体的SQL语句如下:

select  id,  name,  (case when math >= 85 then '优秀' when math >=60 then '及格' else '不及格' end )'数学',  (case when english >= 85 then '优秀' when english >=60 then '及格' else '不及格' end )'英语',  (case when chinese >= 85 then '优秀' when chinese >=60 then '及格' else '不及格' end ) '语文'from score;

MySQL的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例场景,
思考一下需要用到什么样的函数来实现?

  • (1)数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢? --------> 答案: datediff
  • (2)数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢? --------> 答案: case … when …

后记

在这里插入图片描述

👉Java全栈学习路线可参考:【Java全栈学习路线】最全的Java学习路线及知识清单,Java自学方向指引,内含最全Java全栈学习技术清单~
👉算法刷题路线可参考:算法刷题路线总结与相关资料分享,内含最详尽的算法刷题路线指南及相关资料分享~

来源地址:https://blog.csdn.net/qq_42146402/article/details/128448246

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【MySQL基础教程】函数的介绍与使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【MySQL基础教程】函数的介绍与使用

前言 本文为 【MySQL基础教程】函数的介绍与使用 相关知识,下边具体将对字符串函数,数值函数,日期函数,流程函数等进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Java全栈学习路线可参考:【Java
2023-08-18

Linux编程基础教程:exit函数介绍

在Linux编程中,exit()函数是一个用于结束程序的系统调用exit()函数的原型如下:#include void exit(int status);其中,status参数表示程序的退出状态。通常情况下,0表示
Linux编程基础教程:exit函数介绍
2024-09-09

PHP循环函数使用介绍之PHP基础入门教程

PHP循环主要有四种:while,do…while,for,foreach。下面我们分开讲解每种循环的用法
2022-11-15

【MySQL基础教程】图形化界面工具介绍、安装与使用

前言 本文为 【MySQL基础教程】图形化界面工具介绍、安装与使用 相关介绍,下边将对图形化界面工具介绍,DataGrip的安装与DataGrip的使用进行详尽介绍~ 📌博主主页:小新要变强 的主页 👉Ja
2023-08-21

【MySQL基础教程】DQL语句详细介绍

前言 本文为 【MySQL基础教程】DQL语句 相关内容介绍,下边具体将对DQL语句基本语法,基础查询,条件查询,聚合函数,分组查询,排序查询,分页查询,相关案例,执行顺序等进行详尽介绍~ 📌博主主页:小新要变强 的主页
2023-08-25

MySQL基础教程13 —— 函数之与GROUP BY子句同时使用的函数

1. GROUP BY(聚合)函数 本章论述了用于一组数值操作的 group (集合)函数。除非另作说明, group 函数会忽略 NULL 值。 假如你在一个不包含 ROUP BY子句的语句中使用一个 group函数 ,它相当于对所有行进
2022-05-17

python基础之reverse和reversed函数的介绍及使用

我们在整理资料的时候,有的时候过于混乱难以整理,这时我们不妨可以对它先进行一个排序,这样可以方便我们浏览,查询,有利于我们整理资料,下面这篇文章主要给大家介绍了关于python基础之reverse和reversed函数的介绍及使用,需要的朋友可以参考下
2022-12-23

Python ttkbootstrap的介绍与使用教程

这篇文章主要介绍了Python ttkbootstrap的介绍与使用,本文仅仅简单介绍了ttkbootstrap的使用,而ttkbootstrap可以使我们创建一个简单用户图形界面,并对其可以做一些操作,需要的朋友可以参考下
2023-03-21

MySQL基础教程12 —— 函数之其他函数

1. 位函数 对于比特运算,MySQL 使用 BIGINT (64比特) 算法,因此这些操作符的最大范围是 64 比特。|Bitwise OR: mysql> SELECT 29 | 15; -> 31 其结果为一个64比特无符号整数。&B
2022-05-17

Pythoneval()与exec()函数使用介绍

exec函数执行的是python语句,没有返回值,eval函数执行的是python表达式,有返回值,exec函数和eval函数都可以传入命名空间作为参数,本文给大家介绍下Pythoneval()和exec()函数,感兴趣的朋友跟随小编一起看看吧
2023-01-29

MySQL基础教程6 —— 函数之控制流程函数

语法:CASE value WHEN [compare-value] THEN result [WHEN [compare-value] THEN result ...] [ELSE result] END CASE WHEN [condi
2022-05-20

MySQL基础教程7 —— 函数之字符串函数

假如结果的长度大于 max_allowed_packet 系统变量的最大值时,字符串值函数的返回值为NULL。 对于在字符串位置操作的函数,第一个位置的编号为 1。ASCII(str)返回值为字符串str 的最左字符的数值。假如str为空字
2022-06-01

编程热搜

目录