MySQL连接查询\等值连接介绍
MySQL连接查询\等值连接介绍
连接查询
含义:又称多表查询,当查询的字段来自于多个表时,就会使用到连接查询
笛卡尔乘积现象:表一有m行,表二有n行,结果=m*n行
发生原因:没有有效的连接条件
如何避免:添加有效的连接条件
分类:按年代分类:1、sql192标准:仅仅支持内连接
2、sql199标准(推荐):支持内连接+外连接(左外和右外)+交叉连接
按功能分类:1、内连接:等值连接、非等值连接、自连接
2、外连接:左外连接、右外连接、全外连接
3、交叉连接
等值连接介绍
语法:SELECT 字段名1,字段名2 FROM 表名1,表名2 WHERE 表名1.字段名3=表名2.字段名4;
一、sql92标准:
1、等值连接:
i、多表等值连接结果为多表的交集部分
ii、n表连接,至少需要n-1个连接条件
iii、多表的顺序没有要求
iv、一般需要为表取别名
v、可以搭配前面介绍的所有子句使用,比如:筛选、分组、排序
2、非等值连接:
使用BETWEEN AND模糊条件运算符放在WHERE后
3、自连接:
查询同一张表中两次使用同一字段名
SELECT 别名1.字段名1,别名1.字段名2,别名2.字段名1,别名2.字段名2
FROM 表名 别名1,表名 别名2
WHERE 别名1.字段名1=别名2.字段名1;
sql99标准
语法:SELECT 查询列表
FROM 表1 别名[连接类型]
JOIN 表1 别名 ON 连接条件
[WHERE 筛选条件]
[GROUP BY 分组]
[HAVING 筛选条件]
[ORDER BY 排序列表];
分类:内连接:INNER
外连接:左外:LEFT [OUTER]
右外:RIGHT [OUTER]
全外:FULL[OUTER]
交叉连接:CROSS
(一)内连接:
语法:SELECT 查询列表
FROM 表1 别名1
INNER JOIN 表2 别名2 ON 连接条件
分类:i、添加排序、分组、筛选条件
ii、INNER可以省略
iii、筛选条件放在WHERE后面,连接条件放在ON后面,提高分离性,便于阅读
iv、INNER JOIN连接和sql92语法中的等值连接效果时一样的,都是查询多表交际。
(二)外连接:
应用场景:用于查询一个表中有,另一个表中没有的记录
特点:i、外连接的查询结果为主表中的所有记录
如果从表中有和它匹配的记录,则显示匹配的值;
如果从表中没有和它匹配的记录,则显示NULL值。
ii、左外连接,LEFT OUTER JOIN左边的是主表
右外连接:RIGHT OUTER JOIN右边的是主表
iii、左外和右外交换两个表的顺序,可以实现同样的效果
iv、全外连接=内连接的结果+表1中有但表2中没有的+表2中有但表1中没有的
(三)交叉连接
(四)sql92和sql99 PK:
功能:sql99支持的较多
可读性:sql99实现连接条件和筛选条件的分离,可读性较高
MySQL连接查询\等值连接介绍相关推荐
- 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)
MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...
- Mysql连接查询主要分为三种:内连接、外连接、交叉连接
Mysql 连接查询主要分为三种:内连接.外连接.交叉连接 内连接 使用比较运算符(包括=.>.<.<>.>=.<=.!>和!<)进行表间的比较操作,查 ...
- Mysql连接查询详解
前言 记得刚工作几年的时候,就写了一篇关于Mysql连接查询的博客文章,里面简单的认为先对关联表的记录进行笛卡尔积,然后再根据where条件过滤,现在看来有点贻笑大方了.正好最近看了<mysql ...
- MySQL连接查询(内连接,外连接,全连接)
对比分析MySQL连接查询(内连接,外连接,全连接) 内连接 等值连接 非等值连接 ==自连接== 外连接 左外连接 右外连接 全外连接 交叉连接 首先建三个数据表 sql文件下载 https://w ...
- MySQL连接查询——MySQL 基础查询你会了吗?
前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己.也要告诫读者,把基础打扎实.读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询--My ...
- MySQL连接查询之内连接、左连接、右连接、自连接
目录 一.内连接 1. 连接查询的介绍 2. 内连接查询 二.左连接 1. 左连接查询 三.右连接 1. 右连接查询 四.自连接 1. 自连接查询 一.内连接 1. 连接查询的介绍 连接查询可以实现多 ...
- MySQL连接查询-笛卡尔乘积
MySQL连接查询 前言 一.笛卡尔积 二.SQL92(支持内连接) 三.SQL99(内.外.交叉) 1.内连接 2.外连接 2.1.左右外连接 2.2.全外连接 3.交叉连接(MySQL支持) 总结 ...
- MySQL外键关联(一对多)MySQL连接查询
MySQL外键关联(一对多) 外键说明 什么是外键? 1)表A中有字段(如身份证号)做了主键,表B中也有这个字段(身份证号),这里的身份证号一定来自表A同样字段里的内容,但再B表中身份证号对应id可以 ...
- mysql连接查询on_MySql 连接查询中 on 和 where 的区别
MySql 连接查询时,on 后面跟的是连接条件,再跟 and 关键就可以继续加过滤条件,这样看来是不是可以免用 where 增加过滤条件了呢?开始我也是这样以为的(老师是这么教的,且使用 on 的情 ...
最新文章
- docker 无法正常启动 解决方法
- Perl Fork的问题
- tensorflow学习之常用函数总结:tensorflow.argmax()函数
- java中res是什么意思_java中的set是什么意思
- 用Excel拟合imu温度趋势线
- 计算机主板的电路,电脑主板电路图全).pdf
- 电工电子技术知识点总结(基本放大电路)
- 笔记本电脑进水怎么办?
- 数据分析之RFM——用户模型分析(附案例数据和代码)
- 个人ID的搜索引擎结果分析与联想
- 必备配色攻略-绿色篇
- Moss 2007入门--功能概述
- Linux下通过虚拟网卡实现局域网 转发tcp/udp流量
- 人类社会——为什么要有秩序
- 3KAB,贴片五脚芯片规格书
- potato社交苹果版下载-potato土豆社交ios下载
- Personalized Cup
- Android常用adb命令总结
- php常用函数wps,[WPSEC]——WP
- 实时监控linux的日志命令