1.准备CREATE DATABASE mahaiwuji;
USE mahaiwuji;
CREATE TABLE grade(
id INT(4) PRIMARY KEY,
name VARCHAR(36)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO grade VALUES (1,一班);
INSERT INTO grade VALUES (2,二班);
INSERT INTO grade VALUES (3,三班);
INSERT INTO grade VALUES (4,四班);
CREATE TABLE student(
id INT(4) PRIMARY KEY,
name VARCHAR(36),
gidINT(4)
) ENGINE = INNODB DEFAULT CHARSET = utf8;
INSERT INTO student VALUES (1,a1,1);
INSERT INTO student VALUES (2,a2,1);
INSERT INTO student VALUES (3,a3,2);INSERT INTO student VALUES (4,a4,2);
INSERT INTO student VALUES (5,a5,3);
INSERT INTO student VALUES (6,a6,3);
INSERT INTO student VALUES (7,a7,3);
INSERT INTO student VALUES (8,a8,3);
INSERT INTO student VALUES (9,a9,5);
2.左外连接
左外连接是外连接查找中的一种,亦能够将其叫作为左连接。
它用于返回连接关键字(LEFT JOIN)左表中所有的记录,以及右表中符合连接要求的记录。
当左表的某行记录在右表中无匹配的记录时,右表中关联的记录将设为空值。
语法 SELECT 查找字段 FROM 表1 LEFT [OUTER] JOIN 表2 ON 匹配要求;关键字“LEFT [OUTER] JOIN”左边的表(表1)被叫作为左表,亦可叫作为主表。
关键字右边的表(表2)被叫作为右表,亦可叫作为从表。
OUTER在查找时能够省略。 SELECT * FROM grade LEFT JOIN student ON grade.id=student.gid;
3.右外连接
右外连接亦是外连接查找中的一种,能够将其叫作为右连接。
它用于返回连接关键字(RIGHT JOIN)右表(主表)中所有的记录,以及左表(从表)中符合连接要求的记录。
当右表的某行记录在左表中无匹配的记录时,左表中关联的记录将设为空值。
语法 SELECT 查找字段 FROM 表1 RIGHT [OUTER] JOIN 表2 ON 匹配要求;SELECT * FROM grade RIGHT JOIN student ON grade.id=student.gid;
4.总结外连接是最常用的一种查找数据的方式,分为左外连接(LEFT JOIN)和右外连接(RIGHT JOIN)。外连接与内连接的区别是,内连接只能获取符合连接要求的记录,而外连接不仅能够获取符合连接要求的记录,还能够保存主表与从表不可匹配的记录。右连接查找正好与左连接相反。因此呢,在应用外连接时仅调节关键字(LEFT JOIN或RIGHT JOIN)和主从表的位置,就可实现左连接和右连接的互换运用。
|