WHERE는 SQL에서 원하는 조건에 맞는 데이터만 선택하여 조회하기 위해 사용하는 조건절입니다. 데이터베이스에는 수많은 행이 저장될 수 있기 때문에 전체 데이터를 조회하는 것보다 필요한 데이터만 골라내는 작업이 중요합니다. WHERE를 사용하면 특정 값과 일치하는 데이터나 일정한 범위에 해당하는 데이터 등을 선택할 수 있습니다. SELECT와 함께 사용되는 경우가 많으며, 데이터를 정확하게 조회하기 위한 기본적인 SQL 문법입니다.

WHERE의 기본 개념

SELECT가 조회할 열을 결정하는 명령어라면 WHERE는 조회 결과에 포함할 행을 결정하는 역할을 합니다. 예를 들어 회원 테이블에 1만 명의 회원이 저장되어 있다고 가정할 수 있습니다. 이 중 특정 지역에 거주하는 회원이나 특정 연령 이상의 회원만 확인하려면 조건을 지정해야 합니다.

이때 WHERE를 사용하면 원하는 조건을 설정할 수 있습니다. 예를 들어 회원의 주소가 서울인 데이터만 조회하거나 나이가 30세 이상인 데이터만 조회하는 방식입니다.

WHERE는 일반적으로 SELECT와 함께 사용하지만 UPDATE나 DELETE와 같은 데이터 변경 명령어에서도 사용할 수 있습니다. 따라서 WHERE는 단순히 데이터를 검색하기 위한 문법을 넘어 특정 데이터를 정확하게 선택하는 데 사용되는 중요한 SQL 문법입니다.

WHERE와 비교 연산자

WHERE에서는 다양한 비교 연산자를 사용할 수 있습니다. 가장 기본적인 연산자로는 =이 있으며, 특정 값과 같은 데이터를 찾을 때 사용합니다.

이외에도 >는 초과, <는 미만, >=는 이상, <=는 이하를 의미합니다. <> 또는 !=는 같지 않은 값을 찾을 때 사용할 수 있습니다.

예를 들어 상품 테이블에서 가격이 10,000원보다 높은 상품을 찾거나 회원 테이블에서 나이가 20세 이상인 회원을 찾는 등의 조건을 만들 수 있습니다. 이러한 비교 연산자를 사용하면 단순히 특정 값과 일치하는 데이터뿐만 아니라 범위에 따른 데이터도 조회할 수 있습니다.

여러 조건을 사용하는 방법

실제 데이터 조회에서는 하나의 조건만 사용하는 것보다 여러 조건을 동시에 사용하는 경우가 많습니다. 이때 ANDOR를 사용할 수 있습니다.

AND는 여러 조건을 모두 만족해야 한다는 의미입니다. 예를 들어 나이가 30세 이상이면서 특정 지역에 거주하는 회원을 찾고 싶다면 두 조건을 AND로 연결할 수 있습니다.

반면 OR는 여러 조건 중 하나만 만족해도 조회 대상에 포함한다는 의미입니다. 예를 들어 서울 또는 부산에 거주하는 회원을 찾고 싶다면 지역 조건을 OR로 연결할 수 있습니다.

이처럼 AND와 OR를 사용하면 단순한 조건을 조합하여 보다 구체적인 검색 조건을 만들 수 있습니다.

조건의 우선순위

여러 조건을 함께 사용할 때는 조건이 어떤 순서로 처리되는지도 중요합니다. 특히 AND와 OR를 동시에 사용하는 경우에는 원하는 결과가 나오도록 괄호를 사용하는 것이 좋습니다.

예를 들어 특정 지역에 거주하면서 일정한 연령 이상인 회원 또는 별도의 조건을 만족하는 회원을 찾는 경우 조건의 범위가 달라질 수 있습니다. 괄호를 사용하면 어떤 조건을 먼저 묶어서 처리할 것인지 명확하게 표현할 수 있습니다.

따라서 복잡한 WHERE 조건을 작성할 때는 단순히 조건을 나열하기보다 논리적인 관계를 먼저 정리한 후 SQL을 작성하는 것이 좋습니다.

WHERE에서 자주 사용하는 조건

WHERE에서는 비교 연산자뿐만 아니라 특정 범위나 여러 값을 확인하기 위한 문법도 사용할 수 있습니다. 대표적으로 BETWEEN, IN, LIKE 등이 있습니다.

BETWEEN은 일정한 범위 안에 포함되는 데이터를 찾을 때 사용할 수 있습니다. 예를 들어 상품 가격이 특정 금액 범위에 있는 데이터를 조회하는 방식입니다.

