MySQL 数据库(基础)- 函数

MySQL 数据库(基础)- 函数

介绍

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

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

  1. 字符串函数
    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个长度的字符串

演示代码:

  • 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 : 截取子字符串
select substring('Hello MySQL',1,5);
  1. 数值函数
    常见的数值函数如下:
函数							功能
ceil(x)						向上取整
floor(x)					向下取整
mod(x,y)					返回x/y的模
rand()						返回0~1内的随机数
round(x,y)					求参数x的四舍五入的值,保留y位小数

演示代码:

  • ceil:向上取整
select ceil(1.1);
  • floor:向下取整
select floor(1.9);
  • mod:取模
select mod(7,4);
  • rand:获取随机数
select rand();
  • round:四舍五入
select round(2.344,2);
  1. 日期函数
    常见的日期函数如下:
函数											功能
curdate()									返回当前日期
curtime()									返回当前时间
now()										返回当前日期和时间
year(date)									获取指定date的年份
month(date)									获取指定date的月份
day(date)									获取指定date的日期
date_add(date,interval exprtype)			返回一个日期/时间值加上一个时间间隔expr后的时间值
datediff(date1,date2)						返回起始时间date1 和 结束时间date2之间的天数

演示代码:

  • curdate:当前日期
select curdate();
  • curtime:当前时间
select curtime();
  • now:当前日期和时间
select now();
  • YEAR , MONTH , DAY:当前年、月、日
select YEAR(now());
select MONTH(now());
select DAY(now());
  • date_add:增加指定的时间间隔
select date_add(now(), INTERVAL 70 YEAR );
  • datediff:获取两个日期相差的天数
select datediff('2021-10-01', '2021-12-01');
  1. 流程函数
    流程函数也是很常用的一类函数,可以在 SQL 语句中实现条件筛选,从而提高语句的效率。
函数																功能
if(value,t,f)													如果valuetrue,则返回t,否则返回f
ifnull(value1,value2)											如果value1不为空,返回value1,否则返回value2
case when [vall] then [res1] ... eles [default] end				如果val1为true,返回res1,... 否则返回default默认值
case [expr] when [vall] 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 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;

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

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

相关文章

python的简单爬取

需要的第三方模块 requests winr打开命令行输入cmd 简单爬取的基本格式(爬取百度logo为例) import requests url"http://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" resprequests.get(url)#回应 #保存到本地 with open(&…

中国物流信息软件系统(WMS等)行业概览,2027年将达到235.1亿元

导语 大家好,我是社长,老K。专注分享智能制造和智能仓储物流等内容。 新书《智能物流系统构成与技术实践》人俱乐部 完整版文件和更多学习资料,请球友到知识星球【智能仓储物流技术研习社】自行下载 这份文件是《2023年中国物流信息软件系统行…

【Python】下载与安装

目录 一、 下载安装Python 1. 配置环境变量 2. 检查是否配置成功 一、 下载安装Python 在我上传的资源可以免费下载!!! https://download.csdn.net/download/m0_67830223/89536665?spm1001.2014.3001.5501https://download.csdn.net/dow…

浅谈后置处理器之JSON提取器

浅谈后置处理器之JSON提取器 JMeter 的 JSON 提取器(JSON Extractor)是一个强大的后置处理器,它允许用户从HTTP响应、数据库查询或其他类型的响应中提取JSON数据,并将这些数据存储为变量,以便在后续的请求中重用。这对…

Mojo AI编程语言(三)数据结构:高效数据处理

目录 1. Mojo AI编程语言简介 2. 数据结构在数据处理中的重要性 3. Mojo AI中的基础数据结构 3.1 数组 3.2 列表 3.3 字典 4. 高效数据结构的实现与优化 4.1 哈希表 4.2 树结构 4.3 图结构 5. 高效数据处理技术 5.1 并行处理 5.2 内存优化 5.3 数据压缩 6. 实战…

【Redis】哨兵(sentinel)

文章目录 一、哨兵是什么?二、 哨兵sentinel文件参数三、 模仿主机redis宕机四、哨兵运行流程和选举原理SDOWN主观下线ODOWN客观下线 五、 使用建议 以下是本篇文章正文内容 一、哨兵是什么? 哨兵巡查监控后台master主机是否故障,如果故障了…

js项目生产环境中移除 console

