Computer >> 컴퓨터 >  >> 프로그래밍 >> SQL Server

SQL Server WHERE 절 완벽 정리 – 조건으로 데이터 필터링하는 방법

SQL Server(T-SQL)에서 WHERE 절은 SELECT, INSERT, UPDATE 또는 DELETE 문의 결과에서 특정 조건을 만족하는 레코드만 골라내는 데 사용되는 핵심 구문입니다. 대량의 데이터 중에서 원하는 행만 정확하게 추출하고 싶다면 WHERE 절의 활용법을 반드시 익혀야 합니다.

WHERE 절 기본 문법

WHERE 조건;

조건(Condition)이란?

조건은 레코드가 선택되기 위해 반드시 충족해야 하는 기준을 의미합니다. 조건이 참(True)으로 평가되는 행만 최종 결과에 포함됩니다.

예제 1 – 단일 조건 사용

SELECT *
FROM nhanvien
WHERE ten = 'Jane';

위 예제는 nhanvien(직원) 테이블에서 이름(ten)이 'Jane'인 행만 조회합니다. SELECT 절에서 별표(*)를 사용했기 때문에 결과 집합에는 해당 테이블의 모든 열이 표시됩니다.

예제 2 – AND 조건 사용

SELECT *
FROM nhanvien
WHERE ho = 'Anderson'
AND nhanvien_id >= 3000;

AND 키워드를 사용하면 두 개 이상의 조건을 동시에 적용할 수 있습니다. 위 SELECT 문은 성(ho)이 'Anderson'이면서 직원 ID(nhanvien_id)가 3000 이상인 직원만 반환합니다. 즉, 모든 조건을 충족해야 결과에 포함됩니다.

예제 3 – OR 조건 사용

SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE ho = 'Johnson'
OR ten = 'Danielle';

OR 연산자는 여러 조건 중 하나라도 만족하면 해당 레코드를 반환합니다. 위 쿼리는 성이 'Johnson'이거나 이름이 'Danielle'인 직원의 ID, 성, 이름을 결과로 출력합니다.

예제 4 – AND와 OR 조건 결합

SELECT *
FROM nhanvien
WHERE (bang = 'California' AND ho = 'Smith')
OR (nhanvien_id = 82);

AND와 OR를 함께 사용할 때는 괄호를 활용해 조건이 평가되는 순서를 명확히 지정하는 것이 좋습니다. 수학 연산에서 괄호가 우선 처리되듯이, SQL에서도 괄호 안의 조건이 먼저 평가됩니다. 위 쿼리는 'California' 주에 거주하며 성이 'Smith'인 직원 또는 직원 ID가 82인 직원을 반환합니다.

예제 5 – 테이블 조인(JOIN)과 함께 사용

SELECT nhanvien.nhanvien_id, danhba.ho
FROM nhanvien
INNER JOIN danhba
ON nhanvien.nhanvien_id = danhba.danhba_id
WHERE nhanvien.ten = 'Sarah';

위 SELECT 문은 이름이 'Sarah'인 행을 반환합니다. nhanvien(직원) 테이블과 danhba(주소록) 테이블은 각각의 ID 열을 기준으로 INNER JOIN으로 연결되며, WHERE 절을 통해 그중 원하는 조건의 데이터만 필터링됩니다.

WHERE 절 사용 시 유용한 팁

  • NULL 값을 비교할 때는 '=' 대신 IS NULL 또는 IS NOT NULL을 사용해야 합니다.
  • 문자열 조건값은 반드시 작은따옴표(' ')로 감싸야 오류를 방지할 수 있습니다.
  • AND는 모든 조건 충족 시, OR는 하나라도 충족 시 참이 되므로 혼합 사용 시 괄호로 우선순위를 지정하세요.
  • 조회 성능을 높이려면 인덱스가 설정된 열에 WHERE 조건을 거는 것이 효과적입니다.