MySQL常用函数
什么是函数?
函数是指一段可以直接被另一段程序调用的程序或代码。
字符串函数
| 函数 | 功能 | 
|---|---|
| CONCAT(S1,S2,…Sn) | 字符串拼接,将S1,S2,… Sn拼接成一个字符串 | 
| LOWER(str) | 将字符串str全部转为小写 | 
| LOWER(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个长度的字符串 | 
concat : 字符串拼接
select concat('Hello' , ' MySQL');

 lower : 全部转小写
select lower('Hello');

 upper : 全部转大写
select upper('Hello');

 lpad : 左填充
select lpad('01', 5, '-');

 rpad : 右填充
select rpad('01', 5, '-');

 trim : 去除空格
select trim(' Hello MySQL ');

 substring : 截取子字符串
-- 索引从1开始,而不是从0开始
select substring('Hello MySQL',1,5);

 案例:
 由于业务需求变更,企业员工的工号,统一为5位数,目前不足5位数的全部在前面补0。比如:1号员
 工的工号应该为00001
update employee set work_no = lpad(work_no,5,'0');

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

 floor:向下取整
select floor(9.9);

 mod:取模
select mod(11,3);

rand:获取随机数
select rand();

 round:四舍五入
select round(3.1415926,2);

 案例:
 通过数据库的函数,生成一个六位数的随机验证码。
-- 思路分析:通过rand函数产生一个随机数,通过字符串截取小数点后的6为即可
select substr(rand(),3,6);
或者
-- 思路分析:通过rand函数产生一个随机数,乘以1000000后,再舍弃小数部分,由于可能出现前面0被舍去,再采用lpad补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 expr type) | 返回一个日期/时间值加上一个时间间隔expr后的 时间值 | 
| DATEDIFF(date1,date2) | 返回起始时间date1 和 结束时间date2之间的天 数 | 
curdate:当前日期
select curdate();

 curtime:当前时间
select curtime();

 now:当前日期和时间
select now();

 YEAR :当前年
select YEAR(now());

 MONTH :当前月
select MONTH(now());

 DAY:当前日
select DAY(now());

 date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );

 datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');

 案例:
 查询所有员工的入职天数,并根据入职天数倒序排序。
select name,datediff(curdate(), entry_date) entrydays from employee  order by entrydays desc ;

流程函数
| 函数 | 功能 | 
|---|---|
| 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默认值 | 
if
select if(false, 'Ok', 'Error');

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

case when then else end
 需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)
select name,(case work_addresswhen '北京' then '一线城市'when '上海' then '一线城市'else'二线城市' end) as '工作地址'
from employee;

 案例:统计班级各个学员的成绩,展示的规则如下:
 >=85,展示优秀
 >=60,展示及格
 否则,展示不及格
