1. 引言
MSSQL是一个常用的关系型数据库管理系统。在数据分析过程中,经常需要将多个表连接起来进行查询和分析。本文将介绍MSSQL连接表的方法和相关操作。
2. 表的连接方式
2.1 内连接
内连接是连接符号为“JOIN
”的连接方式。它的作用是返回两个表中共有的部分。在内连接时,还可以使用“ON
”关键字来指定连接条件。
SELECT 表1.列1, 表2.列2
FROM 表1
INNER JOIN 表2
ON 表1.列 = 表2.列;
这里用到了“SELECT
”关键字,表示查询某些列。其中,“表1.列1”和“表2.列2”是要查询的列名。在“FROM
”后面指定要查询的表,这里分别为“表1”和“表2”。在“ON
”后面指定连接条件,这里为“表1.列 = 表2.列”,表示连接两个表的共同列。
2.2 左连接
左连接是连接符号为“LEFT JOIN
”的连接方式。它的作用是返回左侧表所有的行和右侧表符合条件的行,左侧表没有匹配行的列的值为NULL。
SELECT 表1.列1, 表2.列2
FROM 表1
LEFT JOIN 表2
ON 表1.列 = 表2.列;
这里的“LEFT JOIN
”表示左连接。如果需要查询哪些行不在右侧表中,可以在查询的条件中使用“WHERE
”。
2.3 右连接
右连接是连接符号为“RIGHT JOIN
”的连接方式。它的作用与左连接类似,返回右侧表所有的行和左侧表符合条件的行,右侧表没有匹配行的列的值为NULL。
SELECT 表1.列1, 表2.列2
FROM 表1
RIGHT JOIN 表2
ON 表1.列 = 表2.列;
这里的“RIGHT JOIN
”表示右连接。如果需要查询哪些行不在左侧表中,可以在查询的条件中使用“WHERE
”。
3. 操作实例
3.1 创建表格
先创建两个简单的表,包含学生编号、姓名和成绩信息,每个表中包含4个学生信息(共有2个重复项)。
CREATE TABLE Table1
(ID INT PRIMARY KEY,
Name VARCHAR(50),
Grade INT);
CREATE TABLE Table2
(ID INT PRIMARY KEY,
Name VARCHAR(50),
Grade INT);
INSERT INTO Table1(ID, Name, Grade)
VALUES (1, 'Tom', 90),
(2, 'Jerry', 80),
(3, 'Lucy', 85),
(4, 'Mary', 70),
(2, 'Jerry', 80),
(3, 'Lucy', 85);
INSERT INTO Table2(ID, Name, Grade)
VALUES (1, 'Tom', 90),
(2, 'Jerry', 80),
(5, 'Ella', 83),
(6, 'Peter', 95),
(2, 'Jerry', 80),
(4, 'Mary', 70);
3.2 内连接
以内连接为例,先查询出共有的学生编号和姓名,以及他们在第一次考试和第二次考试(两个表)中的成绩。
SELECT Table1.ID, Table1.Name, Table1.Grade, Table2.Grade
FROM Table1
INNER JOIN Table2
ON Table1.ID = Table2.ID
AND Table1.Name = Table2.Name;
查询结果如下:
可以看到,共有4个学生编号和姓名相同,他们在两个表中的成绩也都被查询出来。
3.3 左连接
以左连接为例,查询出第一个表中的所有学生编号和姓名,以及他们在第二个表中的成绩。如果第二个表中没有对应的成绩,则显示为NULL。
SELECT Table1.ID, Table1.Name, Table2.Grade
FROM Table1
LEFT JOIN Table2
ON Table1.ID = Table2.ID
AND Table1.Name = Table2.Name;
查询结果如下:
可以看到,所有第一个表中的学生在第二个表中的成绩都被查询出来了,并且表格中当第一个表中的学生在第二个表中没有记录时,对应的成绩为NULL。
3.4 右连接
以右连接为例,查询出第二个表中的所有学生编号和姓名,以及他们在第一个表中的成绩。如果第一个表中没有对应的成绩,则显示为NULL。
SELECT Table1.ID, Table1.Name, Table2.Grade
FROM Table1
RIGHT JOIN Table2
ON Table1.ID = Table2.ID
AND Table1.Name = Table2.Name;
查询结果如下:
可以看到,所有第二个表中的学生在第一个表中的成绩都被查询出来了,并且表格中当第二个表中的学生在第一个表中没有记录时,对应的成绩为NULL。
4. 总结
本文介绍了MSSQL中三种不同连接方式,包括内连接、左连接和右连接。其中内连接返回共有的部分,左连接返回左侧表所有的行和右侧表符合条件的行,右连接返回右侧表所有的行和左侧表符合条件的行。这些连接方式是在数据分析和处理中非常重要的操作。