MySQL的基础语法2(函数-字符串函数、数值函数、日期函数和流程函数 )

news2025/4/1 13:23:27

目录

一、字符串函数

1.常见字符串函数

​编辑 2.字符串函数的基本使用

3.字符串函数的数据库案例演示

二、数值函数

1.常见数值函数(如下):

 2.数值函数的基本使用

3.数值函数的数据库案例演示

三、日期函数

1.常见的日期函数

2.日期函数的基本使用

3.日期函数的数据库案例演示 

四、流程函数 

1.常见的流程函数

 2.流程函数的基本使用

3.流程函数的数据库案例演示


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

一、字符串函数

1.常见字符串函数

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

 2.字符串函数的基本使用

案例如下:

A. concat : 字符串拼接
select concat('Hello' , ' MySQL');

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

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

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

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

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

G. substring : 截取子字符串
select substring('Hello MySQL',1,5); --Hello

3.字符串函数的数据库案例演示

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

首先创建员工数据库(代码如下):


 create table emp(
     id int comment '编号',
     workno varchar(10) comment '工号',
     name varchar(10) comment '姓名',
     gender char(1) comment '性别',
     age tinyint unsigned comment '年龄',
     idcard char(18) comment '身份证号',
     workaddress varchar(50) comment '工作地址',
     entrydate date comment '入职时间'
 )comment '员工表';