IN은 여러 개의 값 중 하나와 일치하는 데이터를 찾을 때 사용할 수 있습니다. 여러 지역 가운데 특정 지역에 해당하는 회원을 조회하는 경우 등에 활용할 수 있습니다.

LIKE는 문자열의 일부가 특정 형태와 일치하는 데이터를 찾을 때 사용합니다. 예를 들어 이름이나 상품명에 특정 단어가 포함되어 있는 데이터를 조회할 수 있습니다.

NULL과 WHERE

WHERE를 사용할 때는 앞에서 살펴본 NULL도 주의해야 합니다. NULL은 일반적인 값과 동일하게 비교할 수 없기 때문에 = NULL과 같은 조건을 사용하는 방식은 적절하지 않습니다.

NULL인지 확인하려면 IS NULL을 사용하고, NULL이 아닌 데이터를 찾으려면 IS NOT NULL을 사용합니다.

예를 들어 회원 테이블에서 전화번호가 입력되지 않은 회원을 찾고 싶다면 전화번호 열에 NULL이 저장되어 있는지를 조건으로 확인할 수 있습니다. 반대로 전화번호가 입력된 회원만 조회하고 싶다면 NULL이 아닌 데이터를 선택하면 됩니다.

WHERE는 데이터베이스에서 원하는 데이터를 정확하게 골라내기 위한 핵심적인 SQL 조건절입니다. SELECT가 조회할 컬럼을 결정한다면 WHERE는 특정 조건을 만족하는 행만 선택하는 역할을 합니다.

또한 비교 연산자와 AND, OR를 이용해 다양한 조건을 만들 수 있으며, BETWEEN, IN, LIKE와 같은 문법을 활용하면 숫자의 범위나 여러 값, 문자열의 패턴까지 효과적으로 검색할 수 있습니다.

WHERE는 SELECT뿐만 아니라 UPDATE와 DELETE에서도 사용할 수 있기 때문에 데이터베이스를 안전하게 관리하기 위해서도 중요합니다. 특히 UPDATE나 DELETE에서 조건을 잘못 지정하면 의도하지 않은 여러 행의 데이터가 변경되거나 삭제될 수 있으므로 조건을 정확하게 작성해야 합니다.

결국 WHERE를 제대로 이해하면 데이터베이스에 저장된 많은 데이터 중 필요한 정보만 선택하여 조회하고 관리할 수 있습니다. 다음 단계에서는 조회한 데이터를 원하는 순서대로 정렬하기 위해 사용하는 ORDER BY에 대해 알아볼 수 있습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

글쓴이

rjsan46@koreabites.com

관련 게시물

GROUP BY란 무엇인가

GROUP BY는 SQL에서 특정 컬럼의 값이 같은 데이터를 하나의 그룹으로 묶어 조회할 때 사용하는 구문입니다. 단순히 데이터를 조회하거나 정렬하는 것과 달리 여러...

모두 읽어보기

ORDER BY란 무엇인가

ORDER BY는 SQL에서 조회한 데이터를 원하는 기준에 따라 정렬할 때 사용하는 구문입니다. 데이터를 단순히 조회하는 것에서 그치지 않고 가격이 높은 순서, 이름이...

모두 읽어보기

SELECT란 무엇인가

SELECT는 SQL에서 데이터베이스에 저장된 데이터를 조회할 때 사용하는 가장 기본적인 명령어입니다. 데이터베이스에는 많은 양의 데이터가 저장될 수 있기 때문에 필요한 정보를 선택해서...

모두 읽어보기

SQL이란 무엇인가

SQL은 데이터베이스에 저장된 데이터를 조회하고 추가하거나 수정하고 삭제하기 위해 사용하는 언어입니다. 관계형 데이터베이스에서는 테이블을 이용해 데이터를 관리하며, SQL을 통해 이러한 데이터를 원하는...

모두 읽어보기

NULL이란 무엇인가

데이터베이스에서 NULL은 데이터가 존재하지 않거나 현재 값을 알 수 없는 상태를 나타내는 특별한 값입니다. 일반적인 숫자나 문자처럼 특정한 값을 의미하는 것이 아니라...

모두 읽어보기

UNIQUE와 PRIMARY KEY 차이

관계형 데이터베이스에서는 데이터의 중복을 방지하고 각 데이터를 정확하게 관리하기 위해 여러 가지 제약 조건을 사용합니다. 그중 UNIQUE와 PRIMARY KEY는 특정 열에 동일한...

모두 읽어보기