[SQL] IN 연산자
오늘은 SQL의 IN 연산자에 대해 알아보겠습니다.
IN 연산자는 WHERE 조건절에 여러 개의 구체적인 값을 대입할 수 있도록합니다.
IN 연산자
[예시 문법]
SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);
Country 컬럼의 값이 'Germany' 혹은 'France' 혹은 'UK'인 레코드만 검색합니다.
IN연산자는 여러개의 OR 연산자를 간결하고 빠르게 사용하는 방법이라고 생각할 수 있습니다.
따라서 아래 Query 문을 IN 연산자 대신 OR 연산자를 사용하여 표현할 수도 있습니다.
IN 연산자 표현
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
OR 연산자 표현
SELECT * FROM Customers
WHERE Country = 'Germany' OR Country = 'France' OR Country = 'UK';
NOT IN 연산자
IN연산자 앞에 NOT연산자를 붙여 NOT IN 연산자 사용도 가능합니다.
[예시 문법]
SELECT column_name(s)
FROM table_name
WHERE column_name NOT IN (value1, value2, ...);
Country 컬럼의 값이 'Germany' 와 'France' 와 'UK'가 아닌 레코드만 검색합니다.
IN연산자와 달리 NOT IN 연산자는 해당 값들이 포함된 모든 값을 배제하기 때문에 OR가 아닌 AND로 묶인 조건절로 표현할 수 있습니다.
NOT IN 연산자 표현
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
AND 연산자 표현
SELECT * FROM Customers
WHERE Country != 'Germany' AND Country != 'France' AND Country != 'UK';
쿼리안의 쿼리
IN 연산자의 괄호 안에는 값 뿐 아니라 Query문 그자체도 들어갈 수 있습니다.
이를 응용하면 다양한 쿼리문 작성이 가능합니다.
SELECT column_name(s)
FROM table_name
WHERE column_name IN (SELECT column_name(s) FROM table_name);
Suppliers 테이블에 있는 Country만 검색한 후 그 Country에 해당하는 레코드를 Customers 테이블에서 검색합니다.
이상입니다.
'IT&전산' 카테고리의 다른 글
컴퓨터 프로그래밍과 하드웨어 (12) | 2023.03.24 |
---|---|
윈도우10 시작 프로그램 관리 방법 및 단축키 (1) | 2022.12.28 |
[EXCEL] 매우 유용하지만 잘 모르는 필터 설정 및 조작 단축키 (0) | 2022.12.20 |
[SQL] ORDER BY 키워드 (1) | 2022.12.17 |
[SQL] AND / OR / NOT 연산자 문법 및 사용법 (0) | 2022.12.17 |