SQL WHERE IN – 예제로 설명

SQL WHERE IN – 예제로 설명

데이터베이스에서 수동으로 데이터를 필터링하고 여러 값이 있는 데이터를 필터링하는 보다 효율적인 방법을 찾는 데 지치셨습니까? SQL WHERE IN이 필요한 솔루션일 수 있습니다!

SQL 데이터베이스로 작업하는 경우 WHERE IN 연산자를 접했을 것입니다. 이 연산자는 WHERE 절에서 여러 값을 지정하는 데 사용되므로 데이터를 보다 정확하게 필터링할 수 있습니다.

이 연산자를 사용하면 테이블의 열과 일치시킬 값 목록을 지정할 수 있습니다. 이 목록은 하위 쿼리에 의해 하드코딩되거나 생성될 수 있으므로 데이터를 필터링하는 방법에 많은 유연성을 제공합니다.

SQL WHERE IN – 예제로 설명

예를 들어 IN 연산자를 사용하여 특정 도시 목록에서 모든 고객을 찾거나 일련의 제품 ID를 기반으로 결과를 필터링할 수 있습니다.

WHERE IN 연산자 사용의 이점 중 하나는 쿼리를 보다 효율적으로 만들 수 있다는 것입니다. 여러 OR 조건 대신 값 목록을 사용하면 데이터베이스에서 수행해야 하는 처리량을 줄일 수 있습니다.

이는 작은 최적화로도 성능에 큰 차이를 만들 수 있는 대규모 데이터 세트 또는 복잡한 쿼리로 작업할 때 특히 중요할 수 있습니다.

목차

SQL WHERE IN 절이란 무엇입니까?

SQL WHERE IN 절은 값 목록을 기반으로 데이터를 필터링하는 데 사용됩니다. 여러 OR 조건에 대한 속기를 사용하여 WHERE 절에 여러 값을 지정할 수 있습니다. SQL Server , PostgreSQL, MYSQL 및 Oracle 에 대한 WHERE IN 절의 구문은 다음과 같습니다.

SELECT column_name(s) 
FROM table_name 
WHERE column_name IN (value1, value2, ...); 

위의 SELECT 문을 고려하면 WHERE IN 절을 사용하면 지정된 열이 목록의 값과 일치하는 테이블에서 데이터를 검색할 수 있습니다. 검색할 특정 값 집합이 있는 경우 데이터를 필터링하는 데 유용한 구문입니다.

SQL WHERE IN 절은 어떻게 작동합니까?

이 절은 지정된 열을 목록의 각 값과 비교하여 작동합니다. 열이 목록의 값과 일치하면 해당 행이 결과 집합에 포함됩니다.

"customer_id", "customer_name" 및 "country"의 세 열로 구성된 "customers"라는 테이블이 있다고 가정해 보겠습니다. 미국, 캐���다 및 멕시코에서 모든 고객을 검색하려고 합니다. 다음 쿼리는 WHERE IN 절이 사용되는 방법을 보여줍니다. SELECT customer_id, customer_name, country FROM customers WHERE country IN ('USA','Canada','Mexico');

SQL WHERE IN 절의 예

가능한 값 목록을 기반으로 결과를 필터링하려는 경우 SQL WHERE IN 절을 사용할 수 있습니다. 이 절은 특정 열이 값 집합 중 하나와 일치하는 행을 쉽게 선택할 수 있는 방법을 제공합니다.

다음은 절을 사용할 수 있는 방법에 대한 다섯 가지 예입니다.

  1. 단일 값과 함께 SQL WHERE IN 절 사용

상태 열이 "게시됨"으로 설정된 테이블의 모든 행을 선택한다고 가정해 보겠습니다. 다음 SQL 문을 사용하여 이 작업을 수행할 수 있습니다.

SELECT * 
FROM my_table 
WHERE status IN ('published');

이렇게 하면 상태 열이 "게시됨"으로 설정된 모든 행이 반환됩니다.

  1. 여러 값과 함께 SQL WHERE IN 절 사용

이제 상태 열이 "게시됨" 또는 "초안"으로 설정된 모든 행을 선택한다고 가정해 보겠습니다. 다음 SQL 문을 사용할 수 있습니다.

SELECT * 
FROM my_table 
WHERE status IN ('published', 'draft');

이렇게 하면 상태 열이 "게시됨" 또는 "초안"으로 설정된 모든 행이 반환됩니다. 또한 쉼표로 구분하여 원하는 만큼 값을 추가할 수 있습니다.

  1. Delete 문과 함께 SQL WHERE IN 절 사용

다음 데이터가 포함된 "customers"라는 테이블이 있다고 가정합니다.

SQL WHERE IN – 예제로 설명

"City" 열의 여러 값을 기반으로 이 테이블에서 행을 삭제하려면 다음 쿼리와 같이 SQL WHERE IN 절을 DELETE 문과 함께 사용할 수 있습니다.

