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

MySQL的常用函数大全

一、字符串函数

常用函数:

函数功能
CONCAT(s1, s2, …, sn)字符串拼接,将s1, s2, …, sn拼接成一个字符串
LOWER(str)将字符串全部转为小写
UPPER(str)将字符串全部转为大写
LPAD(str, n, pad)左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
RPAD(str, n, pad)右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
TRIM(str)去掉字符串头部和尾部的空格
SUBSTRING(str, start, len)返回从字符串str从start位置起的len个长度的字符串
REPLACE(column, source, replace)替换字符串

 案例:

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

SQL编写如下:  update emp set workno =lpad(workno,5,'0');

 

二、数值函数

 

常见函数:

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

三、日期函数

常用函数:

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

案例:

        查询所有员工的入职天数,并根据入职天数倒序排序。表名为emp,员工的入职天数字段为entrydate,SQL语句如下:
        select name,datediff(curdate(), entrydate) as 'entrydays’ from emp order by entrydays 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默认值

 案例:

统计班级各个学员的成绩,展示的规则如下:>= 85,展示优秀 。>= 60,展示及格。否则,展示不及格。SQL语句如下:

select
id,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;

五、聚合函数

语法:
  SELECT 聚合函数(字段列表) FROM 表名;
例:
  SELECT count(id) from employee where workaddress = "广东省"; 

http://www.lryc.cn/news/110127.html

相关文章:

  • 一百四十三、Linux——Linux的CentOS 7系统语言由中文改成英文
  • 一 关于idea如何在svn进行项目下载并运行成功
  • python使用selenium 打开谷歌浏览器闪退, 怎么解决
  • .net 6 efcore一个model映射到多张表(非使用IEntityTypeConfiguration)
  • CISCO MDS 9148 SAN Switch 交换机命令配置方法:
  • 图的深度、广度优先探索(数据结构)
  • c语言小知识点
  • C++ - 模板分离编译
  • 如何把非1024的采样数放入aac编码器
  • linux安装nodejs和vue
  • spring整合mybatis
  • Spring指定bean在哪个应用加载
  • 二维网格划分 LRU缓存设计
  • C++中使用 sizeof 确定变量的长度
  • 我们的衣物收纳商品政策
  • 代码随想录算法训练营第25天| 第七章 回溯算法part02: leetcode 216、leetcode 17
  • WebAPI文档与自动化测试
  • netty架构
  • 拉普拉斯平滑算法
  • Java课题笔记~ IoC 控制反转
  • 【Spring】Spring中的设计模式
  • 【ChatGLM_02】LangChain知识库+Lora微调chatglm2-6b模型+提示词Prompt的使用原则
  • 构建未来移动应用:探索安卓、iOS和HarmonyOS的技术之旅
  • 【新版系统架构补充】-嵌入式软件
  • 【云原生】K8S超详细概述
  • (五)Node.js -模块的加载机制
  • 【docker】Windows11系统下安装并配置阿里云镜像加速
  • SpringBoot搭建WebSocket初始化
  • 节能延寿:ARM Cortex-M微控制器下的低功耗定时器应用
  • GPT突破限制回复图片