MySQL 数值函数,字符串函数与多表查询

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: MySQL 数值函数,字符串函数与多表查询

MySQL像其他语言一样,也提供了很多库函数,分为单行函数和分组函数(聚合函数),我们这里先简易介绍一些函数,熟悉就行,知道怎么使用即可.

数值函数

三角函数

指数与对数函数

进制间的转换函数

字符串函数

注:LPAD函数是右对齐,RPAD函数是左对齐

多表查询

注:如果为表起了别名,就不能使用表的原名了

多表查询的实现一共有SQL92和SQL99两种语法方式.至于为什么需要多表查询呢?

由于我们在实现业务的时候将不同的表分开会提高我们的查询效率,

我们这里用七张来描述两张表的关系

其中最下面两张表是由上面的表组合产生的

内连接

中图是表示内连接的图,只包含两张图的数据都不为空的情况

eg:在两张表中查询员工姓名和奖金  使用内连接查询就不会查到没有姓名的奖金或没有奖金的员工

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE 连接条件;
//SQL99语法
SELECT 字段 FROM 表a JOIN 表b ON 连接条件;

外连接

左外连接(左上图)

需求: 假设我需要查询到所有员工的奖金情况,包含没有奖金的也需要显示记录,此时就可以使用左外连接

注:MySQL不支持SQL92语法中左外连接

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE a.id = b.id(+);
数据少的那一方放一个+即可
//SQL99语法
SELECT 字段 FROM 表a(员工表) LEFT JOIN 表b ON 连接条件;

右外连接(右上图)

和上面类似

//SQL92语法
SELECT 字段  FROM 表a,表b WHERE a.id(+) = b.id;
数据少的那一方放一个+即可
//SQL99语法
SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件;

左中图

SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件 WHERE b.data IS NULL;

右中图

SELECT 字段 FROM 表a(员工表) RIGHT JOIN 表b ON 连接条件 WHERE a.data IS NULL;

UNION关键字的使用

作用:将两个查询到的结果集结合到一起,要求是对应列的数据类型相同.

SQL中的UNION操作符告诉数据库将通过单独的SELECT查询检索到的两个单独的结果集合并为一个结果集,其中包含两个查询返回的行。

注意:数据库不会限制UNION中SELECT查询的复杂性。数据检索查询可以包括JOIN语句、聚合或子查询。通常,UNION用于合并复杂语句的结果。

 

注:不建议使用 union ,因为 union操作设计去重操作,会加大开销,建议使用 union all 操作

满外连接(左下图)

//SQL99
SELECT 字段 FROM 表a(员工表) FULL JOIN 表b ON 连接条件; 
//SQL92 
LEFT JOIN 的语句 UNION ALL b.data IS NULL;

下面几个图都是一样的,不做过多赘述

SQL99新特性

自然连接

(natural join) 可以自动识别两个表相同字段的列做连接

自动识别连接条件

SELECT 字段 FROM 表a(员工表) NATURAL JOIN 表b ;

using(和join配合使用)

SELECT 字段 FROM 表a(员工表) FULL JOIN 表b USING(连接条件);

 

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
5天前
|
存储 SQL NoSQL
mysql存储过程和存储函数
mysql存储过程和存储函数
|
5天前
|
关系型数据库 MySQL
3. Mysql 如何实现多表查询
MySQL多表查询主要包括内连接和外连接。内连接有隐式和显式:隐式是通过`From 表A, 表B where 连接条件`,显式是`From 表A inner join 表B on 连接条件`。外连接包括左外连接(`left join`)、右外连接(`right join`)和全外连接(较少使用)。此外,还有交叉连接(`cross join`),但也较少使用。
21 0
|
5天前
|
SQL 关系型数据库 MySQL
MySQL第三战:CRUD,函数1以及union&union all
MySQL第三战:CRUD,函数1以及union&union all
|
5天前
|
SQL 关系型数据库 MySQL
【Mysql】在多表查询过程中如果已经起了别名,就不能通过表名限定字段
【Mysql】在多表查询过程中如果已经起了别名,就不能通过表名限定字段
|
5天前
|
SQL 数据可视化 关系型数据库
【MySQL-11】多表查询全解-【多表关系/内外自连接/子查询/多表查询案例链接】(可cv代码&案例演示)
【MySQL-11】多表查询全解-【多表关系/内外自连接/子查询/多表查询案例链接】(可cv代码&案例演示)
|
5天前
|
关系型数据库 MySQL Linux
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
【MySQL-10】数据库函数-案例演示【字符串/数值/日期/流程控制函数】(代码演示&可cv代码)
|
5天前
|
存储 关系型数据库 MySQL
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
MySQL 格式化日期函数 DATE_FORMAT(), FROM_UNIXTIME() 和 UNIX_TIMESTAMP() 之间区别
|
5天前
|
关系型数据库 MySQL 数据库
【MySQL】:高效利用MySQL函数实用指南
【MySQL】:高效利用MySQL函数实用指南
12 0
|
5天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在DataWorks中,使用JSON解析函数将MySQL表中的字段解析成多个字段将这些字段写入到ODPS(MaxCompute)中如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
30 3
|
5天前
|
存储 SQL 关系型数据库
MySQL表的增删改查---多表查询和联合查询
MySQL表的增删改查---多表查询和联合查询