DELETE FROM customers
WHERE City IN ('New York', 'Chicago', 'Miami');

이 문은 "City" 열 이름이 목록의 값(예: 'New York', 'Chicago', 'Miami')과 일치하는 "customers" 테이블에서 모든 행을 삭제합니다. 위의 예에서는 테이블에서 첫 번째, 세 번째 및 다섯 번째 행을 삭제합니다.

DELETE 문과 함께 WHERE IN 절을 사용할 때 올바른 데이터를 삭제하고 있는지 확인하여 실수를 방지하도록 매우 주의해야 합니다. 전체 데이터베이스에서 쿼리를 실행하기 전에 작은 데이터 하위 집합에서 쿼리를 테스트하는 것이 가장 좋습니다.

  1. WHERE IN 연산자 및 SQL WHERE 절을 사용하여 숫자 값을 기준으로 데이터 필터링

SELECT *
FROM customers
WHERE age IN (25, 30, 35)
AND city = 'London';

이 쿼리는 age 열에 숫자 값 25, 30 또는 35가 포함되고 city 열에 값 "London"이 포함된 "customers" 테이블의 모든 행을 반환합니다.

WHERE IN 연산자는 단일 열에 대해 여러 값을 지정할 수만 있는 논리 연산자입니다. SELECT 문은 테이블에서 데이터를 검색하는 데 사용되며 WHERE 절은 특정 조건에 따라 데이터를 필터링하는 데 사용됩니다.

이 예에서 쿼리는 나이 열이 지정된 숫자 값 중 하나와 일치하고 도시 열이 "런던" 값과 일치하는 "고객" 테이블의 행을 반환합니다. 이 쿼리에 사용된 컬럼 이름은 "age"와 "city"이고 쿼리되는 테이블은 "customers"입니다.

  1. SELECT 문 및 IN 연산자와 함께 WHERE IN 사용.

SELECT *
FROM orders
WHERE customer_id IN (
    SELECT customer_id
    FROM customers
    WHERE country = 'USA'
);

이 예제에서는 국가 열에 "USA" 값이 포함된 "customers" 테이블에서 모든 고객 ID를 검색하기 위해 하위 쿼리를 사용하고 있습니다. 그런 다음 WHERE IN 연산자를 사용하여 해당 고객 ID를 기반으로 "주문" 테이블을 필터링합니다.

이 쿼리는 하위 쿼리에서 반환된 고객 ID 중 하나와 일치하는 customer_id 열이 있는 주문 테이블의 모든 행을 반환합니다.

WHERE IN 연산자는 열을 값 목록과 비교할 수 있는 비교 연산자입니다. 이 경우에는 customer_id 열을 하위 쿼리에서 반환된 고객 ID 목록과 비교합니다.

이 연산자와 하위 쿼리를 사용하여 특정 기준에 따라 데이터를 필터링하고 필요에 맞는 데이터만 검색할 수 있습니다.

2 SQL WHERE IN 절 사용의 주요 이점?

  1. 향상된 쿼리 성능

이 절은 쿼리 성능 측면에서 가장 큰 이점 중 하나를 제공합니다. 여러 값을 기반으로 데이터를 필터링할 때 절을 사용하는 것이 OR 연산자로 여러 WHERE 절을 작성하는 것보다 훨씬 더 효율적이고 빠를 수 있습니다. 이는 데이터베이스 엔진이 쿼리 실행 계획을 최적화하여 필요한 데이터를 효율적으로 검색할 수 있기 때문입니다.

예를 들어 국가를 기반으로 고객 세부 정보를 식별하려고 하는 "customers" 테이블이 있는 다음 SQL 쿼리를 고려하십시오.

SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers WHERE country='USA' 
			OR country='Canada' 
			OR country='Mexico' ;

SQL WHERE IN – 예제로 설명

 SELECT CustomerID,CustomerName,phone,Email,CustomerCounter
FROM customers 
WHERE country IN ('USA', 'Canada', 'Mexico'); 

SQL WHERE IN – 예제로 설명

위의 예에서 볼 수 있듯이 절을 사용하면 쿼리 성능이 크게 향상되고 시간을 절약할 수 있습니다. 훨씬 더 큰 데이터 세트에서 OR 연산자를 사용하여 국가를 차례로 선택하는 것보다 한 번에 모든 국가를 선택하는 것이 더 쉽습니다.

  1. 간소화된 쿼리 작성

SQL WHERE IN 절 사용의 또 다른 주요 이점은 복잡한 쿼리 작성 프로세스를 단순화할 수 있다는 것입니다. 여러 값을 기반으로 데이터를 필터링해야 하는 경우 OR 연산자와 함께 여러 WHERE 절을 사용하면 금방 번거롭고 관리하기 어려워질 수 있습니다.

