logo

SQL에서 IN을 사용하는 방법

이 SQL 기사에서는 SQL 데이터베이스 쿼리에서 IN 키워드를 사용하는 방법을 배웁니다.

SQL의 IN 키워드는 무엇입니까?

그만큼 안에 데이터베이스 사용자가 WHERE 절에서 둘 이상의 값을 정의할 수 있도록 하는 구조적 쿼리 언어의 논리 연산자입니다.

중위순회

IN 연산자가 있는 WHERE 절은 주어진 값 세트와 일치하는 결과의 레코드를 표시합니다. IN 연산자의 괄호 안에 하위 쿼리를 지정할 수도 있습니다.

SQL 데이터베이스의 INSERT, SELECT, UPDATE 및 DELETE 쿼리와 함께 IN 연산자를 사용할 수 있습니다.

SQL의 IN 연산자는 쿼리의 여러 OR 조건 프로세스를 대체합니다.

IN 연산자의 구문:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Value_1, Value_2, Value_3, ......., Value_N); 

SQL 문에서 IN 연산자를 사용하려면 아래에 제공된 단계를 동일한 순서로 따라야 합니다.

  1. SQL로 데이터베이스를 생성합니다.
  2. 새 SQL 테이블을 만듭니다.
  3. 테이블에 데이터를 삽입합니다.
  4. 삽입된 데이터를 봅니다.
  5. SQL IN 연산자를 사용하여 테이블의 데이터를 표시합니다.

이제 최고의 SQL 예제를 통해 각 단계를 하나씩 간략하게 설명하겠습니다.

1단계: 간단한 새 데이터베이스 만들기

첫 번째 단계는 구조적 쿼리 언어로 새 데이터베이스를 만드는 것입니다.

다음 CREATE 문은 새 항목을 생성합니다. 기계_대학 SQL 서버의 데이터베이스:

 CREATE Database Mechanical_College; 

2단계: 새 테이블 만들기

이제 데이터베이스에 새 테이블을 만드는 데 도움이 되는 다음 SQL 구문을 사용하세요.

 CREATE TABLE table_name ( 1st_Column data type (character_size of 1st Column), 2nd_Column data type (character_size of the 2nd column ), 3rd_Column data type (character_size of the 3rd column), ... 
 Nth_Column data type (character_size of the Nth column) ); 

다음 CREATE 문은 교수_정보 테이블에 기계_대학 데이터 베이스:

 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Joining_DateDATE, Faculty_City Varchar (80), Faculty_Salary INT ); 

3단계: 테이블에 데이터 삽입

다음 INSERT 쿼리는 Faculty_Info 테이블에 교수진의 레코드를 삽입합니다.

 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 2020-01-02, Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 2019-12-31, Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 2020-10-10, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 2019-07-15, Kolkata, 42000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary) VALUES (1006, Avinash, Sharma, 4002, 2019-11-11, Delhi, 28000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Joining_Date, Faculty_City, Faculty_Salary)VALUES (1007, Shyam, Besas, 4003, 2021-06-21, Lucknow, 35000); 

4단계: 삽입된 데이터 보기

다음 SELECT 문은 Faculty_Info 테이블의 데이터를 표시합니다.

 SELECT * FROM Faculty_Info; 

교수_ID 교수_이름_이름 교수_성_이름 Faculty_Dept_Id 교수진_입학_날짜 학부_시 교수_급여
1001 샤르마 4001 2020-01-02 델리 20000
1002 불불 로이 4002 2019-12-31 델리 38000
1004 사우라브 로이 4001 2020-10-10 뭄바이 45000
1005 시바니 싱가니아 4001 2019-07-15 콜카타 42000
1006 아비나쉬 샤르마 4002 2019-11-11 델리 28000
1007 샤암 너는 키스한다 4003 2021-06-21 러크나우 35000

5단계: IN 연산자를 사용하여 다양한 방법으로 Faculty_Info 테이블의 데이터 보기

다음 쿼리에서는 IN 연산자와 함께 숫자 값을 사용합니다.

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_Id, Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Salary IN ( 38000, 42000, 45000, 35000); 

이 쿼리는 WHERE 절의 IN 연산자에 급여가 전달된 교수진의 레코드만 표시합니다.

산출:

교수_ID 교수_이름_이름 Faculty_Dept_Id 교수진_입학_날짜 교수_급여
1002 불불 4002 2019-12-31 38000
1004 사우라브 4001 2020-10-10 45000
1005 시바니 4001 2019-07-15 42000
1007 샤암 4003 2021-06-21 35000

다음 쿼리에서는 IN 논리 연산자와 함께 텍스트 또는 문자 값을 사용합니다.

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Joining_Date, Faculty_City FROM Faculty_Info WHERE Faculty_City IN ( Mumbai, Kolkata, Lucknow); 

이 쿼리는 WHERE 절의 IN 연산자 괄호 안에 도시가 포함된 학부의 레코드만 표시합니다.

산출:

교수_ID 교수_이름_이름 교수진_입학_날짜 학부_시
1004 사우라브 2020-10-10 뭄바이
1005 시바니 2019-07-15 콜카타
1007 샤암 2021-06-21 러크나우