创建案例表
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 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常用函数
什么是函数? 函数是指一段可以直接被另一段程序调用的程序或代码。 字符串函数 函数功能CONCAT(S1,S2,…Sn)字符串拼接,将S1,S2,… Sn拼接成一个字符串LOWER(str)将字符串str全部转为小写LOWER(str)将字符串str全部转为小写LPAD(…...
 
51单片机数字电子钟开题报告
目录 选题背景 初步设计方案 芯片的选型 编译环境 关键问题 策略 方案 参考文献 选题背景 数字电子钟是一种受到越来越多人喜爱的钟表,其准确性和稳定性成为设计和研发的重要考虑因素。在现代社会,时间的准确性对于各行各业都非常重要࿰…...
day7 HTTP协议
HTTP协议 什么是协议? 协议实际上是某些人,或者某些组织提前制定好的一套规范,大家都按照这个规范来,这样可以做到沟通无障碍。协议就是一套规范,就是一套标准。由其他人或其他组织来负责制定的。我说的话你能听懂&…...
 
3DCAT+一汽奥迪:共建线上个性化订车实时云渲染方案
近年来,随着5G网络和云计算技术的不断发展,交互式3D实时云看车正在成为一种新的看车方式。与传统的到4S店实地考察不同,消费者可以足不出户,通过网络与终端设备即可实现全方位展示、自选汽车配色、模拟效果、快捷选车并进行个性化…...
 
yii2项目使用frp https2http插件问题
yii2内网项目,使用frp进行内网穿透,使用 https2http插件把内网服务器http流量转成https,会存在一个问题:当使用 $this->redirect(...) 或 $this->goHome() (其实用的也是前者)等重定向时,…...
 
关于 interface{} 会有啥注意事项?下
我们一起来回顾一下上一次说到的 interface{} 可以用来做多态 接口类型分为空接口类型和非空接口类型,他们的底层数据结构不太一样 这里顺便说一下,用来作态需要满足这样的条件: 首先得有父类指针指向子类的对象这个接口还必须是非空接口…...
 
ansible组件介绍和简单playbook测试
一、ansible inventory 在大规模的配置管理工作中,管理不同业务的机器,机器的信息都存放在ansible的inventory组件里面。在工作中,配置部署针对的主机必须先存放在Inventory里面,然后ansible才能对它进行操作。默认的Ansible的in…...
 
[数据结构]:13-插入排序(顺序表指针实现形式)(C语言实现)
目录 前言 已完成内容 插入排序实现 01-开发环境 02-文件布局 03-代码 01-主函数 02-头文件 03-PSeqListFunction.cpp 04-SortCommon.cpp 05-SortFunction.cpp 结语 前言 此专栏包含408考研数据结构全部内容,除其中使用到C引用外,全为C语言代…...
 
es6 new Promise
Promise 是一个构造函数,本身身上有 all、reject、resolve 这几个方法,原型上有 then、catch 等方法。所以 Promise new 出来的对象确定就有 then、catch 方法。Promise 的构造函数接收一个参数,是函数,而且传入两个参数ÿ…...
Python爬虫实战:使用Requests和BeautifulSoup爬取网页内容
标题:Python爬虫实战:使用Requests和BeautifulSoup爬取网页内容 Python爬虫技术是网络爬虫中的一种,它可以从互联网上抓取各种网页信息,如文本、图片、视频等,并将它们存储在本地数据库中。Python语言具有简单易学、语…...
质量指标——什么是增量覆盖率?它有啥用途?
目录 引言 什么是增量覆盖率 增量覆盖率有啥用途 1、对不同角色同学的用途 2、对不同规模的业务需求的用途 增量覆盖率的适用人员 增量覆盖率不太适用的情况 引言 有些质量团队,有时会拿「增量覆盖率」做出测试的准出卡点。 但在实际的使用过程中,…...
 
Hive---拉链表
拉链表 文章目录拉链表定义用途案例全量流程增量流程合并过程第一步第二步第三步案例二(含分区)创建外部表orders增量分区表历史记录表定义 拉链表是一种数据模型,主要是针对数据仓库设计中表存储数据的方式而定义的,顾名思义&am…...
日常文档标题级别规范
这里写自定义目录标题欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注…...
 
C++学习记录——십이 vector
文章目录1、vector介绍和使用2、vector模拟实现insert和erase和迭代器失效补齐其他函数深浅拷贝难点思考1、vector介绍和使用 vector可以管理任意类型的数组,是一个表示可变大小数组的序列容器。 通过vector文档来看它的使用。 #include <iostream> #inclu…...
 
Lombok常见用法总结
目录一、下载和安装二、常见注释(一)Data(二)Getter和Setter(三)NonNull和NotNull(不常用)(四)ToString(不常用)(五&#…...
 
【Ajax】异步通信
一.概述 概念:AJAX(Asynchronous JavaScript And XML):异步的 JavaScript 和 XML 作用: 与服务器进行数据交换:通过AJAX可以给服务器发送请求,并获取服务器响应的数据 使用了AJAX和服务器进行通信,就可以使…...
 
近红外吸收荧光染料IR-808,IR-808 NH2,IR-808 amine,发射808nm 性质分享
中文名称:IR-808 氨基英文名称:IR-808 NH2,IR-808 amine,IR-808-NH2规格标准:10mg,25mg,50mgCAS:N/A产品描述:IR-808,发射808nm,酯溶性染料修饰氨…...
 
一图来看你需要拥有那些知识储备
技术实践 数据 关系型数据 MySQLSQLServerOraclePostgrSQLDB2 大数据存储 RedisMemcacheMongoDBHBaseHive 大数据处理 Hadoop 数据报表看板 DataGearGrafanaKibanaMetaBase 消息对列 Rabbit MQRock MQActive MQKafka 大数据搜索 SolrElasticSearchLucenHive 服务提…...
 
复位和时钟控制(RCC)
目录 复位 系统复位 电源复位 备份区复位 时钟控制 什么是时钟? 时钟来源 二级时钟源: 如何使用CubeMX配置时钟 复位 系统复位 当发生以下任一事件时,产生一个系统复位:1. NRST引脚上的低电平(外部复位) 2. 窗口看门狗计数终止(WWD…...
OpenWrt 专栏介绍00
文章目录OpenWrt 专栏介绍00专栏章节介绍关于联系方式OpenWrt 专栏介绍00 专栏章节介绍 本专栏主要从开发者角度,一步步深入理解OpenWrt开发流程,本专栏包含以下章节,内如如下: 01.OperWrt 环境搭建02.OperWrt 包管理系统03.Op…...
 
JavaSec-RCE
简介 RCE(Remote Code Execution),可以分为:命令注入(Command Injection)、代码注入(Code Injection) 代码注入 1.漏洞场景:Groovy代码注入 Groovy是一种基于JVM的动态语言,语法简洁,支持闭包、动态类型和Java互操作性,…...
 
《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析 (一)
CSI-2 协议详细解析 (一) 1. CSI-2层定义(CSI-2 Layer Definitions) 分层结构 :CSI-2协议分为6层: 物理层(PHY Layer) : 定义电气特性、时钟机制和传输介质(导线&#…...
 
UE5 学习系列(三)创建和移动物体
这篇博客是该系列的第三篇,是在之前两篇博客的基础上展开,主要介绍如何在操作界面中创建和拖动物体,这篇博客跟随的视频链接如下: B 站视频:s03-创建和移动物体 如果你不打算开之前的博客并且对UE5 比较熟的话按照以…...
 
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility
Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...
系统设计 --- MongoDB亿级数据查询优化策略
系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log,共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题,不能使用ELK只能使用…...
基于Uniapp开发HarmonyOS 5.0旅游应用技术实践
一、技术选型背景 1.跨平台优势 Uniapp采用Vue.js框架,支持"一次开发,多端部署",可同步生成HarmonyOS、iOS、Android等多平台应用。 2.鸿蒙特性融合 HarmonyOS 5.0的分布式能力与原子化服务,为旅游应用带来…...
 
(二)原型模式
原型的功能是将一个已经存在的对象作为源目标,其余对象都是通过这个源目标创建。发挥复制的作用就是原型模式的核心思想。 一、源型模式的定义 原型模式是指第二次创建对象可以通过复制已经存在的原型对象来实现,忽略对象创建过程中的其它细节。 📌 核心特点: 避免重复初…...
 
【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
 
React19源码系列之 事件插件系统
事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
