文章目录

  • MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数
    • 一、字符串函数
    • 二、数值函数
    • 三、日期函数
    • 四、流程函数
    • 五、模拟所需SQL语句

MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数

​MySQL函数是MySQL数据库提供的内部函数。这些内部函数可以帮助用户更加方便的处理表中的数据

MySQL函数可以对表中数据进行相应的处理,以便得到用户希望得到的数据。这些函数可以使MySQL数据库的功能更加强大

一、字符串函数

由于业务需求变更,工号,统一为6位数,目前不足5位数的全部在前面补0。比如: 1号员工的工号应该为0000a1

update customer set cust_id = lpad(cust_id, 6, '0')select * from customer

二、数值函数


round:四舍五入

 select round(6.66666666,6) '四舍五入';

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

思路: 获取随机数可以通过rand()函数,但是获取出来的随机数是在0-1之间的,所以可以在其基础上乘以1000000,然后舍弃小数部分,如果长度不足6位,补0

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

三、日期函数


1、curdate:当前日期

select curdate();

2、 curtime:当前时间

select curtime();


3、 now:当前日期和时间

select now();

4、YEAR , MONTH , DAY:当前年、月、日

select YEAR(now());
select MONTH(now());
select DAY(now());select quarter(curdate()) AS '当前季度'select weekofyear(curdate()) AS '当前周数'select YEAR(now()) '年',MONTH(now())'月',DAY(now())'日';

获取年月日

获取当前季度

获取当前周数

5、 date_add:增加指定的时间间隔

select date_add(now(), INTERVAL 70 YEAR );


6、datediff:获取两个日期相差的天数

select datediff('2021-10-01', '2021-12-01');


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

思路: 入职天数,就是通过当前日期 - 入职日期,所以需要使用datediff函数来完成。

SELECT NAME AS '姓名',datediff( curdate(), entrydate ) AS 'entrydays'
FROMemp
ORDER BYentrydays DESC;

6.2 了解2021年8月份所有练习过题目的总用户数练习过题目的总次数

2021年8月份,匹配date字段即可,匹配方法主要有三种:

(1)like语法:date like “2021-08%”
(2)year、month函数:year(date)=‘2021’ and month(date)=‘08’;
(3)date_format函数:date_format(date, ‘%Y-%m’)=‘2021-08’;

select
count(distinct device_id)did_cnt,
count(question_id)question_cnt
from question_practice_detail
where date_format(date,'%Y-%m')= '2021-08'
# where date like '%2021-08%'

计算出2021年8月每天用户练习题目的数量


关键在于:使用日期函数取出8月的每天,day(date) day

select
day(date) day,
count(question_id) question_cnt
from question_practice_detail
where date like '%2021-08%'
group by day

7、获取两个日期之间的天数

SELECT DATEDIFF('2023-09-06','2023-01-06')

四、流程函数

case when then else end

需求: 查询emp表的员工姓名和工作地址 (北京/上海 ----> 一线城市 , 其他 ----> 二线城市)

SELECT NAME AS '姓名',( CASE workaddress WHEN '北京' THEN '一线城市' WHEN '上海' THEN '一线城市' ELSE '二线城市' END ) AS '工作地址'
FROMemp;

SELECTid,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 ) '语文'
FROMscore;

五、模拟所需SQL语句