1、terser-webpack-plugin webpack 构建的项目中安装使用 安装: npm install terser-webpack-plugin --save-dev 配置 在webpack.config.js文件中 new TerserPlugin({terserOptions: {output: {comments: false, // 去除注释},warnings: false, // 去除黄色警告,co…

nx上darknet的使用-目标检测-自定义训练与制作预训练模型

目录 1 训练yolov4-tiny 1.1 文件准备 1.1.1 Annotations 1.1.2 JPEGImages 1.1.3 labels 1.1.4 trained_models 1.1.5 classes.name 1.1.6 create_labels_txt.py 1.1.7 custom_training.data 1.1.8 get_labels.py 1.1.9 get_train_val.py 1.1.10 train…

python制作甘特图的基本知识(附Demo)

目录 前言1. matplotlib2. plotly 前言 甘特图是一种常见的项目管理工具,用于表示项目任务的时间进度 直观地看到项目的各个任务在时间上的分布和进度 常用的绘制甘特图的工具是 matplotlib 和 plotly 主要以Demo的形式展示 1. matplotlib 功能强大的绘图库&a…

内网对抗-基石框架篇单域架构域内应用控制成员组成用户策略信息收集环境搭建

知识点: 1、基石框架篇-单域架构-权限控制-用户和网络 2、基石框架篇-单域架构-环境搭建-准备和加入 3、基石框架篇-单域架构-信息收集-手工和工具1、工作组(局域网) 将不同的计算机按照功能分别列入不同的工作组。想要访问某个部门的资源,只要在“网络…

Electron运行报错:Error Cannot find module ‘node_moduleselectroncli.js‘

Electron运行报错:Error: Cannot find module ‘node_modules\electron\cli.js’ 顾名思义,命令行执行Electron .时候,会优先从项目目录查找对应依赖,如果是报错显示是找不到项目目录下的依赖,我们可以从安装在全局的…

DAMA学习笔记(五)-数据存储和操作

1.引言 数据存储与操作包括对存储数据的设计、实施和支持,最大化实现数据资源的价值,贯穿于数据创建/获取到处置的整个生命周期。 数据存储与操作包含两个子活动(图6-1)。 图6-1 语境关系图:数据存储与操作 (1) 数据库…

记录vite项目中Cornerstone的兼容问题(持续更新)

🔎 在vite项目中打包提示错误 ESM integration proposal for Wasm" is not supported currently. ⛳️ 问题描述 Error: Could not load /home/xxx/xxx/node_modules/icr/polyseg-wasm/dist/ICRPolySeg.wasm (imported by node_modules/icr/polyseg-wasm/di…

js ES6 part3

Number 是内置构造函数&#xff0c;用来创建数值 const price 12.345console.log(price.toFixed(2))//保留两位小数 12.35 综合案例购物车 <body><div class"list"><!-- <div class"item"><img src"https://yanxuan-item…

【代码随想录】【算法训练营】【第66天】 [卡码95]城市间货物运输II [卡码96]城市间货物运输III

前言 思路及算法思维&#xff0c;指路 代码随想录。 题目来自 卡码网。 day 66&#xff0c;周五&#xff0c;ding ding~ [卡码95] 城市间货物运输II 题目描述 卡码95 城市间货物运输II 解题思路 前提&#xff1a; 思路&#xff1a; 重点&#xff1a; 代码实现 C语言 …

数据结构(Java):队列Queue集合力扣面试OJ题

1、队列 1.1 队列的概念 队列是一个特殊的线性表&#xff0c;只允许在一端&#xff08;队尾&#xff09;进行插入数据操作&#xff0c;在另一端&#xff08;对头&#xff09;进行删除数据。队列具有先进先出FIFO(First In First Out)的特性。 入队&#xff1a;数据只能从队尾…

有奖竞猜!斗牛士军团与法兰西骑士的终极之战,谁将笑傲欧洲之巅?

痛快看球&#xff0c;畅玩游戏&#xff0c;AGON爱攻带你进入酣畅淋漓的足球世界&#xff01; 7月15日&#xff0c;绿茵赛场硝烟再起&#xff0c;两支身披荣光的王者之师&#xff0c;一路过关斩将&#xff0c;最终会师决赛。一场万众瞩目的巅峰对决即将拉开帷幕&#xff0c;究竟…

linux UDP通讯:接口函数示例

一、主要用的接口&#xff1a; //服务器端 1. socket() 创建套接字 2. bind() 绑定套接字 与TCP区别开来&#xff0c;没有listen()、accept()建立连接的过程 3. 通信 recvfrom() sendto() 4. close //客户端 1. socket() 创建套接字 与TCP区别开来&#xff0c;没有connect()建立…

数据结构——排序算法(冒泡、快速、选择、插入)

文章目录 1. 概念 2. 十大排序算法 3. 冒泡排序 4. 冒泡代码实现 5. 快速排序 6. 快速代码实现 7. 选择排序 8. 选择代码实现 9. 插入排序 10. 插入代码实现 1. 概念 排序&#xff08;Sort&#xff09;是将无序的记录序列&#xff08;或称文件&#xff09;调整成有序…

LabVIEW前面板占满整个屏幕(转)

希望在运行一个LabVIEW程序时&#xff0c;它的前面板能够占据整个屏幕&#xff0c;且不显示Windows的任务栏或其他任何的LabVIEW菜单选项。怎样才能实现这一功能&#xff1f; 您可以通过手动配置或编程的方式实现该功能。 手动配置VI属性 您可以通过以下操作&#xff0c;将…