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连接查询\等值连接介绍相关推荐

  1. 二、MySQL连接查询学习笔记(多表连接查询:内连接,外连接,交叉连接详解)

    MySQL连接查询(多表连接查询:内连接,外连接,交叉连接详解) 6:多表连接查询 笛卡尔乘积:如果连接条件省略或无效则会出现 解决办法:添加上连接条件 连接查询的分类: 1.按年代分类:1)sql ...

  2. Mysql连接查询主要分为三种:内连接、外连接、交叉连接

    Mysql 连接查询主要分为三种:内连接.外连接.交叉连接 内连接 使用比较运算符(包括=.>.<.<>.>=.<=.!>和!<)进行表间的比较操作,查 ...

  3. Mysql连接查询详解

    前言 记得刚工作几年的时候,就写了一篇关于Mysql连接查询的博客文章,里面简单的认为先对关联表的记录进行笛卡尔积,然后再根据where条件过滤,现在看来有点贻笑大方了.正好最近看了<mysql ...

  4. MySQL连接查询(内连接,外连接,全连接)

    对比分析MySQL连接查询(内连接,外连接,全连接) 内连接 等值连接 非等值连接 ==自连接== 外连接 左外连接 右外连接 全外连接 交叉连接 首先建三个数据表 sql文件下载 https://w ...

  5. MySQL连接查询——MySQL 基础查询你会了吗?

    前言: 由于大一学习数据库不扎实,学到后面有点吃力,所以回过头来认真学习一边,写一些学习总结,提醒自己.也要告诫读者,把基础打扎实.读者觉得有用的话可以收藏点赞哦! 上一篇:MySQL函数查询--My ...

  6. MySQL连接查询之内连接、左连接、右连接、自连接

    目录 一.内连接 1. 连接查询的介绍 2. 内连接查询 二.左连接 1. 左连接查询 三.右连接 1. 右连接查询 四.自连接 1. 自连接查询 一.内连接 1. 连接查询的介绍 连接查询可以实现多 ...

  7. MySQL连接查询-笛卡尔乘积

    MySQL连接查询 前言 一.笛卡尔积 二.SQL92(支持内连接) 三.SQL99(内.外.交叉) 1.内连接 2.外连接 2.1.左右外连接 2.2.全外连接 3.交叉连接(MySQL支持) 总结 ...

  8. MySQL外键关联(一对多)MySQL连接查询

    MySQL外键关联(一对多) 外键说明 什么是外键? 1)表A中有字段(如身份证号)做了主键,表B中也有这个字段(身份证号),这里的身份证号一定来自表A同样字段里的内容,但再B表中身份证号对应id可以 ...

  9. mysql连接查询on_MySql 连接查询中 on 和 where 的区别

    MySql 连接查询时,on 后面跟的是连接条件,再跟 and 关键就可以继续加过滤条件,这样看来是不是可以免用 where 增加过滤条件了呢?开始我也是这样以为的(老师是这么教的,且使用 on 的情 ...

最新文章

  1. docker 无法正常启动 解决方法
  2. Perl Fork的问题
  3. tensorflow学习之常用函数总结:tensorflow.argmax()函数
  4. java中res是什么意思_java中的set是什么意思
  5. 用Excel拟合imu温度趋势线
  6. 计算机主板的电路,电脑主板电路图全).pdf
  7. 电工电子技术知识点总结(基本放大电路)
  8. 笔记本电脑进水怎么办?
  9. 数据分析之RFM——用户模型分析(附案例数据和代码)
  10. 个人ID的搜索引擎结果分析与联想
  11. 必备配色攻略-绿色篇
  12. Moss 2007入门--功能概述
  13. Linux下通过虚拟网卡实现局域网 转发tcp/udp流量
  14. 人类社会——为什么要有秩序
  15. 3KAB,贴片五脚芯片规格书
  16. potato社交苹果版下载-potato土豆社交ios下载
  17. Personalized Cup
  18. Android常用adb命令总结
  19. php常用函数wps,[WPSEC]——WP
  20. 实时监控linux的日志命令

热门文章

  1. tpcc-mysql安装_tpcc-mysql 安装及使用
  2. 【软考总结】——正视自己的不足
  3. python123外汇兑换计算器_python day03习题
  4. manifest.mf 详解
  5. STM32CubeMX+LAN8720+LWIP不带操作系统实现网络通讯
  6. New-delete
  7. 恢复出厂设置的两种方法,亲测可行
  8. ECharts+springboot实现大五人格心理测评数据雷达图展示
  9. ATEC2018 NLP赛题总结
  10. 【技术君啃书之旅】web安全之机器学习入门 第三章笔记