DQL语言之连接查询(mysql)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: DQL语言之连接查询(mysql)

sql92语法

含义:又称多表查询,当查询的字段来自于多个表时,就会用到连接查询
笛卡尔乘积现象:表1 有m行,表2 有n行,结果是m*n行
分类:
  按年代分类
    sql92标准:仅支持内连接
    sql99标准【推荐】:支持内连接+外连接(除全外连接)+交叉连接
  按功能分类
    内连接:
      等值连接
      非等值连接
      自连接
    外连接:
      左外连接
      右外连接
      全外连接
    交叉连接
#sql92标准
#一、等值连接
#1、
a)多表等值连接的结果为多表的交集部分
b)n表连接,至少需要n-1个连接条件
c)多表的顺序没有要求
d)一般需要为表起别名
e)可以搭配前面介绍的所有子句使用,比如排序、分组、筛选
WHERE
#2、为表起别名
1)提高语句的简洁度
2)区分多个重名的字段
注意:如果为表起了别名,则查询的字段就不能使用原来的表名去限定
#3、两个表的顺序可以调换
#4、可以加筛选 and
#5、可以加分组查询
#6、可以加排序
#7、可以实现三表连接
#二、非等值连接
 
#三、自连接

sql99语法

语法: 
  select 查询列表
  from 表1 别名 【连接类型】
  join 表2 别名 
  on 连接条件
  【where 筛选条件】
  【group by 分组】
  【having 筛选条件】
  【order by 排序列表】
  
分类:
内连接:inner
外连接:
  左外:left【outer】
  右外:right【outer】
  全外:full【outer】
交叉连接: cross
#一>内连接
语法: 
  select 查询列表
  from 表1 别名
  inner join 表2 别名
  on 连接条件;
分类:
  等值
  非等值
  自连接
  
等值连接和自连接的区别:
  1)等值连接必须要有等值的条件,两个关系可以没有相同的属性列(值一样就可以)
  2)自然连接必须要有相同的属性列(名字和值都要一样)才能进行,且等值连接之后要去除相同的属性列
特点:
  a)可以添加排序、分组、筛选
  b)inner可以省略
  c)筛选条件放在 where 后面,连接条件放在 on 后面,提高分离性,便于阅读
  d)inner join 连接和sql92语法中的等值连接效果是一样的
#二>外连接
应用场景:用于查询一个表中有,另一个表中没有的记录
特点: 
  1)外连接的查询结果为主表中的所有记录
    如果从表中有和它匹配的,则显示匹配的值
    如果从表中没有和它匹配的,则显示null
    外连接查询结果 = 内连接结果 + 主表中有而从表中没有的记录
  2)左外连接, left join左边的是主表
     右外连接, right join右边的是主表
  3)左外和右外交换两个表的顺序,可以实现同样的效果
  4)全外连接 = 内连接 + 表1中有但表2中没有的 + 表2中有但表1中没有的
#三>交叉连接(笛卡尔乘积)
#sql92  sql99
功能: sql99 支持的较多
可读性: sql99 实现连接条件和筛选条件的分离,可读性较高

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
24天前
|
SQL 缓存 监控
MySQL缓存机制:查询缓存与缓冲池优化
MySQL缓存机制是提升数据库性能的关键。本文深入解析了MySQL的缓存体系,包括已弃用的查询缓存和核心的InnoDB缓冲池,帮助理解缓存优化原理。通过合理配置,可显著提升数据库性能,甚至达到10倍以上的效果。
|
6天前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
储存过程(Stored Procedures) 和 函数(Functions) : 储存过程和函数允许用户编写 SQL 脚本执行复杂任务.
88 14
|
8天前
|
SQL 关系型数据库 MySQL
MySQL的查询操作语法要点
以上概述了MySQL 中常见且重要 的几种 SQL 查询及其相关概念 这些知识点对任何希望有效利用 MySQL 进行数据库管理工作者都至关重要
52 15
|
25天前
|
SQL 监控 关系型数据库
SQL优化技巧:让MySQL查询快人一步
本文深入解析了MySQL查询优化的核心技巧,涵盖索引设计、查询重写、分页优化、批量操作、数据类型优化及性能监控等方面,帮助开发者显著提升数据库性能,解决慢查询问题,适用于高并发与大数据场景。
|
18天前
|
SQL Java 关系型数据库
Java连接MySQL数据库环境设置指南
请注意,在实际部署时应该避免将敏感信息(如用户名和密码)硬编码在源码文件里面;应该使用配置文件或者环境变量等更为安全可靠地方式管理这些信息。此外,在处理大量数据时考虑使用PreparedStatement而不是Statement可以提高性能并防止SQL注入攻击;同时也要注意正确处理异常情况,并且确保所有打开过得资源都被正确关闭释放掉以防止内存泄漏等问题发生。
61 13
|
21天前
|
SQL 关系型数据库 MySQL
MySQL数据库连接过多(Too many connections)错误处理策略
综上所述,“Too many connections”错误处理策略涉及从具体参数配置到代码层面再到系统与架构设计全方位考量与改进。每项措施都需根据具体环境进行定制化调整,并且在执行任何变更前建议先行测试评估可能带来影响。
342 11
|
10天前
|
SQL 关系型数据库 MySQL
排除通过IP访问MySQL时出现的连接错误问题
以上步骤涵盖了大多数遇到远程连接 MySQL 数据库时出现故障情形下所需采取措施,在执行每个步骤后都应该重新尝试建立链接以验证是否已经解决问题,在多数情形下按照以上顺序执行将能够有效地排除并修复大多数基本链接相关故障。
87 3
|
24天前
|
SQL 监控 关系型数据库
查寻MySQL或SQL Server的连接数,并配置超时时间和最大连接量
以上步骤提供了直观、实用且易于理解且执行的指导方针来监管和优化数据库服务器配置。务必记得,在做任何重要变更前备份相关配置文件,并确保理解每个参数对系统性能可能产生影响后再做出调节。
163 11
|
25天前
|
安全 关系型数据库 MySQL
MySQL安全最佳实践:保护你的数据库
本文深入探讨了MySQL数据库的安全防护体系,涵盖认证安全、访问控制、网络安全、数据加密、审计监控、备份恢复、操作系统安全、应急响应等多个方面。通过具体配置示例,为企业提供了一套全面的安全实践方案,帮助强化数据库安全,防止数据泄露和未授权访问,保障企业数据资产安全。
|
10天前
|
缓存 关系型数据库 BI
使用MYSQL Report分析数据库性能(下)
使用MYSQL Report分析数据库性能
44 3

推荐镜像

更多