【SQL】SQL函数

ops/2024/10/31 0:40:49/

📢 前言

  • 函数 是指一段可以直接被另一段程序调用的程序或代码。主要包括了以下4中类型的函数。
  • 字符串函数
  • 数值函数
  • 日期函数
  • 流程函数

🎄 字符串函数

⭐ 常用函数

函数
功能
CONCAT(S1,S2,...Sn)
字符串拼接,将S1S2... Sn拼接成一个字符串
LOWER(str)
将字符串str全部转为小写
UPPER(str)
将字符串 str 全部转为大写
LPAD(str,n,pad)左填充,用字符串padstr的左边进行填充,达到n个字符串长度
RPAD(str,n,pad)
右填充,用字符串 pad str 的右边进行填充,达到 n 个字符 串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str,start,len)返回从字符串strstart位置起的len个长度的字符串

⭐ 示例

☀ 简单操作

  • 📢 值得注意的是trim是去除前后空格不能去掉中间的空格。
  • 📢 substring第一个位置是从1开始,而不是0。
sql">select concat('Hello','Mysql');
select lower('Linux');
select upper('Linux');
select lpad('01',5,'-');
select rpad('01',5,'-');
select trim(' Hello  Mysql ');
select substring('Hello  Mysql ',1,5);

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

sql">update test.emp set  workno = lpad(workno,5,'0');

🎄 数值函数

⭐ 常用函数

函数
功能
CEIL(x)向上取整
FLOOR(x)向下取整
MOD(x,y)返回x/y的模,也就是余数
RAND()
返回0~1内的随机数
ROUND(x,y)
求参数x的四舍五入的值,保留y位小数

⭐ 示例

☀ 简单操作

  • 📢 随机数可以×或者加上一个数让其保持在某个自定义的区间内。
sql">select ceil(1.1);
select floor(1.1);
select mod(7,4);
select rand()*10;
select round(2.345,2);

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

sql">select lpad(round(rand()*1000000,0),6,'0');
select rpad(round(rand()*1000000,0),6,'0');

🎄 日期函数

⭐ 常用函数

函数
返回起始时间 date1 和 结束时间 date2 之间的天
功能
CURDATE()
返回当前日期
CURTIME()返回当前时间
NOW()返回当前日期和时间
YEAR(date)获取指定date的年份
MONTH(date)获取指定date的月份
DAY(date)获取指定date的日期
DATE_ADD(date, INTERVAL expr
type)
返回一个日期 / 时间值加上一个时间间隔 expr 后的
时间值
DATEDIFF(date1,date2)
返回起始时间 date1 和 结束时间 date2 之间的天

⭐ 示例

 ☀ 简单操作

  • 📢date_add 后面增加的类型是时间单位,比如:year,month,day,week,hour,minute,second
  • 📢 并且这个时间可以是负数的。
sql">select curdate();
select curtime();
select now();
select year(now());
select month(now());
select day(now());
select date_add(now(),interval 70 year);
select datediff('2024-10-10','2023-10-09');

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

sql">select name, datediff(now(),entrydate) '天数'  from test.emp order by '天数' 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 默认值

⭐ 示例

 ☀ 简单操作

sql">select if(false,'ok','error');
select ifnull('Ok','Default');
select ifnull(null,'Default');

 ☀ 查询emp表的员工姓名和工作地址

  • 📢 对于展示要求,如果是北京/上海 ----> 一线城市 , 其他 ----> 二线城市
sql">selectname,(case when (workaddress='北京' or workaddress = '上海') then '一线城市' else '二线城市' end) '工作地址'
from emp;
select name,if((workaddress='北京' or workaddress = '上海'),'一线城市','二线城市') '工作地址' from emp;
selectname,(case when workaddress='北京' then '一线城市' when workaddress = '上海' then '一线城市' else '二线城市' end) '工作地址'
from emp;

统计各个学员的成绩

  • 📢 >=85 优秀
  • 📢 >= 60 及格
  • 📢 <60 不及格
  • 首先准备数据
sql">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);
  • 注意
  • 📢 这里有个要注意的,当大于等于85匹配,也就是被返回后,将不再参与后续的大于等于60的判断,所有不会影响后续条件的判定。
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;


http://www.ppmy.cn/ops/129346.html

相关文章

大数据-193 Apache Tez - DAG 作业计算框架 核心解释 工作原理 配置集成

点一下关注吧&#xff01;&#xff01;&#xff01;非常感谢&#xff01;&#xff01;持续更新&#xff01;&#xff01;&#xff01; 目前已经更新到了&#xff1a; Hadoop&#xff08;已更完&#xff09;HDFS&#xff08;已更完&#xff09;MapReduce&#xff08;已更完&am…

蓝桥杯模块(四)数码管动态显示

一、数码管电路图 二、电路分析 1.数码管电路分析 端口分公共端和段码&#xff0c;先用公共端控制一个数码管&#xff0c;再用段码实现显示数字。共阳数码管公共端输入高电平&#xff0c;段码输入低电平实现点亮 2.锁存器 Y7控制段码&#xff0c;Y6控制公共端 3.数码管编码基…

人工智能:重塑未来生活与工作的变革者

随着人工智能&#xff08;AI&#xff09;技术的迅猛发展&#xff0c;我们已经进入了一个前所未有的时代。AI不仅在医疗、企业管理、日常生活等领域展现出强大的潜力&#xff0c;也在不断推动我们思维方式和生活方式的转变。本文将探讨人工智能的应用前景&#xff0c;以及它将如…

提升技术SEO安全性的最佳实践解析

内容概要 技术SEO与安全性在现代网站优化中扮演着至关重要的角色。随着互联网的迅速发展&#xff0c;网站不仅需要在搜索引擎中排名靠前&#xff0c;还要确保用户数据和信息的安全。技术SEO涉及提升网站结构、代码和加载速度等方面&#xff0c;而安全性则关注防止各种网络攻击…

shodan-5

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shodan(5)_哔哩哔哩_bilibili 一、shodan语法 1、net shodan search --limit 10 --fields ip_str, port net:208.88.84.0/24 搜索一个网段内的I…

剩余使用寿命 | 基于Wiener维纳过程模型的剩余使用寿命(RUL)预测

剩余使用寿命 | 基于Wiener维纳过程模型的剩余使用寿命&#xff08;RUL&#xff09;预测 目录 剩余使用寿命 | 基于Wiener维纳过程模型的剩余使用寿命&#xff08;RUL&#xff09;预测预测效果基本描述程序设计参考资料 预测效果 基本描述 基于Wiener维纳过程模型的剩余使用寿…

小米路由器3 Pro (R3P) PandoraBox19.02 (pb-boot)刷回官方开发版固件2.13.68 (u-boot) 详细步骤

声明&#xff1a;刷机有风险&#xff0c;自己的R3P路由器已经成功刷回了官方开发版固件&#xff0c;并不代表所有的R3P设备都能成功&#xff0c;仅供参考&#xff0c;请自行承担刷机成砖风险&#xff01;1、小米R3P PandoraBox&#xff08;pb-boot&#xff09;信息 PandoraBox…

绿色制造中的 FMEA 系统的应用_SunFMEA软件

【大家好&#xff0c;我是唐Sun&#xff0c;唐Sun的唐&#xff0c;唐Sun的Sun。一站式数智工厂解决方案服务商】 绿色制造中的 FMEA&#xff08;失效模式与影响分析&#xff09;系统具有重要的应用价值。 在绿色制造的产品设计阶段&#xff0c;FMEA 可以帮助识别潜在的失效模式…