INSERT INTO emp (id, workno, name, gender, age, idcard, workaddress, entrydate)
VALUES (1, '00001', '柳岩', '女', 20, '123456789012345678', '北京', '2000-01-01'),
       (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01'),
       (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01'),
       (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01'),
       (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01'),
       (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01'),
       (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01'),
       (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01'),
       (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01'),
       (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01'),
       (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01'),
       (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01'),
       (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01'),
       (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01'),
       (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01'),
       (16, '00016', '周芷若', '女', 18, null, '北京', '2012-06-01');

实现代码如下:

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

二、数值函数

1.常见数值函数(如下):

 2.数值函数的基本使用

A. ceil:向上取整
select ceil(1.1);  -- 2

B. floor:向下取整
select floor(1.9);  -- 1

C. mod:取模
select mod(7,4);   --  3 求余

D. rand:获取随机数
select rand();  --  0-1之间  [0, 1)

E. round:四舍五入
select round(2.344,2);  -- 对前面的数进行四舍五入,保留两位小数
 

3.数值函数的数据库案例演示

案例: (演示的表与一.3的案例同样)通过数据库的函数,生成一个六位数的随机验证码。并生成新的字段,然后加入数据库

ALTER TABLE emp ADD  rand_data int  COMMENT "随机数";
update emp set rand_data = rpad(round(rand()*1000000 , 0), 6, '0');

三、日期函数

1.常见的日期函数

2.日期函数的基本使用

A. curdate:当前日期
select curdate();  -- 2025-03-29

B. curtime:当前时间  
select curtime();  -- 11:34:59

C. now:当前日期和时间
select now();   -- 2025-03-29 11:35:16  

D. YEAR , MONTH , DAY:当前年、月、日
 select YEAR(now());  -- 2025
 select MONTH(now());  -- 3
 select DAY(now());   -- 29

E. date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );   -- 当前时间往后推70年  -- 2095-03-29 11:38:36

F. datediff:获取两个日期相差的天数  -- 第一个时间减去第二个时间
select datediff('2021-10-01', '2021-12-01');  --  -61

3.日期函数的数据库案例演示 

案例: 查询所有员工的入职天数,并根据入职天数倒序排序。(演示的表与一.3的案例同样)

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

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

四、流程函数 

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

1.常见的流程函数

 2.流程函数的基本使用

A. if
-- IF(value, t, f)	如果 value 为 true,则返回 t,否则返回 f
select if(false, 'Ok', 'Error');  -- Error

B. ifnull
-- IFNULL(value1, value2)	如果 value1 不为空,返回 value1,否则返回 value2
select ifnull('Ok','Default');  -- Ok
select ifnull('','Default');  --  返回前面的空字符串
select ifnull(null,'Default');  --  Default


C. case when then else end
-- CASE WHEN [ val1 ] THEN [res1] ... ELSE [ default ] END	如果 val1 为 true,返回 res1,... 否则返回 default 默认值

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

-- 张无忌,一线城市
-- 韦一笑,一线城市

3.流程函数的数据库案例演示

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);

 按分数段进行优秀和及格展示

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;

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

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

相关文章

5G_WiFi_CE_杂散测试

目录 一、规范要求 1、法规目录: 2、限值: (1)带外发射杂散 (2)带内发射杂散 (3)接收杂散 二、测试方法 1、带外发射杂散 (1)测试条件 &#xff08…

大数据Spark(五十五):Spark框架及特点

文章目录 Spark框架及特点 一、Spark框架介绍 二、Spark计算框架具备以下特点 Spark框架及特点 一、Spark框架介绍 Apache Spark 是一个专为大规模数据处理而设计的快速、通用的计算引擎。最初由加州大学伯克利分校的 AMP 实验室(Algorithms, Machines, and Pe…

UI产品经理基础(六):如何解决用户的质疑?

在需求调查中遇到用户质疑“不专业”或“不了解需求”,本质上是用户对产品经理的信任缺失或沟通鸿沟导致的。要化解这种质疑,需从专业能力展示、沟通方式优化、用户参与感提升三个维度切入,结合具体场景采取针对性策略。以下是系统化的解决方…

【大数据技术】大数据技术概念及概述

1. 大数据概念 数据 是实时或观察的结果是对客观事务的逻辑归纳是用于表示客观事物的未经加工的原始素材 数据的产生 对客观事务的计量和记录尝试的数据 单位换算1 byte8 bit1 k1024 byte1 mb1024 k1 g1024 m1 t1024 g1 p1024 t1 e1024 p1 z1024 e1 y1024 z1 b1024 y1 n10…

Python库()

1.概念 Matplotlib 库:是一款用于数据可视化的 Python 软件包,支持跨平台运行,它能够根据 NumPy ndarray 数组来绘制 2D 图像,它使用简单、代码清晰易懂 Matplotlib 图形组成: Figure:指整个图形&#xf…

AI知识补全(八):多模态大模型是什么?

名人说:人生如逆旅,我亦是行人。 ——苏轼《临江仙送钱穆父》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 上一篇:AI知识补全(七):AI Agent 智能…

Docker-MySQL安装-命令解读-常见命令-数据卷挂载-本地目录挂载-自定义镜像-网络-前端部署-DockerCompose

目录 Docker: 安装MySQL: 镜像容器: 镜像仓库: ​编辑命令解读: 镜像命名规范: docker run中常见参数: Docker常见命令: ​编辑数据卷: ​编辑数据卷-操作命令&…

Docker 安装部署Harbor 私有仓库

Docker 安装部署Harbor 私有仓库 系统环境:redhat x86_64 一、首先部署docker 环境 定制软件源 wget https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo -O /etc/yum.repos.d/docker-ce.repoyum install -y yum-utils device-mapper-persistent-data lvm2…

StarRocks 存算分离在京东物流的落地实践

康琪:京东物流高级技术专家、StarRocks & Apache Flink Contributor 导读:本文整理自京东物流高级技术专家在 StarRocks 年度峰会上的分享,UData 平台从存算一体到存算分离架构演进后,查询性能得到提升。Cache hit 时&#xf…

英伟达GB300新宠:新型LPDDR5X SOCAMM内存

随着人工智能(AI)、机器学习(ML)和高性能计算(HPC)应用的快速发展,对于高效能、大容量且低延迟内存的需求日益增长。NVIDIA在其GB系列GPU中引入了不同的内存模块设计,以满足这些严格…

具身智能 - Diffusion Policy:技术解析与应用实践

具身智能之 Diffusion Policy:技术解析与应用实践 一、Diffusion Policy 的核心概念 Diffusion Policy 是一种基于扩散模型(Diffusion Models)的决策生成框架,专为具身智能(Embodied Intelligence)设计。其核心思想是通过逐步去噪的过程,在复杂环境中生成鲁棒的动作序列…

[C++] 智能指针 进阶

标题:[C] 智能指针 进阶 水墨不写bug 在很久之前我们探讨了智能指针的浅显认识,接下来会更加深入,从源码角度认识智能指针,从而了解智能指针的设计原理,并应用到以后的工作项目中。 本文将会按照C智能指针的发展历史&…

kubernetes》》k8s》》 kubeadm、kubectl、kubelet

kubeadm 、kubectl 、kubelet kubeadm、kubectl和kubelet是Kubernetes中不可或缺的三个组件。kubeadm负责集群的快速构建和初始化,为后续的容器部署和管理提供基础;kubectl作为命令行工具,提供了与Kubernetes集群交互的便捷方式;而…

C++中的new、malloc、realloc、calloc——特点?函数原型?释放方式?区别?校招面试常问内容?

作者:求一个demo 版权声明:著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处 内容通俗易懂,没有废话,文章最后是面试常问内容(建议通过标题目录学习) 废话不多…

27_promise

插入一下前端助手测试&#xff0c;顺手可以用来做安全 promise promise 是一个es6新增的语法 汉语&#xff1a;承诺的意思 作用:是专门用来解决回调地狱!!!! 什么是回调函数&#xff1f; <script>// 回调函数 callback回调// 就是把函数A当作参数传递到函数B中// 在函…

leetcode刷题日记——跳跃游戏 II

[ 题目描述 ]&#xff1a; [ 思路 ]&#xff1a; 题目要求在一个一定能达到数组末尾的跳跃数组中(见55题 跳跃游戏)&#xff0c;找出能够跳到末尾的最小次数要求次数最少&#xff0c;那肯定是选取能选步数中最大的数。也就是在当前能够达到的距离中&#xff0c;选择能够达到的…

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通-

无人机进行航空数据收集对于分析道路状况非常有用-使用无人机勘测高速公路而不阻碍交通- 瑞士拥有1,400 多公里长的高速公路网络。这些公路将人和货物从山谷高原运送到阿尔卑斯山的最高山口。维护这些高速公路使国家得以顺利运转。高速公路维护的重要性显而易见&#xff0c;但在…

注意力蒸馏技术

文章目录 摘要abstract论文摘要简介方法预备知识注意力蒸馏损失注意力引导采样 实验结论总结参考文献 摘要 本周阅读了一篇25年二月份发表于CVPR 的论文《Attention Distillation: A Unified Approach to Visual Characteristics Transfer》,论文开发了Attention Distillation…

PERL开发环境搭建>>Windows,Linux,Mac OS

特点 简单 快速 perl解释器直接对源代码程序解释执行,是一个解释性的语言, 不需要编译器和链接器来运行代码>>速度快 灵活 借鉴了C/C, Basic, Pascal, awk, sed等多种语言, 定位于实用性语言,既具备了脚本语言的所有功能,也添加了高级语言功能 开源.免费 没有&qu…