08 MySQL中的单行函数

本文详细介绍了MySQL中的单行函数,包括字符函数(如UPPER、CONCAT)、数字函数(ROUND、TRUNCATE、MOD)、日期函数(SYSDATE)和转换函数(STR_TO_DATE、DATE_FORMAT)。此外,还涵盖了通用函数,如IF、ISNULL、IFNULL以及CASE语句的使用,帮助读者理解如何在SQL查询中进行数据处理和转换。
摘要由CSDN通过智能技术生成

目录

一、单行函数介绍:

2.单行函数分类:字符函数、数字函数、日期函数、转换函数、通用函数

二、字符函数:

1.大小写处理函数:

UPPER(S)

2.常用字符处理函数:

CONCAT(s1,s2...)、LENGTH(s)

三、数字函数:

1.常用函数:

2.三个常用数学函数:

2.1.ROUND(column|expression, n) 函数

2.2.TRUNCATE(column|expression,n) 函数

2.3.使用MOD(m,n) 函数

四、日期函数:

注意:两种时间格式:

SYSDATE()

五、转换函数:

1.隐式数据类型转换

2.显示数据类型转换

3.占位符:

1.STR_TO_DATE(str,format) 将字符串转换成日期;

2.DATE_FORMAT(date,format) 将日期转换成字符串;

六、通用函数:

1.IF(expr,v1,v2)、ISNULL(expression)

2.IFNULL(v1,v2)

3.Case expression when condition1 then result1

                                when condition2 then result2

                                ......

                                when conditionN then resultN

Else result end

4.注意:JOB_ID后面跟着逗号,每层的when....then....后面没有逗号


一、单行函数介绍:

 

2.单行函数分类:字符函数、数字函数、日期函数、转换函数、通用函数

 

二、字符函数:

 

1.大小写处理函数:

 

UPPER(S)

例:select employee_id ,UPPER(last_name),department_id from employees where last_name like "%e%";

表示:显示雇员 Davies 的雇员号、姓名和部门号,将姓名转换为大写。

2.常用字符处理函数:

 

CONCAT(s1,s2...)、LENGTH(s)

例:SELECT CONCAT(FIRST_NAME,LAST_NAME), LENGTH(EMPLOYEE_ID) LENGTH , INSTR(LAST_NAME,'a') "CONTAINS 'a'?" from employees where SUBSTR(JOB_ID,4) = 'rep';

表示:显示所有工作岗位名称从第 4 个字符位置开始,包含字符串 REP的

雇员的ID信息,将雇员的姓和名连接显示在一起,还显示雇员名的

的长度,以及名字中字母 a 的位置。

三、数字函数:

1.常用函数:

 

 

 

2.三个常用数学函数:

2.1.ROUND(column|expression, n) 函数

ROUND 函数四舍五入列、表达式或者 n 位小数的值。如果第二个

参数是 0 或者缺少,值被四舍五入为整数。如果第二个参数是 2值

被四舍五入为两位小数。如果第二个参数是–2,值被四舍五入到小

数点左边两位。

例:SELECT ROUND(45.923,2),ROUND(45.923,0),ROUND(45.923,-1);

(1)表示保留小数点后两位(2)表示只保留整数位(3)表示小数点向左移一位再四舍五入,即值为5.

2.2.TRUNCATE(column|expression,n) 函数

TRUNCATE函数的作用类似于 ROUND 函数。如果第二个参数是 0

或者缺少,值被截断为整数。如果第二个参数是 2,值被截断为两

位小数。如果第二个参数是–2,值被截断到小数点左边两位。

ROUND 最大的区别是不会进行四舍五入。

例:SELECT TRUNCATE(45.923,2);

表示值为45.92

2.3.使用MOD(m,n) 函数

MOD 函数找出m 除以n的余数。

例:SELECT last_name, salary, MOD(salary, 5000) FROM employees WHERE job_id = 'SA_REP';

四、日期函数:

在MySQL中允许直接使用字符串表示日期,但是要求字符串的日期

格式必须为:‘YYYY-MM-DD HH:MI:SS’ 或者‘YYYY/MM/DD HH:MI:SS’;

 

 

例:insert  into

employees(EMPLOYEE_ID,last_name,email,HIRE_DATE,JOB_ID)  values(300,'kevin','kevin@sxt.cn', '2049-5-1 8:30:30','IT_PROG');

表示:向 employees 表中添加一条数据,雇员ID:300,名字:kevin ,email:kevin@sxt.cn ,入职时间:2049-5-1 8:30:30,工作部门:‘IT_PROG’。

注意:两种时间格式:

(1)2022-6-25 8:30:30

(2)2022/6/25 8:30:30

SYSDATE()

例:SELECT last_name, (SYSDATE()-hire_date)/7 AS WEEKS FROM employees WHERE department_id =90;

表示:显示所有在部门 90 中的雇员的名字和从业的周数。雇员的总工作

时间以周计算,用当前日期 (SYSDATE) 减去雇员的受顾日期,再除

以 7。

五、转换函数:

 

 

1.隐式数据类型转换

隐式数据类型转换是指MySQL服务器能够自动地进行类型转换

如:可以将标准格式的字串日期自动转换为日期类型。

MySQL字符串日期格式为:‘YYYY-MM-DD HH:MI:SS’ 或

‘YYYY/MM/DD HH:MI:SS’;

2.显示数据类型转换

显示数据类型转换是指需要依赖转换函数来完成相关类型的转换

如:

DATE_FORMAT(date,format) 将日期转换成字符串;

STR_TO_DATE(str,format) 将字符串转换成日期;

3.占位符:

 

1.STR_TO_DATE(str,format) 将字符串转换成日期;

例:insert  into employees(EMPLOYEE_ID,last_name,email,HIRE_DATE,JOB_ID) values

(400,'oldlu','oldlu@sxt.cn',STR_TO_DATE('2049 年 5 月 5 日','%Y 年%m 月%d日'),'IT_PROG');

表示:向 employees 表中添加一条数据,雇员ID:400,名字:oldlu ,email:oldlu@sxt.cn ,入职时间:2049 年 5 月 5 日,工作部门:‘IT_PROG’。

2.DATE_FORMAT(date,format) 将日期转换成字符串;

例:select DATE_FORMAT(hire_date,'%Y 年%m 月%d日') from employees where last_name = 'King';

表示:查询 employees 表中雇员名字为 King 的雇员的入职日期,要求显示格式为 yyyy 年 MM 月 dd 日。

六、通用函数:

1.IF(expr,v1,v2)、ISNULL(expression)

例:

SELECT last_name, salary, commission_pct,  if(ISNULL(commission_pct), 'SAL','SAL+COMM') income FROM employees WHERE department_id IN (50, 80);

表示:查询部门编号是50或者80的员工信息,包含他们的名字、薪水、佣金。在income列中,如果有佣金则显示‘SAL+COMM’,无佣金则显示'SAL'。

2.IFNULL(v1,v2)

例:SELECT last_name, salary, IFNULL(commission_pct, 0), (salary*12) +(salary*12*IFNULL(commission_pct, 0)) AN_SAL FROM employees;

表示:计算雇员的年报酬,你需要用 12 乘以月薪,再加上它的佣金 (等于年薪乘以佣金百分比)。

3.Case expression when condition1 then result1

                                when condition2 then result2

                                ......

                                when conditionN then resultN

Else result end

例:.写一个查询,按照下面的数据显示所有雇员的基于 JOB_ID 列值的级别。

 

4.注意:JOB_ID后面跟着逗号,每层的when....then....后面没有逗号

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值