logo

SQL | 존재한다

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);>

예: 고객과 주문이라는 두 가지 관계를 생각해 보세요.



쿼리

    SELECT 문과 함께 EXISTS 조건을 사용하여 하나 이상의 주문을 한 고객의 이름과 성을 가져옵니다.
SELECT fname, lname FROM Customers WHERE EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);>
  1. 산출:
  2. EXISTS와 함께 NOT 사용 주문을 하지 않은 고객의 성과 이름을 가져옵니다.
SELECT lname, fname FROM Customers WHERE NOT EXISTS (SELECT * FROM Orders WHERE Customers.customer_id = Orders.c_id);>
  1. 산출:
  2. DELETE 문과 함께 EXISTS 조건을 사용하여 주문 테이블에서 성이 'Mehra'인 모든 고객의 기록을 삭제합니다.
DELETE FROM Orders WHERE EXISTS (SELECT * FROM customers WHERE Customers.customer_id = Orders.c_id AND Customers.lname = 'Mehra');>
SELECT * FROM Orders;>
  1. 산출:
  2. UPDATE 문과 함께 EXISTS 조건 사용하기 customer_id가 401인 고객 테이블에서 고객의 'Kumari'로 lname을 업데이트합니다.
UPDATE Customers SET lname = 'Kumari' WHERE EXISTS (SELECT * FROM Customers WHERE customer_id = 401);>
SELECT * FROM Customers;>
  1. 산출: