본문 바로가기

SQL/SQL Tutorial

32.SQL EXISTS

32.SQL EXISTS 

EXISTS 연산자는 하위 쿼리에 레코드가 존재하는지 테스트하는 데 사용합니다.

EXISTS 하위 쿼리가 *하나 이상의 레코드를 반환하면 연산자는 TRUE 를 반환합니다.

중요한건 EXISTS 에 명시된 쿼리는 앞 FROM에 명시된 쿼리의 데이터를 사용할 수 있다는것

 

EXISTS 구분

SEELCT column_name(s)

FROM table_name

WHERE EXISTS

(SELECT column_name FROM table_name WHERE condition);

 

데모 데이터베이스

Product 테이블에서 선택한 내용

ProductIDProductNameSupplierIDCategoryIDUnitPrice

1 Chais 1 1 10 boxes x 20 bags 18
2 Chang 1 1 24 - 12 oz bottles 19
3 Aniseed Syrup 1 2 12 - 550 ml bottles 10
4 Chef Anton's Cajun Seasoning 2 2 48 - 6 oz jars 22
5 Chef Anton's Gumbo Mix 2 2 36 boxes 21.3

 

Supplier 테이블에서 선택한 내용

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountry

1 Exotic Liquid Charlotte Cooper 49 Gilbert St. London EC1 4SD UK
2 New Orleans Cajun Delights Shelley Burke P.O. Box 78934 New Orleans 70117 USA
3 Grandma Kelly's Homestead Regina Murphy 707 Oxford Rd. Ann Arbor 48104 USA
4 Tokyo Traders Yoshi Nagase 9-8 Sekimai Musashino-shi Tokyo 100 Japan

 

SQL EXISTS 예제

다음 SQL 문은 TRUE 를 반환하고 제품 가격이 20미만인 공급업체를 나열합니다.

SELECT SupplierName

FROM Suppliers

WHERE EXISTS(

SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Prict < 20

);

 

다음 SQL 문은 TRUE를 반환하고 제품가격이 22인 공급업체를 나열합니다.

SELECT SupplierName

FROM Suppliers

WHERE EXISTS (SELECT ProductName FROM Products WHERE Products.SupplierID = Suppliers.supplierID AND Price = 22);

'SQL > SQL Tutorial' 카테고리의 다른 글

31.SQL HAVING  (0) 2024.07.29
30.SQL GROUP BY  (0) 2024.07.25
29.SQL UNION  (1) 2024.07.24
28.SQL SELF JOIN  (0) 2024.07.18
27.SQL FULL OUTER JOIN  (0) 2024.07.17