DROP TABLE IF EXISTS `emp`;
CREATE TABLE `emp`  (`id` int(11) NULL DEFAULT NULL COMMENT '编号',`workno` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '工号',`name` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '姓名',`gender` char(1) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '性别',`age` tinyint(3) UNSIGNED NULL DEFAULT NULL COMMENT '年龄',`idcard` char(18) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '身份证号',`workaddress` varchar(50) CHARACTER SET utf8 COLLATE utf8_bin NULL DEFAULT NULL COMMENT '工作地址',`entrydate` date NULL DEFAULT NULL COMMENT '入职时间'
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin COMMENT = '员工表' ROW_FORMAT = Dynamic;-- ----------------------------
-- Records of emp
-- ----------------------------
INSERT INTO `emp` VALUES (1, '00001', '柳岩666', '女', 20, '123456789012345678', '北京', '2000-01-01');
INSERT INTO `emp` VALUES (2, '00002', '张无忌', '男', 18, '123456789012345670', '北京', '2005-09-01');
INSERT INTO `emp` VALUES (3, '00003', '韦一笑', '男', 38, '123456789712345670', '上海', '2005-08-01');
INSERT INTO `emp` VALUES (4, '00004', '赵敏', '女', 18, '123456757123845670', '北京', '2009-12-01');
INSERT INTO `emp` VALUES (5, '00005', '小昭', '女', 16, '123456769012345678', '上海', '2007-07-01');
INSERT INTO `emp` VALUES (6, '00006', '杨逍', '男', 28, '12345678931234567X', '北京', '2006-01-01');
INSERT INTO `emp` VALUES (7, '00007', '范瑶', '男', 40, '123456789212345670', '北京', '2005-05-01');
INSERT INTO `emp` VALUES (8, '00008', '黛绮丝', '女', 38, '123456157123645670', '天津', '2015-05-01');
INSERT INTO `emp` VALUES (9, '00009', '范凉凉', '女', 45, '123156789012345678', '北京', '2010-04-01');
INSERT INTO `emp` VALUES (10, '00010', '陈友谅', '男', 53, '123456789012345670', '上海', '2011-01-01');
INSERT INTO `emp` VALUES (11, '00011', '张士诚', '男', 55, '123567897123465670', '江苏', '2015-05-01');
INSERT INTO `emp` VALUES (12, '00012', '常遇春', '男', 32, '123446757152345670', '北京', '2004-02-01');
INSERT INTO `emp` VALUES (13, '00013', '张三丰', '男', 88, '123656789012345678', '江苏', '2020-11-01');
INSERT INTO `emp` VALUES (14, '00014', '灭绝', '女', 65, '123456719012345670', '西安', '2019-05-01');
INSERT INTO `emp` VALUES (15, '00015', '胡青牛', '男', 70, '12345674971234567X', '西安', '2018-04-01');
INSERT INTO `emp` VALUES (16, '00016', '周芷若', '女', 18, NULL, '北京', '2012-06-01');SET FOREIGN_KEY_CHECKS = 1;

【MYSQL】MYSQL 主要函数相关推荐

  1. mysql的字符串函数大全_MySQL的字符串函数大全

    ASCII(str) 返回字符串str的最左面字符的ASCII代码值.如果str是空字符串,返回0.如果str是NULL,返回NULL. mysql> select ASCII('2'); -& ...

  2. mysql的常用函数

    一.数学函数 ABS(x)                    返回x的绝对值 BIN(x) 返回x的二进制(OCT返回八进制,HEX返回十六进制) CEILING(x)               ...

  3. PHP访问mysql的常用函数,PHP操作MySQL数据库常用函数

    PHP操作MySQL数据库常用函数 php操作mysql数据库,俗称天龙八步: 第一步:连接数据库 第二步:判断连接错误 第三步:选择数据库 第四步:设置字符集 第五步:准备SQL语句 第六步:执行并 ...

  4. oracle迁移mysql视图中函数问题,mysql中to_char自定义函数。

    迁移到mysql中会遇到函数迁移问题,我们可以自定义函数 DELIMITER $$ CREATE FUNCTION new_data_report.to_char(Intnumber int) RET ...

  5. mysql的聚合函数综合案例_MySQL常用聚合函数详解

    一.AVG AVG(col) 返回指定列的平均值 二.COUNT COUNT(col) 返回指定列中非NULL值的个数 三.MIN/MAX MIN(col):返回指定列的最小值 MAX(col):返回 ...

  6. mysql 开仓函数_MySQL函数大全 及用法示例

    字符串函数 ASCII(str) 返回字符串str的第一个字符的ASCII值(str是空串时返回0) mysql> select ASCII('2'); -> 50 mysql> s ...

  7. mysql日期时间函数

    MySQL 日期跟时间函数(一) 作者: Mr.Zhang MySQL 日期跟时间的样式 在MySQL 中有很多有用处的日期跟时间函数.我们常常看到许多应用于日期的计算是在代码 方面上进行的,但是其实 ...

  8. mysql中find_in_set()函数的使用

    语法:FIND_IN_SET(str,strlist)定义:1. 假如字符串str在由N子链组成的字符串列表strlist中,则返回值的范围在1到N之间.2. 一个字符串列表就是一个由一些被','符号 ...

  9. mysql中concat函数的使用相关总结

    concat(str1,str2) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. mysql> select concat('11','22','33') ...

  10. mysql的min函数的使用方法_MySQL中MIN()函数的使用教程

    MySQL的MIN函数是用来找出一个记录集最小值的记录. 要了解MIN函数考虑的EMPLOYEE_TBL表具有以下记录: mysql> SELECT * FROM employee_tbl; + ...

最新文章

  1. Adnroid文件存储路径getFilesDir()与getExternalFilesDir的区别
  2. 8 ServletContext
  3. 远程访问windows上的oracle不能正常连接
  4. 阿里Druid连接池监控的两个坑
  5. MySQL数据查询新人须知
  6. 江苏大学计算机导论试题,江苏大学毕业设计任务书
  7. python excel库 linux_python 在linux下读取 .xlsx
  8. 【第5题】利用条件运算符的嵌套来完成此题
  9. c语言有开始菜单的flybird,C语言实现Flybird
  10. 爬虫实战之抓取猫眼电影排行TOP100(使用正则表达式提取数据)
  11. 谷歌chromeos_如何安装Chrome OS系统
  12. OpenSIPS Crash 宕机的初步解决办法(二)
  13. Input鼠标键盘输入
  14. word大括号中公式左对齐
  15. 苹果快捷键怎么调出来_iPad常用快捷键
  16. csu1671 经营小卖部(DP 完全背包 好题)
  17. **遇到“Cannot create file “不要慌**
  18. python列表操作计算列表长度并输出,python列表 (list)
  19. 若依框架获取和修改当前登录用户信息
  20. 惠普电脑如何重装Linux系统,如何把惠普下的Linux操作系统换为windows 7

热门文章

  1. 一文看懂计算机视觉!7个专业术语别说你不知道!
  2. python生成单位矩阵_python 实现一个反向单位矩阵示例
  3. 解决phpstorm运行很卡问题!
  4. excel 单元格插入图片
  5. eplan和西门子plc的对接_彻底搞定西门子1200PLC之通讯篇
  6. idea双击打不开我的解决方法
  7. CSP 202109-4 收集卡牌
  8. word使用技巧-批量删除图片技巧
  9. 解决matplotlib绘制图片时plt.savefig()后图片全黑的问题
  10. 小笑话一则,但是却引人深思,谁能讲出它更深成的意义