Sql 简明教程
SQL - INTERSECT
在数学集合论中,两个集合的交集是这两个集合共有的一组值。
在实际场景中,数据库中将有大量包含信息的数据表。用户可能觉得很难从各种数据表中收集常见的信息。因此我们使用INTERSECT运算符来实现该目标。它有助于从各种数据表中检索常见数据。
The SQL INTERSECT Operator
SQL中的 INTERSECT 运算符用于检索在两个或两个以上数据表的记录集中相同/常见的数据。
让我们考虑下面的数据表作为示例,以更好地理解−
如果对上面描述的两个数据表使用 INTERSECT 运算符执行交集运算,它会返回公共记录 Dev 和 Aarohi 。
Syntax
以下是Microsoft SQL Server中INTERSECT运算符的SQL语法−
SELECT column1, column2,..., columnN
FROM table1, table2,..., tableN
INTERSECT
SELECT column1, column2,..., columnN
FROM table1, table2,..., tableN
Example
首先,让我们使用以下查询创建一个名为 STUDENTS 的数据表−
CREATE TABLE STUDENTS(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
SUBJECT VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
HOBBY VARCHAR(20) NOT NULL,
PRIMARY KEY(ID)
);
使用以下查询将一些值插入到表中:
INSERT INTO STUDENTS VALUES
(1, 'Naina', 'Maths', 24, 'Cricket'),
(2, 'Varun', 'Physics', 26, 'Football'),
(3, 'Dev', 'Maths', 23, 'Cricket'),
(4, 'Priya', 'Physics', 25, 'Cricket'),
(5, 'Aditya', 'Chemistry', 21, 'Cricket'),
(6, 'Kalyan', 'Maths', 30, 'Football');
所生成的表如下所示:
ID |
NAME |
SUBJECT |
AGE |
HOBBY |
1 |
Naina |
Mathematics |
24 |
Cricket |
2 |
Varun |
Physics |
26 |
Football |
3 |
Dev |
Mathematics |
23 |
Cricket |
4 |
Priya |
Physics |
25 |
Cricket |
5 |
Adithya |
Chemistry |
21 |
Cricket |
6 |
Kalyan |
Mathematics |
30 |
Football |
现在,让我们使用以下查询创建一个名为 STUDENTS_HOBBY 的另一个表:
CREATE TABLE STUDENTS_HOBBY(
ID INT NOT NULL,
NAME VARCHAR(20) NOT NULL,
HOBBY VARCHAR(20) NOT NULL,
AGE INT NOT NULL,
PRIMARY KEY(ID)
);
一旦创建了该表,让我们使用以下查询向该表中插入一些值:
INSERT INTO STUDENTS_HOBBY VALUES
(1, 'Vijay', 'Cricket', 18),
(2, 'Varun', 'Football', 26),
(3, 'Surya', 'Cricket', 19),
(4, 'Karthik', 'Cricket', 25),
(5, 'Sunny', 'Football', 26),
(6, 'Dev', 'Cricket', 23);
创建的表如下所示:
ID |
NAME |
HOBBY |
AGE |
1 |
Vijay |
Cricket |
18 |
2 |
Varun |
Football |
26 |
3 |
Surya |
Cricket |
19 |
4 |
Karthik |
Cricket |
25 |
5 |
Sunny |
Football |
26 |
6 |
Dev |
Cricket |
23 |
现在,我们使用以下查询从这两个表中检索通用记录:
SELECT NAME, AGE, HOBBY FROM STUDENTS_HOBBY
INTERSECT
SELECT NAME, AGE, HOBBY FROM STUDENTS;
INTERSECT with BETWEEN Operator
我们可以在 SQL 中将 INTERSECT 运算符与 BETWEEN 运算符一起使用,以查找落在指定范围内的记录。
INTERSECT with IN Operator
我们还可以在 SQL 中将 INTERSECT 运算符与 IN 运算符一起使用,以查找存在于指定值列表中的通用记录。IN 运算符用于根据指定值列表过滤结果集。