이 절을 사용하면 단일 문에서 필터링하려는 모든 값을 지정할 수 있으므로 쿼리를 더 쉽게 읽고 유지 관리할 수 있습니다. 이는 대규모 데이터 세트로 작업하거나 여러 조건으로 복잡한 쿼리를 작성해야 할 때 특히 유용할 수 있습니다.

예를 들어 다음 SQL 쿼리를 고려하십시오.

SELECT *
FROM products 
WHERE category='Electronics' AND (brand='Apple' OR brand='Samsung' OR brand='Sony') 
SELECT *
FROM products 
WHERE category='Electronics' AND brand IN ('Apple', 'Samsung', 'Sony') 

위 예의 두 쿼리에서 쿼리는 Apple, Samsung 및 Sony의 모든 "전자 제품" 제품을 반환합니다.

그러나 후자의 쿼리에서 볼 수 있듯이 WHERE IN 절을 사용하면 복잡한 쿼리를 사용하는 과정을 단순화하고 읽고 이해하기 쉽게 만들 수 있습니다.

또한 오류를 방지하고 시간 소모를 줄이는 데 도움이 됩니다.

우리의 마지막 말

축하해요! 이제 SQL WHERE IN 절을 사용하여 값 목록을 기반으로 데이터를 필터링하는 방법을 알게 되었습니다. 배운 내용을 평가해 보겠습니다.

WHERE IN을 사용하면 다양한 SQL 쿼리를 단순화하고 이를 생성하여 보다 효율적으로 작성된 출력을 검색할 수 있습니다.

WHERE IN은 여러 OR 조건의 줄임말이므로 긴 OR 문 목록을 대체할 수 있습니다. 또한 이 절은 하위 쿼리와 함께 사용할 수 있으므로 다른 쿼리의 결과를 기반으로 데이터를 필터링할 수 있습니다.

WHERE IN을 사용할 때 비교하는 값의 데이터 유형을 고려하는 것이 중요합니다. 데이터 유형이 일치하지 않는 경우 정확한 비교를 위해 유형 변환 기능을 사용해야 할 수 있습니다.

전반적으로 SQL WHERE IN 절은 SQL 쿼리에서 데이터를 필터링하기 위한 강력하면서도 기본적인 구문입니다. 이 절을 마스터하면 SQL 코드의 성능과 가독성을 개선하여 장기적으로 작업하고 유지하기가 더 쉬워집니다.


파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

파이썬에서 자기란 무엇인가: 실제 사례

R에서 RDS 파일을 저장하고 로드하는 방법

R에서 RDS 파일을 저장하고 로드하는 방법

R의 .rds 파일에서 개체를 저장하고 로드하는 방법을 배웁니다. 이 블로그에서는 R에서 LuckyTemplates로 개체를 가져오는 방법도 다룹니다.

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

첫 N 영업일 재방문 – DAX 코딩 언어 솔루션

이 DAX 코딩 언어 자습서에서는 GENERATE 함수를 사용하는 방법과 측정값 제목을 동적으로 변경하는 방법을 알아봅니다.

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

LuckyTemplates에서 다중 스레드 동적 시각적 개체 기술을 사용한 인사이트 쇼케이스

이 자습서에서는 다중 스레드 동적 시각적 개체 기술을 사용하여 보고서의 동적 데이터 시각화에서 통찰력을 만드는 방법을 다룹니다.

LuckyTemplates의 컨텍스트 필터링 소개

LuckyTemplates의 컨텍스트 필터링 소개

이 기사에서는 필터 컨텍스트를 살펴보겠습니다. 필터 컨텍스트는 모든 LuckyTemplates 사용자가 처음에 배워야 하는 주요 주제 중 하나입니다.

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates 온라인 서비스에서 앱을 사용하기 위한 최고의 팁

LuckyTemplates Apps 온라인 서비스가 다양한 소스에서 생성된 다양한 보고서 및 인사이트를 관리하는 데 어떻게 도움이 되는지 보여주고 싶습니다.

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

시간 경과에 따른 이익 마진 변화 분석 - LuckyTemplates 및 DAX를 사용한 분석

LuckyTemplates에서 측정 분기 및 DAX 수식 결합과 같은 기술을 사용하여 수익 마진 변경을 해결하는 방법을 알아봅니다.

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

DAX Studio의 데이터 캐시에 대한 구체화 아이디어

이 자습서에서는 데이터 캐시의 구체화 아이디어와 결과 제공 시 DAX 성능에 미치는 영향에 대해 설명합니다.

LuckyTemplates를 사용한 비즈니스 보고

LuckyTemplates를 사용한 비즈니스 보고

지금까지 Excel을 계속 사용하고 있다면 지금이 비즈니스 보고 요구 사항에 LuckyTemplates를 사용하기 시작하는 가장 좋은 시기입니다.

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것

LuckyTemplates 게이트웨이란? 당신이 알아야 할 모든 것