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

数据库-MySQL-基础(7)函数

目录

函数

字符串函数

常用函数

 例子

练习

数值函数

代码实现

案例练习

日期函数

常见函数

代码实现

案例

流程函数

常用函数

案例

 代码


函数

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


字符串函数

常用函数

MySQL内置了很多字符串函数,常用的几个如下

 例子

  -concat(字符串拼接)

select  concat('hello','MySQl');

 

 

  -lower(字符串转化为小写)

select lower('Hello');

 

 

-upper(字符串转化为大写)

select upper('Hello');

 

-lpad(左填充)

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

为什么填充三个,本身字符串的长度就为2了填充3个正好等于5 

 

-rpad(右填充)

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

-trim(去除左右空格)

select  trim(' Hello MySQL ');

 

 

 -substring(计算字符串长度)

select substring('Hello MySQL',1,5);

 

练习

根据业务需求变更,明星员工的id,统一为5位数,目前不足五位数的全部在后面补0。比如:1号明星的工号为10000

初始表

 代码

update start_table set id = rpad(id,5,'0');

实现后

 


 

数值函数

常见函数

 注意:求模就是除于一个数然后取余

代码实现

--数值函数

--ceil
select ceil(1.2);

--floor
select floor(1.9);

--mod
select mod(3,4);

--rand
select rand();

--round
select round(2.345,2);

案例练习

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

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


日期函数

常见函数

 

代码实现

--日期函数

--curdate() 显示当前日期几年级月几日
select  curdate();

--curtime() 显示当前时间几时几分几秒
select  curtime();


--now()   显示当前日期和时间
select now();

--YEAR ,MONTH,DAY

--显示当前年份
select year(now());

--显示当前月份
select MONTh(now());

--显示当前天数
select DAY(now());

--date_add
--当前时间往后推70天
select date_add(now(),INTERVAL 70 DAY);
--当前时间往后推70月
select date_add(now(),INTERVAL 70 MONTH );

--datediff(读取俩个日期之间的差值)
select datediff('2022-12-30','2022-10-01');

案例

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

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

 


 

流程函数

常用函数

流程函数是一种常见函数,可以在SQL中实现条件筛选,从而提高语句的效率

 

--if
select if(true,'OK','error');


--ifnull
--只有第三种情况返回DEfault
select ifnull('OK','DEfault');

select ifnull('','DEfault');

select ifnull(null,'DEfault');

select ifnull('null','DEfault');

--case when then else end
--需求: 查询start_table表中明星的姓名和地址(如果地址为上海北京,展示为一线城市,其他展示为二线)
select
   name,
   ( case address when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from start_table;

 

案例

统计班级各个学院的成绩,展示的规则如下:

-- >= 85,展示优秀

-- >=60,展示及格

--否则不及格 

建一个表格

 

 代码

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;

 

相关文章:

  • MySQL入门学习笔记(下)
  • 15.4 - 分类树法
  • python容器
  • xilinx FPGA FX2 usb通信模块之上位机发送的数据格式
  • 阿里云对象存储OSS存储照片
  • AES、RSA、DH加密解密
  • 高效的操作符使用剖析
  • CVE-2017-12615 Tomcat任意文件上传漏洞详解
  • 10.2国庆作业(PWM实验)
  • Java开发环境基础配置
  • 基于springboot和ftp实现的网盘文件系统
  • Maven创建聚合项目
  • ASP.NET MVC--视图
  • java基础巩固-宇宙第一AiYWM:为了维持生计,虽然咱没机会经历双11这种技术阅兵场,但是看看人家写的阅兵场日记,先xiao习xiao习一下嘛~整起
  • Mybatis配置详解 | 深入理解 『带上CSDN一起玩转国庆』
  • Android路由框架AnnoRouter:使用Java接口来定义路由跳转
  • express + mock 让前后台并行开发
  • FineReport中如何实现自动滚屏效果
  • input的行数自动增减
  • React中的“虫洞”——Context
  • SAP云平台运行环境Cloud Foundry和Neo的区别
  • thinkphp5.1 easywechat4 微信第三方开放平台
  • Unix命令
  • Vue.js-Day01
  • 爱情 北京女病人
  • 编写符合Python风格的对象
  • 对话:中国为什么有前途/ 写给中国的经济学
  • 开源地图数据可视化库——mapnik
  • 那些被忽略的 JavaScript 数组方法细节
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微服务核心架构梳理
  • 异步
  • 翻译 | The Principles of OOD 面向对象设计原则
  • ​一帧图像的Android之旅 :应用的首个绘制请求
  • #define
  • #QT项目实战(天气预报)
  • $.ajax,axios,fetch三种ajax请求的区别
  • (C#)获取字符编码的类
  • (附源码)spring boot北京冬奥会志愿者报名系统 毕业设计 150947
  • (附源码)springboot家庭装修管理系统 毕业设计 613205
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (附源码)流浪动物保护平台的设计与实现 毕业设计 161154
  • (含react-draggable库以及相关BUG如何解决)固定在左上方某盒子内(如按钮)添加可拖动功能,使用react hook语法实现
  • (力扣)1314.矩阵区域和
  • (数据结构)顺序表的定义
  • (原創) 是否该学PetShop将Model和BLL分开? (.NET) (N-Tier) (PetShop) (OO)
  • (转) 深度模型优化性能 调参
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • (转贴)用VML开发工作流设计器 UCML.NET工作流管理系统
  • .Net IOC框架入门之一 Unity
  • .net 程序发生了一个不可捕获的异常
  • .NET 实现 NTFS 文件系统的硬链接 mklink /J(Junction)
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .NET/ASP.NETMVC 大型站点架构设计—迁移Model元数据设置项(自定义元数据提供程序)...
  • .net快速开发框架源码分享