📜  如何在子查询中使用 IN 运算符?

📅  最后修改于: 2022-05-13 01:55:31.531000             🧑  作者: Mango

如何在子查询中使用 IN 运算符?

SQL 中的 IN 运算符允许在 WHERE 子句中指定多个值,它可以帮助您轻松测试表达式是否与值列表中的任何值匹配。 IN 运算符的使用减少了在 SELECT、INSERT、UPDATE 和 DELETE 等语句中对多个 OR 条件的需要。  

子查询:

一个或多个 SELECT 语句与另一个 SELECT 语句的 WHERE 子句嵌套的 SQL 查询称为子查询。此类查询的第一个语句称为外部查询,而内部查询称为内部查询。在执行此类查询时,将首先评估内部查询,外部查询接收内部查询的值。

现在,我们将为我们的数据库创建一个架构,并将其命名为 geeks for geeks。之后,我们将在其中创建一个名为 geeks_data 的表,并在子查询中使用 IN运算符。

第一步:创建数据库

为了创建数据库,我们需要使用 CREATE运算符。

询问 :

CREATE DATABASE geeksforgeeks;

输出:

图:创建数据库

第二步:在数据库中创建一个表

在这一步中,我们将在 geeks for geeks 数据库中创建两个表geeks_datageek_dept

  • 创建 geeks_data 表:

询问 :

CREATE TABLE geeks_data(id INT, 
                        first_name VARCHAR(255),
                        last_name VARCHAR(255),
                        dept  VARCHAR(255),
                        PRIMARY KEY(id));

图:创建表geeks_data

  • 创建 geeks_dept 表:

询问:

CREATE TABLE geeks_dept(id INT, 
                        dept_name VARCHAR(255),
                        PRIMARY KEY(id));

图:创建表geeks_dept

第 3 步:向表中插入数据

为了在数据库中插入数据,我们需要使用 INSERT运算符。首先,我们将它插入到 geeks_data 表中。

询问:

INSERT INTO geeks_data VALUES 
(1, 'Chandan', 'Mishra', 'Mechnical'),
(2, 'Abhinav', 'Singh', 'Electronics'),
(3, 'Utkarsh', 'Raghuvanshi', 'Computer Science');

图:在geeks_data表中插入值

输出:

图:geeks_data

现在我们将为表 geeks_dept 插入数据。

INSERT INTO geeks_dept VALUES (1, 'Computer Science'),
                              (2, 'Electronics'),
                              (3, 'Computer Science'),
                              (4, 'Mechanical');

图:向geeks_dept插入数据

输出:

图:geeks_dept  

步骤 4:在子查询中执行 IN 运算符

在这一步中,我们将尝试从geeks_data表中找出geek的数据,这些geeks_data是计算机科学系的,在geeks_dept表的帮助下使用子查询。

询问:

SELECT first_name, last_name FROM geeks_data WHERE dept IN 
                    (SELECT dept_name FROM geeks_dept WHERE id = 1);

我们将获得来自计算机科学系的极客的 first_name 和 last_name。

输出:

图:子查询中 IN运算符的结果