사용자는 테이블에 있는 모든 데이터를 다 보고 싶어 하지는 않습니다. 오히려 특정 항목에 대한 데이터만 가져오고 싶을 때가 훨씬 많습니다.
예를 들어, 어떤 사용자의 이메일이나 ID는 알고 있는데, 그 사람이 언제 우리 앱에 가입했는지 확인하고 싶다고 가정해 봅시다. 이때 전체 데이터를 뒤지는 대신, 원하는 조건에 맞춰 검색 범위를 좁히는 '필터링'이 필요합니다.
이 작업은 SELECT 명령어(문장) 끝에 WHERE 문을 붙여서 실행할 수 있습니다.
만약 ID가 "2"인 사용자만 딱 골라서 보고 싶다면, 문장 끝에 WHERE id=2;를 추가하면 됩니다.
SELECT * FROM Users WHERE id=2;
이전에 알려드린 '특정 컬럼만 선택하기' 기능과 조합할 수도 있습니다. ID가 2인 사용자의 가입일만 콕 집어 가져오려면 다음과 같이 작성하면 됩니다.
SELECT createdAt FROM Users WHERE id=2;
WHERE 문은 어떤 컬럼(열)에도 사용할 수 있습니다. id뿐만 아니라 이름(name), 이메일(email), 날짜(date) 등으로도 찾을 수 있습니다.
즉 더 똑똑하게 필터링하기 (조건 검색)입니다.
WHERE 문은 단순히 값이 같은지(EQUAL) 확인하는 것보다 훨씬 복잡하고 똑똑한 방식으로 필터링할 수 있습니다.
사용자의 나이(age) 정보가 포함된 Users 테이블이 있다고 상상해 봅시다.
[현재 Users 테이블 데이터]
| ID | Name | Age | createdAt | updatedAt | |
| 1 | KJ | kj@email.com | 25 | 2026-01-27 | 2026-01-27 |
| 2 | SJ | sj@email.com | 26 | 2026-01-27 | 2026-01-27 |
| 3 | SH | sh@email.com | 27 | 2026-01-27 | 2026-01-27 |
예를 들어, 나이가 25살보다 많은(>) 사용자만 뽑아보겠습니다.
SELECT * FROM Users WHERE age > 25;
그럼 25살 이상이 아니라 초과이기 때문에 Name이 KJ를 제외한 나머지 SJ, SH만 결과값으로 출력하게 됩니다!