文章目录
- 一、函数介绍
- 二、字符串函数
- 1.练习代码
- 2.读出结果
- 三、数值函数
- 1.练习代码
- 2.读出结果
- 四、日期函数
- 1.练习代码
- 2.读出结果
- 五、流程控制函数
- 1.练习代码
- 2.读出结果
在当代技术世界中,掌握数据库设计和操作的知识和技能,尤其是对SQL的理解,早已成了计算机科学、数据科学和一系列其他技术领域中的必备技能。
本文旨在深入浅出地介绍MySQL中使用的各类函数,让读者一方面可以对这些函数有一个全面的认识,同时通过实例代码和练习,手把手教你如何运用它们进行数据操作。我们将会介绍到的函数会覆盖字符处理,数字计算,日期和时间,以及流程控制等方方面面,为你提供最实用的工具和函数方法。
无论你是数据操作的初学者还是有着一定基础的开发者,只要你希望对MySQL有更深入的了解并更有效地使用它,那么这篇文章都将能给你所需要的帮助。
一、函数介绍
二、字符串函数
代码如下(示例):
-- --------------------------------------函数演示------------------------------------------- concat
select concat('Hello','MySQL'); #HelloMySQL-- lower
select lower('Hello'); #hello-- upper
select upper('Hello'); #HELLO-- lpad
select lpad('01',5,'-'); #---01-- rpad
select rpad('01',5,'-'); #01----- trim
select trim(' Hello MySQL '); #Hello MySQL-- substring
select substring(' Hello MySQL ',1,5); # Hell
1.练习代码
代码如下(示例):
update emp set workno = lpad(workno,5,'0')
2.读出结果
注:本文所用于演示的数据表为 emp ,构建代码于文章:MySQL数据库基础第一篇(SQL通用语法与分类)可见
三、数值函数
代码如下(示例):
-- -------------------------------------------------------------------------------------------- 数值函数-- ceil
select ceil(1.1); #2-- floor
select floor(1.9); #1-- mod
select mod(7,4); #3-- rand
select rand(); #0.9526048888942272-- round
select round(2.3445,2); #2.34
1.练习代码
代码如下(示例):
select lpad(round(rand()*1000000,0),6,0);
2.读出结果
四、日期函数
代码如下(示例):
-- -------------------------------------------------------------------------------------------- 日期函数-- curdate
select curdate(); #2024-02-01-- curtime
select curtime(); #11:26:00-- now
select now(); #2024-02-01 11:26:09-- year month monthname
select year(now()); #2024select month(now()); #2select day(now()); #1-- date_add
select date_add(now(),interval 70 month ); #2029-12-01 11:30:31-- datediff
select datediff('2024-02-01 ','2029-07-11 '); #-1987
1.练习代码
代码如下(示例):
select name,datediff(curdate(),entrydate) as '入职天数' from emp order by entrydate desc ;
2.读出结果
五、流程控制函数
代码如下(示例):
-- -------------------------------------------------------------------------------------------- 流程控制函数-- if
select if(false,'ok','Error'); #Error-- ifnull
select ifnull('ok','Default'); #okselect ifnull(null,'Default'); #Default--
-- 需求:查询emp表的员工姓名与工作地址(北京|上海 ---->一线城市 ,其他 ---->二线城市)
selectname,(case workaddress when '北京' then '一线城市'when '上海' then '一线城市'else '二线城市' end ) as'工作地址'
from emp;
1.练习代码
代码如下(示例):
selectID,name,age,(case when 编程成绩 >=85 then '优秀' when 编程成绩 >= 60 then '及格' else '不及格' end )'编程成绩',(case when 高数成绩 >=85 then '优秀' when 高数成绩 >= 60 then '及格' else '不及格' end )'高数成绩',(case when 外语成绩 >=85 then '优秀' when 外语成绩 >= 60 then '及格' else '不及格' end )'外语成绩'from 表_name