MySQL——第三章 函数

MySQL------第三章 函数

  • 3.1字符串函数
  • [3.2 数值函数](#3.2 数值函数)
  • [3.3 日期函数](#3.3 日期函数)
  • [3.4 流程函数](#3.4 流程函数)

函数:是指一段可以直接被另一段程序调用的程序或代码

3.1字符串函数

函数 功能
CONCAT(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个长度的字符串

SELECT 函数(参数)

sql 复制代码
select concat('Hello', ' world');
select lower('Hello');
select upper('Hello');

select lpad('01', 5, '+');
select rpad('02', 5, '-');

select substring('Hello Wrold', 2, 3);
select trim('   001  jdka  ');

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

3.2 数值函数

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

select floor(1.5);

select mod(10,4);

select rand();

select round(8.8888888,2);

-- 生成6位数的随机验证码
select lpad(round(rand()*1000000,0),6,'0');

3.3 日期函数

sql 复制代码
-- 日期函数
select current_date;
select current_time;
select curdate();
select now();

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

select date_add(now(),interval 90 month );
select date_add(now(),interval 90 year);

select datediff('2024-1-1',now());

-- 查询所有员工的入职天数,并根据入职天数倒序排序
select name,datediff(curdate(),entrydate) as '入职天数'
from emp order by 入职天数 desc ;

3.4 流程函数

sql 复制代码
-- 流程函数
select if(true,'ok','Error');
select if(false,'ok','Error');

select ifnull('ok','Error');
select ifnull(null,'Error');

select
   name,
   case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end
from emp;


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);
select
   id,
   name,
   case when math >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end as '数学',
   case when english >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end as '英语',
   case when chinese >= 85 then '优秀' when math >= 60 then '及格' else '不及格' end as '语文'
from score;
相关推荐
不脱发的程序猿6 小时前
纳指ETF量化策略
数据库·人工智能·1024程序员节
程序员塔塔喵7 小时前
【MySQL篇|第一篇】索引失效的情况
数据库·mysql·索引失效
paopaokaka_luck7 小时前
宠物门店经营管理系统(销售与库存联动、进货自动记账、 退换与退款关联、员工个人业绩、ECharts 经营分析、滞销识别与客户分层、宠物档案年龄计算)
前端·javascript·spring boot·mysql·echarts·mybatis·1024程序员节
北京青蓝智慧马老师7 小时前
比外部黑客更难防的,是那个有权限的自己人(3 个脱敏复盘)
大数据·数据库·人工智能
笃行3507 小时前
拆一台数据集成产品:KFS 的骨架、肌肉和神经
数据库
4SAPI7 小时前
搭建 AI 数据分析工具大模型 API 选型指南
数据库·人工智能·架构·php·1024程序员节
paopaokaka_luck9 小时前
心理咨询管理系统(WebSocket实时沟通、基于用户的协同过滤、 ECharts多维分析、 预约业务流程、预约校验与定时处理)
java·vue.js·spring boot·mysql·spring·echarts·1024程序员节
码士集团小青9 小时前
面霸篇:高频 Java 基础问题(核心卷一)
linux·服务器·数据库·redis·缓存·1024程序员节
2301_32241428049 小时前
springboot农产品交易平台的设计与实现08055-计算机毕设 原创(免费领源码+部署教程+开发环境)
java·spring boot·redis·mysql·tomcat·maven·mybatis
LMT流氓兔10 小时前
第五单元——第十二课:把脚本整理成项目
java·数据库·python·langchain·1024程序员节