【MySQL系列】 第三章 · 函数
写在前面
Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正!谢谢大家!!!
如果小哥哥小姐姐们对我的文章感兴趣,请不要吝啬你们的小手,多多点赞加关注呀!❤❤❤ 爱你们!!!
目录
写在前面
1. 函数简介
2. 字符串函数
3. 数值函数
4. 日期函数
5. 流程函数
结语
【往期回顾】
【MySQL系列】 第一章 · MySQL概述
【MySQL系列】第二章 · SQL(上)
【MySQL系列】 第二章 · SQL(中)
【MySQL系列】 第二章 · SQL(下)
【其他系列】
【HTML5系列】
【HTML4系列】
【CSS2系列】
【CSS3系列】
【Java基础系列】
1. 函数简介
- 函数是指一段可以直接被另一段程序调用的程序或代码。 也就意味着,这一段程序或代码在MySQL中已经给我们提供了,我们要做的就是在合适的业务场景调用对应的函数完成对应的业务需求即可。 那么,函数到底在哪儿使用呢?
- 我们先来看两个场景:
![]()
- 在企业的OA或其他的人力系统中,经常会提供的有这样一个功能,每一个员工登录上来之后都能够看到当前员工入职的天数。 而在数据库中,存储的都是入职日期,如 2000-11-12,那如果快速计算出天数呢?
- 在做报表这类的业务需求中,我们要展示出学员的分数等级分布。而在数据库中,存储的是学生的分数值,如98/75,如何快速判定分数的等级呢?
- 其实,上述的这一类的需求呢,我们通过MySQL中的函数都可以很方便的实现 。
- MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。
![]()
2. 字符串函数
- MySQL中内置了很多字符串函数,常用的几个如下:
![]()
演示如下:
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');
- 处理完毕后, 具体的数据为:
![]()
![]()
3. 数值函数
- 常见的数值函数如下:
演示如下: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');
![]()
4. 日期函数
- 常见的日期函数如下:
演示如下: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 by entrydays desc;
![]()
5. 流程函数
- 流程函数也是很常用的一类函数,可以在SQL语句中实现条件筛选,从而提高语句的效率。
演示如下:A. ifselect if(false, 'Ok', 'Error');B. ifnullselect ifnull('Ok','Default'); select ifnull('','Default'); select ifnull(null,'Default');C. case when then else end需求 : 查询 emp 表的员工姓名和工作地址 ( 北京 / 上海 ----> 一线城市 , 其他 ----> 二线城市 )selectname,( 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的常见函数我们学习完了,那接下来,我们就来分析一下,在前面讲到的两个函数的案例场景,思考一下需要用到什么样的函数来实现?
- 数据库中,存储的是入职日期,如 2000-01-01,如何快速计算出入职天数呢?
- 答案: datediff
- 数据库中,存储的是学生的分数值,如98、75,如何快速判定分数的等级呢?
- 答案: case ... when ...
![]()
结语
本人会持续更新文章的哦!希望大家一键三连,你们的鼓励就是作者不断更新的动力
相关文章:
【MySQL系列】 第三章 · 函数
写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正࿰…...
微信小程序wxss定位/选择/查找元素的几种方式
wxss定位、选择、查找元素的几种方式与css类似,下面介绍常用的几种: 选择器样例样例描述.class.intro选择所有拥有 class"intro" 的组件#id#firstname选择拥有 id"firstname" 的组件elementview选择所有 view 组件element, element…...
Canvas—从入门到案例实现
文章目录 Canvas—从入门到案例实现一、设置canvas环境1.1 <canvas>元素1.2 渲染上下文context 二、形状与路径的绘制2.1 形状绘制2.2 路径绘制2.3 绘制一个笑脸 三、使用样式和颜色四、绘制文本五、使用图像5.1 图片源5.2 获取页面内的图片5.3 缩放Scaling5.4 切片Slici…...
飞书开发学习笔记(六)-网页应用免登
飞书开发学习笔记(六)-网页应用免登 一.上一例的问题修正 在上一例中,飞书登录查看网页的界面显示是有误的,看了代码,理论上登录成功之后,应该显示用户名等信息。 最后的res.nickName是用户名,res.i18nName.en_us是英…...
【ROS】Nav2源码下载、编译、运行
【ROS】郭老二博文之:ROS目录 1、源码下载 1.1 源码地址 https://github.com/ros-planning/navigation2 1.2 创建工程目录 ROS2使用目录结果来管理项目,因此在下载前需要创建好目录结构: mkdir -p ~/git/nav2/src1.3 下载 git中默认版本是main。本人的开发环境为Ubun…...
微信小程序 30分钟倒计时功能
ps:凑个数 getTimeDiff(date) {let _this = this;let curTime = new Date(date)_this.countDown(_this.timeFormatConvert(new Date(curTime.setMinutes(curTime.getMinutes() + 30))))},timeFormatConvert(e) {const Y = e.getFullYear(); // 年const M = this.prefixZero(e.…...
JAVA判断指定日期是否在指定的时间段内
参考文献: Java语言判断当前时间在时间范围内_java判断时间区间-CSDN博客 package com.itheima.method2;import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;public class DateTest {public static voi…...
关于晋升与跳槽的一些思考
内部晋升 内部晋升是我优先考虑的,原因有很多。首先这是一个新业务,相对而言容易拿到结果。其次我想体验不同的晋升路径,内部晋升答辩,是挑战也是一次成长的机会,是一次他人帮助自己review的机会。作为从校园出来的校…...
url找不到404的问题,url被拼接
今天遇到一个测试feign调用的功能,如图所示 先说结论 Controller换成RestController 将日志设置为debug模式 被DispatcherServlet FORWARD了 找到路径 对属性设置断点,看下是哪注进来的 我们再去找encodedPath 此处是undertow的源码,但是und…...
如何解决golang开发中遇到的报错:checksum mismatch downloaded
问题描述 如题,项目开发中遇到如下报错(你的报错信息可能与我的有一点区别,如verifying的包名,但是问题本质都是一样的): verifying github.com/algorand/go-codec/codecv1.1.8/go.mod: checksum mismatc…...
4.以docker容器生成镜像推送到阿里云镜像仓库
1.开通阿里云镜像仓库 1.1 登录阿里云,访问容器镜像服务。地址如下: https://cr.console.aliyun.com/cn-shanghai/instances 1.2 个人学习为例,创建个人版实例 1.2.1 点击个人实例 1.2.2 .创建个人实例 1.2.3 创建完成后,设置…...
CSS Form表单布局
效果图 <Tab IsCard"true"><TabItem Text"表单信息-DIV版本"><div class"row"><div class"col"><label for"field1">工程名称:</label><input class"form-control" type&…...
c++ shared_mutex 读写锁使用详解
c 读写锁使用详解 std::shared_mutex c17 头文件 #include <shared_mutex>。用于实现共享和独占访问的互斥锁。提供了一种更加灵活的机制,允许多个线程在共享模式下读取数据,但只允许单个线程在独占模式下写入或修改数据。与 std::mutex 相比&am…...
淘宝商品详情接口,淘宝详情页接口,宝贝详情页接口,商品属性接口,商品信息查询,商品详细信息接口,h5详情,淘宝API接口演示案例
淘宝详情接口API可以帮助简化运营流程,更加专注于产品本身。通过调用API,可以快速获取到商品的标题、图片、价格等信息,省去了手动编写和编辑的繁琐过程。这样就可以更快地上架新品、更新商品信息,提高运营的效率。 taobao.item_…...
python爬取网站数据,作为后端数据
一. 内容简介 python爬取网站数据,作为后端数据 二. 软件环境 2.1vsCode 2.2Anaconda version: conda 22.9.0 2.3代码 链接: 三.主要流程 3.1 通过urllib请求网站 里面用的所有的包 ! pip install lxml ! pip install selenium ! pip install…...
【机器学习】K近邻算法:原理、实例应用(红酒分类预测)
案例简介:有178个红酒样本,每一款红酒含有13项特征参数,如镁、脯氨酸含量,红酒根据这些特征参数被分成3类。要求是任意输入一组红酒的特征参数,模型需预测出该红酒属于哪一类。 1. K近邻算法介绍 1.1 算法原理 原理&a…...
基于安卓android微信小程序的快递取件及上门服务系统
项目介绍 本文从管理员、用户的功能要求出发,快递取件及上门服务中的功能模块主要是实现管理员服务端;首页、个人中心、用户管理、快递下单管理、预约管理、管理员管理、系统管理、订单管理,用户客户端;首页、快递下单、预约管理…...
leetCode 92.反转链表 II + 图解
92. 反转链表 II - 力扣(LeetCode) 给你单链表的头指针 head 和两个整数 left 和 right ,其中 left < right 。请你反转从位置 left 到位置 right 的链表节点,返回 反转后的链表 206. 反转链表 - 力扣(LeetCode&am…...
【MongoDB】索引 – 通配符索引
一、准备工作 这里准备一些数据 db.books.drop();db.books.insert({_id: 1, name: "Java", alias: "java 入门", description: "入门图书" }); db.books.insert({_id: 2, name: "C", alias: "c", description: "C 入…...
python安装pip install报错Could not fetch URL https://pypi.org/simple/pip/...更换镜像源
更换镜像源 一. 现象pycharm使用 pip install xxx安装包时,一直报错: 二. 原因:三. 解决办法:一. 临时使用二. 永久更改三. 永久更改1. Windowswindows环境下Windows(示例win10) 2. Linux or Mac3. Pycharm…...
如何让AI读懂古文?GuwenBERT带来的古典汉语处理革命
如何让AI读懂古文?GuwenBERT带来的古典汉语处理革命 【免费下载链接】guwenbert GuwenBERT: 古文预训练语言模型(古文BERT) A Pre-trained Language Model for Classical Chinese (Literary Chinese) 项目地址: https://gitcode.com/gh_mir…...
【CW32无线抄表项目】W25Q+CW32程序示例
资料下载: https://telesky.yuque.com/bdys8w/01/zr02y6vd0r7mnzcl?singleDoc# 参考仓库: https://gitee.com/Armink/SFUD 一、程序分析 硬件总线映射(引脚与时钟的“避坑点”) #define FLASH_SPIx CW_SPI2 // 注意&…...
Klipper固件深度剖析:从分布式架构到高级运动控制实战指南
Klipper固件深度剖析:从分布式架构到高级运动控制实战指南 【免费下载链接】klipper Klipper is a 3d-printer firmware 项目地址: https://gitcode.com/GitHub_Trending/kl/klipper Klipper是一款革命性的3D打印机固件,采用独特的分布式架构设计…...
5步快速掌握CodeCombat:游戏化编程学习的终极指南
5步快速掌握CodeCombat:游戏化编程学习的终极指南 【免费下载链接】codecombat Game for learning how to code. 项目地址: https://gitcode.com/gh_mirrors/co/codecombat CodeCombat是一款创新的游戏化编程学习平台,通过将编程学习融入冒险游戏…...
实战应用:基于快马ai为全栈项目快速构建集成wsl2开发环境
实战应用:基于快马AI为全栈项目快速构建集成WSL2开发环境 最近在准备一个全栈项目,需要同时开发Python Django后端和Vue.js前端。为了保持开发环境的一致性,我决定使用WSL2来搭建开发环境。下面记录下我的完整配置过程,希望能帮助…...
Wan2.2-I2V-A14B开源模型:符合ISO/IEC 23053 AI系统可解释性要求
Wan2.2-I2V-A14B开源模型:符合ISO/IEC 23053 AI系统可解释性要求 1. 镜像概述与核心价值 Wan2.2-I2V-A14B私有部署镜像是一款专为文生视频场景优化的AI模型运行环境。这个镜像最突出的特点是完全符合ISO/IEC 23053标准对AI系统可解释性的要求,让用户不…...
Z-Image Turbo在工业设计中的应用:产品概念图生成
Z-Image Turbo在工业设计中的应用:产品概念图生成 1. 引言 工业设计师的日常工作中,最耗时但又最关键的环节是什么?答案往往是概念图的创作和渲染。传统的工作流程中,设计师需要先手绘草图,然后在专业软件中建模、渲…...
SEO_如何制定有效的SEO策略?分步指南(132 )
如何制定有效的SEO策略?分步指南 在互联网时代,一个网站的成功往往取决于其在搜索引擎上的排名。制定有效的SEO策略是提升网站流量、吸引潜在客户的关键。本文将为你提供一份详细的分步指南,帮助你制定并实施有效的SEO策略。 第一步&#x…...
RefluxJS入门指南:构建React应用的终极单向数据流解决方案
RefluxJS入门指南:构建React应用的终极单向数据流解决方案 【免费下载链接】refluxjs A simple library for uni-directional dataflow application architecture with React extensions inspired by Flux 项目地址: https://gitcode.com/gh_mirrors/re/refluxjs …...
OnmyojiAutoScript:阴阳师智能自动化脚本完全指南
OnmyojiAutoScript:阴阳师智能自动化脚本完全指南 【免费下载链接】OnmyojiAutoScript Onmyoji Auto Script | 阴阳师脚本 项目地址: https://gitcode.com/gh_mirrors/on/OnmyojiAutoScript 还在为阴阳师每日重复任务感到疲惫吗?每天花费数小时在…...

