前言

      学习是个反复的过程,学习是一个从不会到不会的过程。今天有机会再一次学习一下mySQL的连接方式,包括内连接、外连接、全连接,外连接又包括左外连接和右外连接。在此还需声明一下,学习过程中会发现数据库的很多知识都很类似,例如sql和mysql或者是oracel数据库。不过,在一些地方还是有自己的特性的,所以针对不同的数据库遇到的问题,首先可以先从自己数据库着手思考,如果两个数据库得到的结果不同,就要将重点放到真正使用的数据库上。总结一下意思是,运用已有的知识解决现在的问题,已有知识解决不了的,则要研究已知和未知的不同点,逐步构建知识网。下面,举个栗子,用栗子来理解概念,创建两张表item和comment:

            

MySQL 外部表 mysql内外链接_数据库

             

MySQL 外部表 mysql内外链接_MySQL 内连接 外连接_02

内连接(inner join)

     内连接查询出与连接条件匹配的数据行,使用比较运算符比较被连接列的列值,内连接分为三种:等值连接、不等连接、自然连接。

1.等值连接

    在连接条件中使用等于号(=)运算符比较被连接的列值,返回符合条件的内容。

1. -- --等值连接  
2. SELECT * FROM item as A INNER JOIN comment as B on A.quantity=B.quantity;

                            

MySQL 外部表 mysql内外链接_数据库_03


2.不等连接

    在连接条件中使用不等号,如>、<、<>等运算符比较被连接的列值,返回符合条件的内容。

1. -- --不等值连接  
2. SELECT * FROM item as A INNER JOIN comment as B on A.quantity<>B.quantity;

                            

MySQL 外部表 mysql内外链接_数据库_04



3.自然连接

    自然连接是一种特殊的等值连接,无需指定连接列。

1. -- 自然连接  
2. SELECT * FROM item NATURAL JOIN comment;

                                 

MySQL 外部表 mysql内外链接_MySQL 内连接 外连接_05


外连接

1.左外连接

     返回左表中的所有行,如果右表中没有值则补为NULL。

1. -- 左外连接  
2. select * from item as A LEFT JOIN comment as B on A.quantity = B.quantity;

                           

MySQL 外部表 mysql内外链接_数据库_06

2.右外连接

     返回右表中的所有行,如果左表中没有值则补为NULL。

1. -- 右外连接  
2. select * from item as A RIGHT JOIN comment as B on A.quantity = B.quantity;

                            

MySQL 外部表 mysql内外链接_数据库_07

全连接

1. -- 全连接  
2. select * from item FULL JOIN comment;

                                      

MySQL 外部表 mysql内外链接_等值连接_08



结语

      1.需求不同使用方法就不同

      2.数据库操作的漂亮也是一门艺术

      3.需要学习的还有很多,努力吧!