MySQL 函数(入门版)

目录

一、字符串函数

1、常用的字符串函数

2、函数演示

3、具体案例

二、数值函数

1、常用的数值函数

2、函数演示

3、具体案例

三、日期函数

1、常用的日期函数

2、函数演示

3、具体案例

四、流程函数

1、常用的流程函数

2、函数演示

3、具体案例


        在MySQL中,函数是预先定义好的程序,能够接收零个或多个输入参数,接着进行特定运算,最终返回一个结果。

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

        MySQL主要用于DML (数据操作语言)与DQL (数据查询语言),在 DDL (数据定义语言)和 DCL (数据控制语言)中几乎没有什么使用场景。

        MySQL中的函数主要分为以下四类字符串函数数值函数日期函数流程函数。以下是对这四类函数的详细介绍。

一、字符串函数

1、常用的字符串函数

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

2、函数演示

(1)concat : 字符串拼接

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

(2)lower : 全部转小写

select lower('Hello');

(3)upper : 全部转大写

select upper('Hello');

(4)lpad : 左填充

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

(5)rpad : 右填充

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

(6)trim : 去除空格

select trim(' Hello MySQL ');

(7)substring : 截取子字符串

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

3、具体案例

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

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

二、数值函数

1、常用的数值函数

常用的数值函数如下:

2、函数演示

(1)ceil:向上取整

select ceil(1.1);

(2)floor:向下取整

select floor(1.9);

(3)mod:取模

select mod(7,4);

(4)rand:获取随机数(0 ~ 1)

select rand();

(5)round:四舍五入

select round(2.344,2);

3、具体案例

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

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

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

三、日期函数

1、常用的日期函数

常见的日期函数如下:

2、函数演示

(1)curdate:当前日期

select curdate();

(2)curtime:当前时间

select curtime();

(3)now:当前日期和时间

select now();

(4)year , month , day:当前年、月、日

select year(now());select month(now());select day(now());

(5)date_add:增加指定的时间间隔

select date_add(now(), interval 70 YEAR );
--其中date的值是一个符合'xxxx-xx-xx'形式的日期即可,也可以是函数

(6)datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');
--是前面的日期减去后面的日期

3、具体案例

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

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

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

四、流程函数

1、常用的流程函数

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

        最后两个函数的基本形式是:case when then else end,作用是进行条件分支的判断

        上面的第三个函数用于范围匹配,当vall是真的时候,返回res1,否则返回default;上面的第四个函数用于具体的值的判断,当expr是vall的时候,返回res1,否则返回default。

2、函数演示

(1)if

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

(2)ifnull

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

        第二个 SQL 语句中的 ' ' 并非空值 null。在 SQL 里,' ' 代表空字符串它属于一个有实际内容的值,只是内容为空。

        而 ifnull 函数的用途是检验第一个参数是否为 null ,若为 null 则返回第二个参数;若不是 null,就返回第一个参数。

(3)case when then else end

        查询emp表的员工姓名和工作地址,北京/上海显示为一线城市,其他显示为二线城市。

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

3、具体案例

我们现在有这样一个表:

        要求成绩按如下展示:85分及以上显示优秀,60分及以上显示及格,否则显示不及格。

selectid,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 函数(入门版)的全部内容,创作不易,麻烦三连支持一下呗~  

 

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

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

相关文章

基于快速开发平台与智能手表的区域心电监测与AI预警系统(源码+论文+部署讲解等)

