当前位置: 首页 > article >正文

mysql 学习8 函数,字符串函数,数值函数,日期函数,流程函数

函数

一 字符串函数

mysql 中的所有函数 都可以使用 select 函数(参数) 验证

select concat('he','llo','mysql'); # hellomysql

select lower('HHJLLD');
select upper('hello');

select lpad('he',5,'-po');# pohe
select lpad('he',5,'-a');# -a-he

select rpad('ni',9,'v'); # nivvvvvvv

select trim('   nihao  mysql   '); # nihao  mysql

select substring('nihao',1,1); # n
select substring('nihao',1,2); # ni

案例

企业员工工号统一变成9位数,不足5位数的全部在前面补0,比如1号员工的工号应该为00001。

之前的工号是这样的:

很显然这个是要update emp 这张表

update emp set id = lpad(id,5,'0'); #这里执行没有问题,也没有提示,实际上是不行的,id我们定义的是 int,lpad函数需要的是string

正确的写法
update emp set workno = lpad(workno,5,'0');

二 数值函数


 

select ceil(1.2); # 2   向上取整
select floor(9.9); # 9  向下取整
select mod (5,4); # 1  求余数
select rand(); # 0 到 1 之间的一个小数
select round(3.4); # 四舍五入
select round(3.67,1); # 对3.67进行四舍五入,保留一位小数,结果是3.7

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

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

三 日期函数

# 日期函数
select curdate(); # 2025-02-05

select curtime(); # 21:26:29

select now(); # 2025-02-05 21:26:54

select year(curdate()); # 2025

select year('1990-09-08'); #1990

select year(now());# 2025

select yearweek(now()); #202505

select yearweek('2025-01-01'); #202452


select month(curdate()); # 2  curdate 2025-02-05,因此是2

select day(curdate()); # 5  curdate 2025-02-05,因此是5

select date_add('2020-01-01',INTERVAL 1 day); #2020-01-02

select date_add('2020-01-30',INTERVAL 1 month ); #2020-02-29  可以看到,1个月在 mysql中就是30day

select datediff('2000-01-01','2000-01-03'); #-2

select datediff('2000-01-03','2000-01-01'); #2

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

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

四 流程函数

select if(true ,'ok','error');  # ok
select if(false ,111,222);  # 222

select ifnull(111,333);  #111

select ifnull('nihao',555); #nihao

select ifnull('',666); #''

select ifnull(null,888);  #888

#查询员工表 中的员工姓名和 工作地址,(如果工作城市在上海,北京,广州则显示一线城市,其余显示 二线城市


select
    name,
    (case  workaddress   when '上海' then '一线城市'
                        when '北京' then '一线城市'
                        when '广州' then '一线城市'
                        else '二线城市' end)
    as '工作地点'

from emp;

五 总结


http://www.kler.cn/a/533185.html

相关文章:

  • 【Java】位图 布隆过滤器
  • Web服务器启动难题:Spring Boot框架下的异常处理解析
  • 84-《金银花》
  • js --- 获取时间戳
  • CSS 背景与边框:从基础到高级应用
  • 爬虫基础(四)线程 和 进程 及相关知识点
  • 18.[前端开发]Day18-王者荣耀项目实战(一)
  • Scheme语言的正则表达式
  • 传输层协议——TCP协议
  • LeetCode 0922.按奇偶排序数组 II:O(1)空间复杂度-一次遍历双指针
  • 青少年编程与数学 02-008 Pyhon语言编程基础 19课题、外部模块
  • 【数据采集】基于Selenium采集豆瓣电影Top250的详细数据
  • 【Day29 LeetCode】动态规划DP
  • Rust中变量【引用】与【借用】规则
  • Markdown转换器中间件
  • AI协助探索AI新构型自动化创新的技术实现
  • 【现代深度学习技术】深度学习计算 | 延后初始化自定义层
  • 决策规划概述
  • C# 数组、索引器与集合介绍
  • 面向智慧农业的物联网监测系统设计(论文+源码+实物)
  • [LeetCode] 栈与队列 I — 232#用栈实现队列 | 225#用队列实现栈 | 20#有效的括号 | 1047#删除字符串中的所有相邻重复项
  • ES6-rest参数、数组扩展中的扩展运算符
  • CPU、MCU、MPU、SOC、DSP、ECU、GPU、FPGA傻傻分不清楚?一文讲清它们的区别
  • (十一)机器人系统的仿真——建造机器人模型
  • 4. k8s二进制集群之ETCD集群证书生成
  • Vue.js组件开发-实现右下角浮动层可以最大化最小化效果