다음 쿼리는 IN 논리 연산자와 함께 DATEformat을 사용합니다.

 SELECT Faculty_Id, Faculty_First_Name, Faculty_Dept_ID Faculty_Joining_Date, Faculty_Salary FROM Faculty_Info WHERE Faculty_Joining_Date IN (2020-01-02, 2021-06-21, 2020-10-10, 2019-07-15); 

이 쿼리는 WHERE 절의 IN 연산자에 합류 날짜가 전달된 교수진의 레코드만 표시합니다.

산출:

교수_ID 교수_이름_이름 Faculty_Dept_Id 교수진_입학_날짜 교수_급여
1001 4001 2020-01-02 20000
1004 사우라브 4001 2020-10-10 45000
1005 시바니 4001 2019-07-15 42000
1007 샤암 4003 2021-06-21 35000

다음 쿼리는 IN 논리 연산자와 함께 SQL UPDATE 명령을 사용합니다.

Kat timpf는 변호사인가요?
 UPDATE Faculty_Info SET Faculty_Salary = 50000 WHERE Faculty_Dept_ID IN (4002, 4003); 

이 쿼리는 WHERE 절의 IN 연산자에 Dept_Id가 전달된 교수진의 급여를 업데이트합니다.

위 쿼리의 결과를 확인하려면 SQL에 다음 SELECT 쿼리를 입력하세요.

 SELECT * FROM Faculty_Info; 
교수_ID 교수_이름_이름 교수_성_이름 Faculty_Dept_Id 교수진_입학_날짜 학부_시 교수_급여
1001 샤르마 4001 2020-01-02 델리 20000
1002 불불 로이 4002 2019-12-31 델리 50000
1004 사우라브 로이 4001 2020-10-10 뭄바이 45000
1005 시바니 싱가니아 4001 2019-07-15 콜카타 42000
1006 아비나쉬 샤르마 4002 2019-11-11 델리 50000
1007 샤암 너는 키스한다 4003 2021-06-21 러크나우 50000

하위 쿼리가 포함된 SQL IN 연산자

구조적 쿼리 언어에서는 IN 논리 연산자와 함께 하위 쿼리를 사용할 수도 있습니다.

하위 쿼리가 포함된 IN 연산자의 구문은 다음과 같습니다.

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name IN (Subquery); 

하위 쿼리가 포함된 IN 연산자를 이해하려면 CREATE 문을 사용하여 구조적 쿼리 언어로 두 개의 서로 다른 테이블을 만들어야 합니다.

다음 쿼리는 데이터베이스에 Faculty_Info 테이블을 생성합니다.

 CREATE TABLE Faculty_Info ( Faculty_ID INT NOT NULL PRIMARY KEY, Faculty_First_Name VARCHAR (100), Faculty_Last_Name VARCHAR (100), Faculty_Dept_Id INT NOT NULL, Faculty_Address Varchar (80), Faculty_City Varchar (80), Faculty_Salary INT ); 

다음 쿼리는 부서_정보 데이터베이스의 테이블:

 CREATE TABLE Department_Info ( Dept_Id INT NOT NULL, Dept_Name Varchar(100), Head_Id INT ); 

다음 INSERT 쿼리는 Faculty_Info 테이블에 교수진의 레코드를 삽입합니다.

 INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1001, Arush, Sharma, 4001, 22 street, New Delhi, 20000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1002, Bulbul, Roy, 4002, 120 street, New Delhi, 38000 ); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1004, Saurabh, Sharma, 4001, 221 street, Mumbai, 45000); INSERT INTO Faculty_Info (Faculty_ID, Faculty_First_Name, Faculty_Last_NameFaculty_Dept_Id, Faculty_Address, Faculty_City, Faculty_Salary) VALUES (1005, Shivani, Singhania, 4001, 501 street, Kolkata, 42000); 

다음 INSERT 쿼리는 Department_Info 테이블에 부서 레코드를 삽입합니다.

 INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4001, Arun, 1005); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4002, Zayant, 1009); INSERT INTO Department_Info (Dept_ID, Dept_Name, Head_Id) VALUES ( 4003, Manish, 1007); 

다음 SELECT 문은 Faculty_Info 테이블의 데이터를 표시합니다.

 SELECT * FROM Faculty_Info; 

교수_ID 교수_이름_이름 교수_성_이름 Faculty_Dept_Id 교수_주소 학부_시 교수_급여
1001 샤르마 4001 22번가 뉴 델리 20000
1002 불불 로이 4002 120 스트리트 뉴 델리 38000
1004 사우라브 로이 4001 221 스트리트 뭄바이 45000
1005 시바니 싱가니아 4001 501 스트리트 콜카타 42000
1006 아비나쉬 샤르마 4002 12번가 델리 28000
1007 샤암 너는 키스한다 4003 202번가 러크나우 35000

다음 쿼리는 Department_Info 테이블의 부서 레코드를 보여줍니다.

 SELECT * FROM Department_Info; 
SQL에서 IN을 사용하는 방법

