MySQL中几种常见的函数及具体操作
函数
MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。
字符串函数
![](/assets/blank.gif)
-- -----------------字符串函数演示------------------------
-- concat 字符串拼接,将S1,S2,...Sn拼接成一个字符串
select concat('Hello', 'MySQL');-- lower 将字符串str全部转为小写
select lower('Hello');-- upper 将字符串str全部转为大写
select upper('Hello');-- lpad 左填充,用字符串pad对str的左边进行填充,达到n个字符串长度
select lpad('01', 5, '-');-- rpad 右填充,用字符串pad对str的右边进行填充,达到n个字符串长度
select rpad('01', 5, '-');-- trim 去掉字符串头部和尾部的空格
select trim(' Hello MySQL ');-- substring 返回从字符串str从start位置起的len个长度的字符串
select substring('Hello MySQL', 1, 5);
数值函数
![](/assets/blank.gif)
具体实现代码
-- ---------------------数值函数-----------------------
-- ceil 向上取整
select ceil(1.1);-- floor 向下取整
select floor(1.9);-- mod 返回x/y的模
select mod(7, 4);-- rand 返回0~1内的随机数
select rand();-- round 求参数x的四舍五入的值,保留y为小数
select round(2.34, 2);-- 案例:通过数据库的函数,生成一个六位数的验证码
select lpad(round(rand() * 1000000, 0), 6, '0');
日期函数
![](/assets/blank.gif)
演示如下
-- -------------------日期函数----------------
-- curdate() 返回当前日期
select curdate();-- curtime() 返回当前时间
select curtime();-- now() 返回当前日期和时间
select now();-- year(date) 获取指定date的年份
select year(now());-- month(date) 获取指定date的月份
select month(now());-- day(date) 获取指定date的日期
select day(now());-- date_add(date,interval expr type) 返回一个日期/时间值加上一个时间间隔expr后的时间值
select date_add(now(), interval 70 day);-- datediff(date1,date2) 返回起始时间date1和结束时间date2之间的天数
select datediff('2021-3-06', '2022-11-01');-- 案例:查询所有员工的入职天数,并根据入职天数倒序排序
select name, datediff(curdate(), entrydate) as 'entrydays'
from emp
order by entrydays desc;
流程函数
-- ---------------流程函数--------------、
-- if(value,t,f) 如果value为true,则返回t,否则返回f
select if(false, 'ok', 'error');-- ifnull(value1,value2) 如果value1不为空,返回value1,否则返回value2
select ifnull('ok', 'default');select ifnull('', 'default');select ifnull(null, 'default');-- case when [val1] then [res1]...else[default]end 如果val1为true,返回res1,...否则返回default默认值
-- 需求:查询emp表的员工姓名和工作地址(北京/上海---> 一线城市,其他---> 二线城市)
select name,(case workaddress when '北京' then '一线城市' when '上海' then '一线城市' else '二线城市' end) as '工作地址'
from emp;
流程函数用到的数据
-- 准备数据
create table dept
(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '部门名称'
) comment '部门表';create table emp
(id int auto_increment comment 'ID' primary key,name varchar(50) not null comment '姓名',age int comment '年龄',job varchar(20) comment '职位',salary int comment '薪资',entrydate date comment '入职时间',managerid int comment '直属领导ID',dept_id int comment '部门ID',workaddress int not null
) comment '员工表';-- 添加外键
alter table empadd constraint fk_emp_dept_id foreign key (dept_id) references dept (id);INSERT INTO dept (id, name)
VALUES (1, '研发部'),(2, '市场部'),(3, '财务部'),(4, '销售部'),(5, '总经办'),(6, '人事部');
INSERT INTO emp (id, name, age, job, salary, entrydate, managerid, dept_id)
VALUES (1, '金庸', 66, '总裁', 20000, '2000-01-01', null, 5),(2, '张无忌', 20, '项目经理', 12500, '2005-12-05', 1, 1),(3, '杨逍', 33, '开发', 8400, '2000-11-03', 2, 1),(4, '韦一笑', 48, '开发', 11000, '2002-02-05', 2, 1),(5, '常遇春', 43, '开发', 10500, '2004-09-07', 3, 1),(6, '小昭', 19, '程序员鼓励师', 6600, '2004-10-12', 2, 1),(7, '灭绝', 60, '财务总监', 8500, '2002-09-12', 1, 3),(8, '周芷若', 19, '会计', 48000, '2006-06-02', 7, 3),(9, '丁敏君', 23, '出纳', 5250, '2009-05-13', 7, 3),(10, '赵敏', 20, '市场部总监', 12500, '2004-10-12', 1, 2),(11, '鹿杖客', 56, '职员', 3750, '2006-10-03', 10, 2),(12, '鹤笔翁', 19, '职员', 3750, '2007-05-09', 10, 2),(13, '方东白', 19, '职员', 5500, '2009-02-12', 10, 2),(14, '张三丰', 88, '销售总监', 14000, '2004-10-12', 1, 4),(15, '俞莲舟', 38, '销售', 4600, '2004-10-12', 14, 4),(16, '宋远桥', 40, '销售', 4600, '2004-10-12', 14, 4),(17, '陈友谅', 42, null, 2000, '2011-10-12', 1, null);
update emp
set workno = 01,gender ='男'
where id = 1;
update emp
set workno = 02,gender ='男'
where id = 2;
update emp
set workno = 03,gender ='男'
where id = 3;
update emp
set workno = 04,gender ='男'
where id = 4;
update emp
set workno = 05,gender ='男'
where id = 5;
update emp
set workno = 06,gender ='男'
where id = 6;
update emp
set workno = 07,gender ='女'
where id = 7;
update emp
set workno = 08,gender ='女'
where id = 8;
update emp
set workno = 09,gender ='女'
where id = 9;
update emp
set workno = 10,gender ='女'
where id = 10;
update emp
set workno = 11,gender ='男'
where id = 11;
update emp
set workno = 12,gender ='男'
where id = 12;
update emp
set workno = 13,gender ='男'
where id = 13;
update emp
set workno = 14,gender ='男'
where id = 14;
update emp
set workno = 15,gender ='男'
where id = 15;
update emp
set workno = 16,gender ='男'
where id = 16;
update emp
set workno = 17,gender ='男'
where id = 17;update emp
set workaddress='北京'
where id = 1;
update emp
set workaddress='上海'
where id = 2;
update emp
set workaddress='北京'
where id = 3;
update emp
set workaddress='哈尔滨'
where id = 4;
update emp
set workaddress='河南'
where id = 5;
update emp
set workaddress='广州'
where id = 6;
update emp
set workaddress='南京'
where id = 7;
update emp
set workaddress='江苏'
where id = 8;
update emp
set workaddress='深圳'
where id = 9;
update emp
set workaddress='四川'
where id = 10;
update emp
set workaddress='成都'
where id = 11;
update emp
set workaddress='香港'
where id = 12;
update emp
set workaddress='天津'
where id = 13;
update emp
set workaddress='北京'
where id = 14;
update emp
set workaddress='山东'
where id = 15;
update emp
set workaddress='湖南'
where id = 16;
update emp
set workaddress='贵州'
where id = 17;
MySQL中几种常见的函数及具体操作相关推荐
- Mysql中4种常见的插入方式
4种常见insert方式 准备工作 CREATE TABLE `identity_table` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id' ...
- Java中 9 种常见的 CMS GC 问题分析与解决
目录 Java中 9 种常见的 CMS GC 问题分析与解决 1. GC 1.1 引言 1.2 概览 2. GC 基础 2.1 基础概念 2.2 JVM 内存划分 2.3 分配对象 2.4 收集对象 ...
- unity3d中画线有几种方式_Spring RestTemplate中几种常见的请求方式
原文 https://segmentfault.com/a/1190000011093597 在Spring Cloud中服务的发现与消费一文中,当我们从服务消费端去调用服务提供者的服务的时候,使用了 ...
- Spring RestTemplate中几种常见的请求方式
关注公众号[江南一点雨],专注于 Spring Boot+微服务以及前后端分离等全栈技术,定期视频教程分享,关注后回复 Java ,领取松哥为你精心准备的 Java 干货! 在Spring Cloud ...
- Spring RestTemplate中几种常见的请求方式GET请求 POST请求 PUT请求 DELETE请求
Spring RestTemplate中几种常见的请求方式 原文地址: https://blog.csdn.net/u012702547/article/details/77917939 版权声明:本 ...
- 小波基函数构造matlab,五种常见小波基函数及其matlab实现全解.docx
五种常见小波基函数及其matlab实现全解 与标准的傅里叶变换相比,小波分析中使用到的小波函数具有不唯一性,即小波函数 具有多样性.小波分析在工程应用中,一个十分重要的问题就是最优小波基的选择问题,因 ...
- java简述常见的布局极其特点_请简要说明 Android 中五种常见布局的特点。_学小易找答案...
[简答题]请简要说明有序广播和无序广播的区别 [简答题]请简要说明 Android 程序结构中 AndroidManifest.xml 的功能? [简答题]简述李村站人工办理进路的作业过程. [简答题 ...
- 算法中七种常见的时间复杂度
这是我的推广信息,以激励自己更好的分享自己的知识和经验!也希望看到的你能够多多支持,谢谢! 1. 滴滴云AI大师: 目前滴滴云正在大力推广自己的云计算服务,需要购买的朋友们用我的AI大师码 「2049 ...
- java中的排序方法_Java中8种常见的排序方法
本博主要介绍Java中几种常见的排序算法: /* 排序方法的演示 1)插入排序(直接插入排序.希尔排序) 2)交换排序(冒泡排序.快速排序) 3)选择排序(直接选择排序.堆排序) 4)归并排序 5)分 ...
最新文章
- REDIS的几个测试结果
- 博客园上海俱乐部第二次活动全程图片报道(多图)
- 马蜂窝事件背后暴露出的数据风险
- cpu meltdown 熔断 漏洞 突破内存独立性限制 简介
- java数组之binarySearch查找
- 优先队列如何按照pair 的第二关键字排序(对比vector按照pair第二关键字排序)
- 复制内存时检测到可能的io争用条件_这篇高并发服务模型大科普,内部分享时被老大表扬了...
- Confluence 实现公司wiki【转】
- Android魔法(第三弹)—— 一步步实现对折页面
- LeetCode——树:BST
- 跳一跳python刷分_【Python跳一跳刷分辅助】iPhone版_Python跳一跳刷分辅助Ios最新版下载_Python跳一跳刷分辅助v1.0.1苹果版免费下载 - 九酷苹果网...
- Ubuntu16.04LTS修改开机动画
- 【产品对比】Word开发工具Aspose.Words和Spire.Doc性能和优劣对比一览
- 8、TypeScript-解构赋值
- 我的世界java版联机不稳定_我的世界:你一定不会相信,时隔2年,网易这次真的“更新”了...
- funcode黄金矿工(提高篇)
- android 视频编辑应用,安卓视频剪辑软件推荐
- 江苏省计算机二级python往年卷_历年江苏省计算机二级考试真题及答案2008-2009
- 用Python玩转数据(一)
- 免费计算机论文 阅读,关于计算机的毕业论文
热门文章
- shell脚本—case用法
- S7-1200PLC通过USS通信控制V20变频器的具体方法和步骤
- 蓝桥杯嵌入式——第十一届蓝桥杯嵌入式国赛
- uniapp 实现长按复制文本功能
- PHPCMS_V9模板制作模板列表
- RK3568平台开发系列讲解(环境篇)瑞芯微原厂源码目录介绍
- C++挖掘程序本质(第二章C++面向对象-中)李明杰-M了个J 配套教材
- opencv python3 找图片色块_OpenCV中色块的检测与标注
- template functional
- 在python中数据的输出用哪个函数名_在Python中,数据的输出用哪个函数名