📜  SQL |存在

📅  最后修改于: 2021-09-10 01:52:20             🧑  作者: Mango

SQL 中的 EXISTS 条件用于检查相关嵌套查询的结果是否为空(不包含元组)。 EXISTS 的结果是布尔值 True 或 False。它可以用在 SELECT、UPDATE、INSERT 或 DELETE 语句中。

句法:

SELECT column_name(s) 
FROM table_name
WHERE EXISTS 
  (SELECT column_name(s) 
   FROM table_name
   WHERE condition);

例子:
考虑以下两个关系“客户”和“订单”。

查询

  1. 将 EXISTS 条件与 SELECT 语句一起使用
    获取至少下过一个订单的客户的名字和姓氏。

    SELECT fname, lname 
    FROM Customers 
    WHERE EXISTS (SELECT * 
                  FROM Orders 
                  WHERE Customers.customer_id = Orders.c_id);

    输出:

  2. 将 NOT 与 EXISTS 一起使用
    获取未下任何订单的客户的姓氏和名字。
    SELECT lname, fname
    FROM Customer
    WHERE NOT EXISTS (SELECT * 
                      FROM Orders 
                      WHERE Customers.customer_id = Orders.c_id);

    输出:

  3. 在 DELETE 语句中使用 EXISTS 条件
    从订单表中删除姓氏为“Mehra”的所有客户的记录。
    DELETE 
    FROM Orders
    WHERE EXISTS (SELECT *
                  FROM customers
                  WHERE Customers.customer_id = Orders.cid
                  AND Customers.lname = 'Mehra');
    SELECT * FROM Orders;

    输出:

  4. 将 EXISTS 条件与 UPDATE 语句一起使用
    将客户表中 customer_id 为 401 的客户的 lname 更新为“Kumari”。
    UPDATE Customers
    SET lname = 'Kumari'
    WHERE EXISTS (SELECT *
                  FROM Customers
                  WHERE customer_id = 401);
    SELECT * FROM Customers;

    输出: