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

mysql之函数

前言

讲函数

1. 字符串函数

1.1 concat

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

在这里插入图片描述
这个函数的作用就是拼接,当然·也可以拼接多个
select就是打印的意思

1.2 lower

select lower('Hello');

在这里插入图片描述
大写转小写

1.2 upper

1.3 lpad

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

在这里插入图片描述

这个的意思就是在01字符串的左边拼接-,直到总共有了五个字符

1.4 rpad

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

在这里插入图片描述

1.5 trim

select trim('  aaaaa    bbbbb    ');

在这里插入图片描述
这个函数的作用主要就是去除字符串前面和后面的空格,不去除里面的空格

1.6 substrig

select substring('abcdefghijk',1,5);

在这里插入图片描述
这个的作用就是从位置1开始,往后截取5个字符,其中字符串的第一个字符的索引就是1

1.7 练习

在这里插入图片描述
练习,将id统一修改为5位数,不足五位数的前面补0
这里的id是varchar

update form set id=lpad(id,5,'0');

在这里插入图片描述

2. 数值函数

2.1 ceil

select ceil(1.1);

在这里插入图片描述

向上取整

2.2 floor

select floor(1.1);

在这里插入图片描述
向下取整

2.3 mod

select mod(6,4);

在这里插入图片描述
取模,前面的参数对后面的那个取模

2.4 rand

select rand();

在这里插入图片描述

产生随机数,这个随机数是在0~1之间的

2.5 round

select round(2.235,2);

在这里插入图片描述
这个的意思就是对2.235四舍五入,并保留两位小数

2.6 练习

生成一个六位数的随机验证码

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

在这里插入图片描述
但有些时候也会生成五位数的
在这里插入图片描述
为什么呢,因为可能会生成这种小数,0.020371
所以可以考虑前面补0

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

在这里插入图片描述

3. 日期函数

3.1 curdate

select curdate();

在这里插入图片描述
打印当前日期

3.2 curtime

select curtime();

在这里插入图片描述
打印当前时间

3.3 now

select now();

在这里插入图片描述
打印日期+时间

3.4 year

select year(now());

在这里插入图片描述
打印当前年,但是里面要传入now()

3.5 month

select month(now());

在这里插入图片描述

3.6 day

select day(now());

在这里插入图片描述

3.7 date_add

select date_add(now(),interval 70 day);

在这里插入图片描述
这个表示在当前的时间加上70天

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

3.8 datediff

select datediff('2020-9-9','2020-10-9');

在这里插入图片描述
算两个日期相差了多少天,前面的日期,减去后面的日期

3.9 练习

查询所有人的进入日期到现在的天数,并排序,降序

在这里插入图片描述

select name,datediff(curdate(),endate) from form;

在这里插入图片描述

select name,datediff(curdate(),endate) as 'days' from form order by days desc; 

在这里插入图片描述

4. 流程函数

4.1 if

select if(true,'ok','ko');

在这里插入图片描述
如果第一个参数为true,则返回第二个参数
如果第一个参数为false,则返回第三个参数

4.2 ifnull

select ifnull('ok','aa');

在这里插入图片描述

select ifnull(null,'aa');

在这里插入图片描述
第一个参数为null的话,就返回第二个参数,第一个不为null,就返回第一个

select ifnull('','aa');

在这里插入图片描述
空的字符串也不是null

4.3 case expr when else

在这里插入图片描述
如果name为lyx就打印傻子,还有ym也打印傻子,否则打印汉堡

select
    name,
    case name when 'lyx' then '傻子'end
from form;

在这里插入图片描述
case name when ‘lyx’ then '傻子’end
这句话的意思就是当name==lyx就返回傻子
end表示结束

select
    name,
    case name when 'lyx' then '傻子' when 'ym' then '傻子' end
from form;

在这里插入图片描述
连着用就是且的意思

在这里插入图片描述

select
    name,
    (case name when 'lyx' then '傻子' when 'ym' then '傻子' end) as '外号'
from form;

在这里插入图片描述
还可以给这个流程函数整体取别名

4.4 case when else

case expr when 就是看等不等于,如果要比什么大于小于的话,还是要看case when

select
    name,
    case when age>30 then '老年人' else '年轻人' end
from form;

这个的作用就是如果age大于30就是老年人,否则年轻人
在这里插入图片描述


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

相关文章:

  • 5.STM32之通信接口《精讲》之USART通信---实验串口接收程序
  • 大学作业参考:网页设计作业 - 工作计划-Java SQL HTML源码下载
  • Pandas-3:数据输入与输出
  • 【EasyExcel】复杂导出操作-自定义颜色样式等(版本3.1.x)
  • Docker: ubuntu系统下Docker的安装
  • uni-app快速入门(七)--组件路由跳转和API路由跳转及参数传递
  • 循环程序结构课堂练习题解
  • 嵌入式 ADC基础知识
  • Unity DOTS System与SystemGroup概述
  • 网络原理-传输层UDP
  • React【vite使用模块化css】
  • 在 Git 中处理分开提交的文件改动,以便更好地管理版本控制
  • 【30天玩转python】数据分析与可视化
  • P3952 [NOIP2017 提高组] 时间复杂度
  • leetcode:380. O(1) 时间插入、删除和获取随机元素
  • 课设实验-数据结构-线性表-手机销售
  • Android 通过自定义注解实现Activity间跳转时登录路由的自动拦截
  • 【React】入门Day01 —— 从基础概念到实战应用
  • HIVE优化系列之数据倾斜
  • 数据库课程设计案例:在线教育管理系统
  • 51单片机学习第六课---B站UP主江协科技
  • 【STM32单片机_(HAL库)】4-4【定时器TIM】脉冲计数配置步骤及实验
  • 从0开始深度学习(6)——Pytorch动态图机制(前向传播、反向传播)
  • 基础算法--双指针【概念+图解+题解+解释】
  • Arduino UNO R3自学笔记12 之 Arduino在调试过程中串口的使用
  • 【Router】T750路由功能之VLAN划分功能介绍及实现