다음 쿼리는 하위 쿼리와 함께 IN 연산자를 사용합니다.

 SELECT * FROM Faculty_Info WHERE Faculty_Dept_Id IN ( Select Dept_Id FROM Department_Info WHERE Head_Id >= 1007); 

이 쿼리는 Faculty_Info 테이블의 Dept_ID가 Department_Info 테이블의 Dept_Id와 일치하는 교수진의 레코드를 표시합니다.

산출:

교수_ID 교수_이름_이름 교수_성_이름 Faculty_Dept_Id 교수_주소 학부_시 교수_급여
1002 불불 로이 4002 120 스트리트 뉴 델리 38000
1006 아비나쉬 샤르마 4002 12번가 델리 28000
1007 샤암 너는 키스한다 4003 202번가 러크나우 35000

SQL에서 NOT IN은 무엇입니까?

NOT IN은 SQL IN 연산자와 정반대인 구조적 쿼리 언어의 또 다른 연산자입니다. 이를 통해 IN 연산자의 괄호를 전달하지 않는 테이블의 값에 액세스할 수 있습니다.

NOT IN 연산자는 INSERT, UPDATE, SELECT 및 DELETE SQL 쿼리에 사용할 수 있습니다.

NOT IN 연산자의 구문:

 SELECT Column_Name_1, Column_Name_2, Column_Name_3, ......, Column_Name_N FROM Table_Name WHERE Column_Name NOT IN (Value_1, Value_2, Value_3, ......., Value_N); 

SQL 문에서 NOT IN 연산자를 사용하려면 동일한 순서로 주어진 단계를 따라야 합니다.

  1. SQL 시스템에 데이터베이스를 생성합니다.
  2. 데이터베이스에 새 테이블을 만듭니다.
  3. 테이블에 데이터 삽입
  4. 삽입된 데이터 보기
  5. NOT IN 연산자를 사용하여 데이터를 봅니다.

이제 최고의 SQL 예제를 통해 각 단계를 하나씩 간략하게 설명하겠습니다.

1단계: 간단한 새 데이터베이스 만들기

다음 쿼리는 새 토목_산업 SQL 서버의 데이터베이스:

 CREATE Database Industry; 

2단계: 새 테이블 만들기

다음 쿼리는 작업자_정보 테이블에 토목_산업 데이터 베이스:

 CREATE TABLE Worker_Info ( Worker_ID INT NOT NULL PRIMARY KEY, Worker_Name VARCHAR (100), Worker_Gender Varchar(20), Worker_Age INT NOT NULL DEFAULT 18, Worker_Address Varchar (80), Worker_Salary INT NOT NULL ); 

3단계: 값 삽입

다음 INSERT 쿼리는 Worker_Info 테이블에 작업자의 레코드를 삽입합니다.

 INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1001, Arush, Male, Agra, 35000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1002, Bulbul, Female, Lucknow, 42000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1004, Saurabh, Male, 20, Lucknow, 45000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1005, Shivani, Female, Agra, 28000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1006, Avinash, Male, 22, Delhi, 38000); INSERT INTO Worker_Info (Worker_ID, Worker_Name, Worker_Gender, Worker_Age, Worker_Address, Worker_Salary) VALUES (1007, Shyam, Male, Banglore, 20000); 

4단계: 테이블 데이터 보기

다음 쿼리는 Worker_Info 테이블의 데이터를 표시합니다.

 SELECT * FROM Worker_Info; 

작업자_ID 작업자_이름 근로자_성별 근로자_나이 근로자_주소 근로자_급여
1001 남성 18 아그라 35000
1002 불불 여성 18 러크나우 42000
1004 사우라브 남성 이십 러크나우 45000
1005 시바니 여성 18 아그라 28000
1006 아비나쉬 남성 22 델리 38000
1007 샤암 남성 18 방갈로르 20000

4단계: NOT IN 연산자 사용

다음 쿼리에서는 숫자 데이터에 NOT IN 연산자를 사용합니다.

 SELECT * FROM Worker_Info WHERE Worker_salary NOT IN (35000, 28000, 38000); 

이 SELECT 쿼리는 급여가 NOT IN 연산자로 전달되지 않은 모든 근로자를 출력에 표시합니다.

위 명령문의 결과는 다음 표에 나와 있습니다.

자바 객체 평등
작업자_ID 작업자_이름 근로자_성별 근로자_나이 근로자_주소 근로자_급여
1002 불불 여성 18 러크나우 42000
1004 사우라브 남성 이십 러크나우 45000
1007 샤암 남성 18 방갈로르 20000

다음 쿼리는 문자 또는 텍스트 값과 함께 NOT IN 논리 연산자를 사용합니다.

 SELECT * FROM Worker_Info WHERE Worker_Address NOT IN (Lucknow, Delhi); 

이 쿼리는 주소가 NOT IN 연산자에 전달되지 않은 모든 작업자의 기록을 보여줍니다.

산출:

작업자_ID 작업자_이름 근로자_성별 근로자_나이 근로자_주소 근로자_급여
1001 남성 18 아그라 35000
1005 시바니 여성 18 아그라 28000
1007 샤암 남성 18 방갈로르 20000