需要源代码,演示视频,ppt设计原稿资料,请文末卡片联系 !](https://i-blog.csdnimg.cn/direct/242d53cd069940b5b7a6db2bb031d406.png#pic_center)

【神经网络】python实现神经网络(三)——正向学习的模拟演练

有了之前的经验(【神经网络】python实现神经网络(二)——正向推理的模拟演练),我们继续来介绍如何正向训练神经网络中的超参(包含权重以及偏置),本章大致的流程图如下: 一.损失函数 神经网络以某个指标为基准寻求最优权重参数,而这个指标即可称之为 “损失函数” 。(…

分区格式变RAW故障深度解析与数据恢复实战指南‌

分区格式变RAW的本质‌ 当存储设备(如硬盘、U盘或移动硬盘)的分区突然显示为RAW格式时,意味着操作系统无法识别其原有的文件系统结构(如NTFS、FAT32等)。此时,用户访问该分区会提示“需要格式化”或直接显示…

【QT】Qt5 QtWebEngine使用教程

目录 1、QtWebEngine相比于QtWebKit的优势2、项目配置2.1 确认 Qt 版本2.2 在.pro 文件中添加依赖3、显示网页4、实现Qt和网页JavaScript之间的交互4.1 Qt执行网页的JavaScript代码4.2 JavaScript调用Qt对象的函数QtWebEngine 是 Qt 框架中用于在应用程序中嵌入 Web 内容的模块…

网络安全-等级保护(等保) 1-0 等级保护制度公安部前期发文总结

################################################################################ 等级保护从1994年开始已经有相关文件下发,进行建设,后续今年多年制度完善,现在已进入等保2.0时代,相关政策已运行多年。 前期等保相关发文&…

视图函数的应用

1.实现将当前日期和时间编码为HTML文档并返回的简单视图函数 文章目录 1.实现将当前日期和时间编码为HTML文档并返回的简单视图函数1.1打开visualcode 按图示点击 创建新的终端1.2然后定义ViewDjango项目根目录下的路由文件urls.py,实现到SimpleView应用的路由路径1…

解锁 C 语言安全新姿势:C11 安全函数全解析

一、开篇:C 语言安全的新护盾 在 C 语言的编程世界里,缓冲区溢出等安全问题犹如潜藏的暗礁,时刻威胁着程序的稳定与安全。为了有效应对这些挑战,C11 标准引入了一系列安全函数,也被称为 “Annex K” 标准库函数。这些函数为字符串和内存操作函数注入了新的活力,通过增加…

BGP路由协议之属性2

Orgin 起源 公认必遵属性 起源名称标记描述IGPi如果路由是由始发的 BGP 路由器使用 network 命令注入到 BGP 的,那么该 BGP 路由的 origin 属性为 IGPEGPe如果路由是通过 EGP 学习到的,那么该 BGP 路由的 Origin 属性为 EGPIncomplete?如果路由是通过…

C#实现HiveQL建表语句中特殊数据类型的包裹

用C#实现搜索字符串中用’(‘和’)‘包裹的最外层的里面里面的字符串&#xff0c;将里面的记录按一个或多个空格、换行或tab&#xff0c;或者是它的在一起的组合作为分隔&#xff0c;分隔出多个字符串组&#xff0c;如果组中有字符串中同时包含’<‘和’>’&#xff0c;则…

脑电学习笔记

一&#xff0c;原理简介 使用eprime或者matlab给被试呈现刺激&#xff0c;并在某个时间发送Mark&#xff0c;脑电帽会同步采集被试的脑电信号&#xff0c;经放大器放大后&#xff0c;控制盒会把脑电信号和mark 信号同步到一起&#xff0c;通过usb线传入到采集系统&#xff08;比…

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡安装pytorch

宏碁笔记本电脑擎7PRO搭载的 NVIDIA RTX 5080 显卡是一款高性能移动 GPU&#xff0c;基于 NVIDIA 最新的 Blackwell 架构设计&#xff0c;通过修正架构&#xff08;Blackwell&#xff09;、显存类型与带宽&#xff08;GDDR7、960GB/s&#xff09;、Tensor Core 与 RT Core 全面…

ES6中增强对象

在 ES6 中&#xff0c;对象的使用变得更加方便了&#xff0c;可以在定义对象时通过属性简写、遍历作为属性名或省略对象函数属性的书写等方式来提高编码的效率&#xff1a; 其实就这么简单&#xff0c;大家可以好好看下上面的代码&#xff0c;有问题欢迎留言一起探讨&#xff0…

XSLFO XSLT:深入解析两种强大的XML转换技术

XSLFO & XSLT:深入解析两种强大的XML转换技术 引言 在XML(可扩展标记语言)的生态系统中,XSLFO(可扩展样式表语言格式化对象)和XSLT(可扩展样式表转换语言)是两种非常强大的技术。它们分别负责将XML文档转换为其他格式以及进行XML文档的转换。本文将深入探讨这两种…

Django4.0的快速查询以及分页

1. filter 方法 filter 是 Django ORM 中最常用的查询方法之一。它用来根据给定的条件过滤查询集并返回满足条件的对象。 articles Article.objects.all() # 使用 SearchFilter 进行搜索 search_param request.query_params.get(search, None) author_id request.query_pa…

在Vue3中格式化后端返回的Java Date类型数据为指定格式

在前端Vue3项目中&#xff0c;格式化后端返回的java.util.Date类型时间到yyyy-MM-dd HH:mm:ss格式&#xff0c;有几种常用方法&#xff1a; 方法一&#xff1a;使用JavaScript内置方法 <JAVASCRIPT> // 假设后端返回的数据结构为 { createTime: 2023-05-15T08:30:00.0…

单元测试原则之——不要模拟不属于你的类型

在单元测试中,不要模拟不属于你的类型(Don’t mock types you don’t own)是一个重要的原则。这是因为外部库或框架的类型(如第三方依赖)可能会在未来的版本中发生变化,而你的模拟可能无法反映这些变化,从而导致测试失效。 以下是一个基于Java Mockito 的示例,展示如何…

内网渗透(杂项集合) --- 中的多协议与漏洞利用技术(杂项知识点 重点) 持续更新

目录 1. NetBIOS 名称的网络协议在局域网中内网渗透中起到什么作用 2. 使用 UDP 端口耗尽技术强制所有 DNS 查找失败&#xff0c;这个技术如何应用在局域网内网渗透测试中 3. 在本地创建一个 HTTP 服务来伪造 WPAD 服务器 什么是 WPAD 服务器&#xff1f;这个服务器是干嘛的…

Git相关笔记1 - 本地文件上传远程仓库

Git相关笔记 目录 Git相关笔记Git上传相关文件第一步创建一个仓库&#xff1a;第二步本地创建空文件夹&#xff1a;第三步开始在gitbush上传文件&#xff1a;解决外网网络连接的问题&#xff1a;中文文件的编码问题&#xff1a;参考资料 Git上传相关文件 第一步创建一个仓库&a…

Cocos Creator 进行 Web 发布后,目录结构解析

在使用 Cocos Creator 进行 Web 发布后&#xff0c;生成的目录结构通常包含以下内容&#xff0c;下面为你详细介绍&#xff1a; 1. index.html 这是 Web 项目的入口 HTML 文件&#xff0c;它会加载所需的 JavaScript 文件和资源&#xff0c;从而启动游戏或应用程序。示例代码…

C++20的协程简介

C20 引入了协程&#xff08;Coroutines&#xff09;&#xff0c;这是一种特殊的函数&#xff0c;它可以暂停执行并在之后恢复&#xff0c;而不是像普通函数那样一旦返回就终止。协程的主要特点在于它能保留自身的执行状态&#xff0c;这让异步编程更加简洁和直观。以下是对 C20…