SQL IN - SQL NOT IN
SQL IN 연산자는 WHERE 절의 일부로 여러 값을 제공하기 위해 WHERE 절과 함께 사용됩니다.
1. SQL 입력
SQL IN 연산자는 동일한 열에 대해 여러 OR 연산자를 사용하는 것과 거의 같습니다. SQL IN 연산자에 대해 자세히 알아보겠습니다. IN 연산자를 정의하는 방법에는 두 가지가 있습니다. 아래에서 두 가지 방법에 대해 자세히 설명합니다.
1.1) IN의 일부인 여러 값
통사론:
SELECT Column(s) FROM table_name WHERE column IN (value1, value2, ... valueN);
위에서 언급한 구문을 사용하여 IN 연산자의 일부로 여러 값을 정의할 수 있습니다. 몇 가지 예제를 통해 위에서 언급한 구문을 보다 자세히 이해할 것입니다. 예제 목적으로 다음 Student 테이블을 살펴보겠습니다.
RollNo | StudentName | StudentGender | StudentAge | StudentPercent |
---|---|---|---|---|
1 | George | M | 14 | 85 |
2 | Monica | F | 12 | 88 |
3 | Jessica | F | 13 | 84 |
4 | Tom | M | 11 | 78 |
시나리오: 나이가 12세 또는 13세인 학생의 비율을 가져옵니다. 쿼리:
SELECT StudentPercent FROM Student WHERE StudentAge IN ('12', '13');
산출:
StudentPercent |
---|
88 |
84 |
1.2) IN의 일부로 쿼리 선택
통사론:
SELECT Column(s) FROM table_name WHERE column IN (SELECT Statement);
위에서 언급한 구문을 사용하여 IN 연산자의 일부로 값을 제공하기 위해 SQL SELECT 문을 사용할 수 있습니다. 몇 가지 예제를 통해 위에서 언급한 구문을 보다 자세히 이해할 것입니다. 예제 목적으로 다음 제품 및 공급업체 테이블을 살펴보겠습니다. 제품 테이블
ProductId | ProductName | ProductPrice |
---|---|---|
1 | Cookie | 10 |
2 | Cheese | 11 |
3 | Chocolate | 15 |
4 | Jam | 20 |
공급자 테이블
ProductId | ProductName | SupplierName |
---|---|---|
1 | Cookie | ABC |
2 | Cheese | XYZ |
3 | Chocolate | ABC |
4 | Jam | XDE |
시나리오: 공급자가 ABC인 제품의 가격을 가져옵니다. 질문:
SELECT ProductPrice FROM Product WHERE ProductName IN
(SELECT ProductName FROM Supplier WHERE SupplierName = "ABC");
산출:
ProductPrice |
---|
10 |
15 |
1.3) SQL 중첩 IN
다른 IN 연산자 내부에서 IN을 사용할 수도 있습니다. 더 잘 이해하기 위해 아래 언급된 시나리오를 고려해 보겠습니다. 시나리오: 공급자가 ABC 및 XDE인 제품의 가격을 가져옵니다. 질문:
SELECT ProductPrice FROM Product WHERE ProductName IN
(SELECT ProductName FROM Supplier WHERE SupplierName IN ( "ABC", "XDE" ));
산출
ProductPrice |
---|
10 |
15 |
20 |
2. SQL NOT IN
SQL NOT IN 연산자는 IN 연산자의 일부로 언급된 값이 충족되지 않는 경우 결과를 필터링하는 데 사용됩니다. SQL NOT IN 연산자에 대해 자세히 알아보겠습니다. 통사론:
SELECT Column(s) FROM table_name WHERE Column NOT IN (value1, value2... valueN);
위의 구문에서 IN 절의 일부로 만족되지 않는 값은 결과로 간주됩니다. 예제 목적으로 이전에 정의된 Student 테이블을 고려해 보겠습니다. 시나리오: 나이가 12세 또는 13세가 아닌 학생의 비율을 가져옵니다. 쿼리
SELECT StudentPercent FROM Student WHERE StudentAge NOT IN ('12', '13');
산출:
StudentPercent |
---|
85 |
78 |
2.1) SQL NOT IN의 일부로 쿼리 선택
통사론:
SELECT Column(s) FROM table_name WHERE column NOT IN (SELECT Statement);
위에서 언급한 구문을 사용하여 IN 연산자의 일부로 값을 제공하기 위해 SELECT 문을 사용할 수 있습니다. 몇 가지 예제를 통해 위에서 언급한 구문을 보다 자세히 이해할 것입니다. 예제 목적으로 이전에 정의된 제품 및 공급업체 테이블을 고려해 보겠습니다. 시나리오: 공급자가 ABC가 아닌 제품의 가격을 가져옵니다. 질문:
SELECT ProductPrice FROM Product WHERE ProductName NOT IN
(SELECT ProductName FROM Supplier WHERE SupplierName = "ABC");
이것이 SQL IN 및 SQL NOT IN 연산자 예제의 전부입니다.