MySQL(四)--- 数据处理函数

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!)

image.png


数据处理函数又被称为单行处理函数


单行处理函数的特点:一个输入对应一个输出。


和单行处理函数相对的是:多行处理函数。(多行处理函数特点:多个输入,对应1个输出!)


常见的单行处理行数


lower 转换小写select lower(ename) as ename from emp;


+--------+
| ename  |
+--------+
| smith  |
| allen  |
| ward   |
| jones  |
| martin |
| blake  |
| clark  |
| scott  |
| king   |
| turner |
| adams  |
| james  |
| ford   |
| miller |
+--------+


14个输入,最后还是14个输出。这是单行处理函数的特点。


upper 转换大写select upper(name) as name from t_student;


substr 取子串(substr( 被截取的字符串, 起始下标,截取的长度))select substr(ename, 1, 1) as ename from emp;注意:起始下标从1开始,没有0.


LEFT (string2 ,length )从 string2 中的左边起取 length 个字符


RIGHT (string2 ,length ) 从 string2 中的右边起取 length 个字符


找出员工名字第一个字母是A的员工信息?第一种方式:模糊查询select ename from emp where ename like 'A%';第二种方式:substr函数select ename from emp where substr(ename,1,1) = 'A';


学生名字首字母大写?


​ select concat(upper(substr(name,1,1)),substr(name,2,length(name) - 1)) as result from t_student;


注意:字符串拼接一定要用concat而不能用+


像这样不行:select upper(substr(name,1,1)) + substr(name,2,length(name) - 1) from t_student;


concat函数进行字符串的拼接select concat(empno,ename) from emp;


可以拼接多个concat(……,……,……)


length 取长度select length(ename) enamelength from emp;


trim 去两边空格


select * from emp where ename = trim('   KING');


RTrim切除右边的空格,LTrim切除左边的空格


str_to_date 将字符串转换成日期 date_format 格式化日期 format 设置千分位


(后面讲)


一个诡异的现象


select 'abc' as bieming from emp;    // select后面直接跟“字面量/字面值”


+---------+
    | bieming |
    +---------+
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    | abc     |
    +---------+


select abc from emp; ERROR 1054 (42S22): Unknown column 'abc' in 'field list' 这样肯定报错,因为会把abc当做一个字段的名字,去emp表中找abc字段去了。


结论:select后面可以跟某个表的字段名(可以等同看做变量名),也可以跟字面量/字面值(数据)。select 21000 as num from dept;// 21000也是被当做一个字面量/字面值。


+-------+
  | num   |
  +-------+
  | 21000 |
  | 21000 |
  | 21000 |
  | 21000 |
  +-------+


round(要操作的数, 保留几位小数)   四舍五入


select round(21000.4, 0) as num from dept; //结果和上面一样


select round(1236.567, -1); // 保留到十位。


rand() 生成随机数  在 0 ≤ 随机数 ≤ 1.0 select floor(rand()*100); // 100以内的随机数


如果使用 rand(seed) 返回随机数, 范围 0 ≤ 随机数 ≤ 1.0, 如果 seed 不变,多次执行返回的结果也是不变的


ifnull是空处理函数。专门处理空的,可以将 null  转换成一个具体值


在所有的数据库当中,只要有null参与了数学运算,最终结果就是NULL


计算每个员工的年薪?


select ename, (sal + ifnull(comm, 0))*12 year_sal from emp;


case..when..then..when..then..else..end 当员工的工作岗位是MANAGER的时候,工资上调10%,当工作岗位是SALESMAN的时候,工资上调50%,其它正常。 (注意:不修改数据库,只是将查询结果显示为工资上调) select ename, job, sal as oldsal, (case job when 'MANAGER' then sal*1.1 when 'SALESMAN' then sal*1.5 else sal end) as newsal from emp;


select 后可以不接from 当作简单的测试工具


等同于接了from dual;


dual为 亚元表, 系统表 可以作为测试表使用


select round(3.14, 3);


+----------------+
| round(3.14, 3) |
+----------------+
|          3.140 |
+----------------+


select concat('13','57','9');


+-----------------------+
| concat('13','57','9') |
+-----------------------+
| 13579                 |
+-----------------------+


相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7天前
|
JSON 关系型数据库 MySQL
Mysql(5)—函数
MySQL提供了许多内置的函数以帮助用户进行数据操作和分析。这些函数可以分为几类,包括聚合函数、字符串函数、数值函数、日期和时间函数、控制流函数等。
29 1
Mysql(5)—函数
|
16天前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
14 3
|
17天前
|
缓存 关系型数据库 MySQL
MySQL 满足条件函数中使用查询最大值函数
MySQL 满足条件函数中使用查询最大值函数
51 1
|
1月前
|
存储 SQL 关系型数据库
MySQL基础:函数
本文介绍了MySQL中几种常用的内建函数,包括字符串函数、数值函数、日期函数和流程函数。字符串函数如`CONCAT()`用于拼接字符串,`TRIM()`用于去除字符串两端的空格,`MOD()`求余数,`RAND()`生成随机数,`ROUND()`四舍五入。日期函数如`CURDATE()`返回当前日期,`NOW()`返回当前日期和时间,`DATE_ADD()`添加时间间隔,`DATEDIFF()`计算日期差。流程函数如`IF()`和`CASE WHEN THEN ELSE END`用于条件判断。聚合函数如`COUNT()`统计行数,`SUM()`求和,`AVG()`求平均值
25 8
MySQL基础:函数
|
2天前
|
关系型数据库 MySQL 数据库
mysql中tonumber函数使用要注意什么
在处理这类转换操作时,考虑周全,利用提供的高性能云服务器资源,可以进一步提升数据库处理效率,确保数据操作的稳定性和安全性,尤其是在处理大量数据转换和运算密集型应用时。
10 0
|
6天前
|
关系型数据库 MySQL 数据处理
企业级应用 mysql 日期函数变量,干货已整理
本文详细介绍了如何在MySQL8.0中使用DATE_FORMAT函数进行日期格式的转换,包括当日、昨日及不同时间段的数据获取,并提供了实际的ETL应用场景和注意事项,有助于提升数据处理的灵活性和一致性。
18 0
|
1月前
|
JSON 关系型数据库 MySQL
MySQL 8.0常用函数汇总与应用实例
这些函数只是MySQL 8.0提供的众多强大功能的一部分。通过结合使用这些函数,你可以有效地处理各种数据,优化数据库查询,并提高应用程序的性能和效率。
40 3
|
1月前
|
存储 关系型数据库 MySQL
MySQL MATCH 函数如何使用 WITH QUERY EXPANSION?
【9月更文挑战第2天】MySQL MATCH 函数如何使用 WITH QUERY EXPANSION?
36 0
|
2月前
|
存储 关系型数据库 MySQL
|
2月前
|
SQL 关系型数据库 MySQL
SQL Server、MySQL、PostgreSQL:主流数据库SQL语法异同比较——深入探讨数据类型、分页查询、表创建与数据插入、函数和索引等关键语法差异,为跨数据库开发提供实用指导
【8月更文挑战第31天】SQL Server、MySQL和PostgreSQL是当今最流行的关系型数据库管理系统,均使用SQL作为查询语言,但在语法和功能实现上存在差异。本文将比较它们在数据类型、分页查询、创建和插入数据以及函数和索引等方面的异同,帮助开发者更好地理解和使用这些数据库。尽管它们共用SQL语言,但每个系统都有独特的语法规则,了解这些差异有助于提升开发效率和项目成功率。
228 0