PostgreSQL - WHERE 절: 데이터 필터링의 관문
안녕하세요, 미래의 데이터 마법사 여러분! 오늘 우리는 PostgreSQL의 세계로 흥미로운 여정을 떠납니다. 특히 WHERE 절에 대해 집중적으로 다룰 것입니다. 여러분의 친절한 이웃 컴퓨터 선생님으로서 저는 많은 예제와 설명을 통해 이 여정을 안내해 드리겠습니다. 그럼 안전벨트를 채우고, 함께潜入해 보겠습니다!
WHERE 절이란?
자, 구체적인 내용에 들어가기 전에 WHERE 절이 무엇인지 이해해 보겠습니다. 상상해 보세요. 거대한 도서관(우리의 데이터베이스)에 가득 찬 책들(우리의 데이터)이 있습니다. 이제 드래곤에 관한 책들을 찾고 싶습니다. 모든 책을 하나씩 읽지는 않을 것입니다, 아닙니까? 여기 우리의 영웅, WHERE 절이 나타납니다! WHERE 절은 데이터베이스에서 원하는 것을 정확히 찾아내는 데 도와주는 마법의 필터입니다.
WHERE 절은 우리가 테이블에서 원하는 행을 검색하기 위한 조건을 지정할 수 있게 해주는 매우 강력한 도구입니다. 시간을 절약하고 데이터베이스 쿼리를 훨씬 효율적으로 만들 수 있습니다.
문법: WHERE 절의 블루프린트
이제 WHERE 절의 기본 문법을 살펴보겠습니다:
SELECT column1, column2, ...
FROM table_name
WHERE condition;
처음에는 조금 두려울 수 있지만, 이를 요리 레시피라고 생각해 보세요:
- SELECT: 원하는 재료(열)를 선택합니다.
- FROM: 사용할 책(테이블)을 고릅니다.
- WHERE: 식사 제한 사항(조건)을 지정합니다.
예제: WHERE 절을 생생하게 만들기
예제 1: 기본 비교
간단한 예제로 시작해 보겠습니다. students
라는 테이블이 있고, id
, name
, age
열이 있습니다. 18세인 모든 학생을 찾고 싶습니다.
SELECT name
FROM students
WHERE age = 18;
이 쿼리는 정확히 18세인 모든 학생의 이름을 반환합니다. 여기서 =
기호는 "정확히 같다"는 의미입니다.
예제 2: 연산자 사용
WHERE 절은 단순한 평등성에 제한되지 않습니다. 더 복잡한 조건을 만들기 위해 다양한 연산자를 사용할 수 있습니다. 20세 이상인 모든 학생을 찾아보겠습니다:
SELECT name, age
FROM students
WHERE age > 20;
이 쿼리는 20세 이상인 모든 학생의 이름과 나이를 반환합니다. >
연산자는 "보다 크다"는 의미입니다.
예제 3: AND를 사용한 여러 조건
20세 이상이고 id가 100보다 작은 학생을 찾고 싶다면 어떻게 할까요? AND 연산자를 사용할 수 있습니다:
SELECT name, age, id
FROM students
WHERE age > 20 AND id < 100;
이 쿼리는 두 조건을 모두 만족하는 학생의 이름, 나이, id를 반환합니다.
예제 4: OR를 사용한 대체 조건
때로는 두 조건 중 하나를 만족하는 행을 찾고 싶을 수 있습니다. 18세인 학생이나 id가 42인 학생을 찾아보겠습니다:
SELECT name, age, id
FROM students
WHERE age = 18 OR id = 42;
이 쿼리는 18세인 학생이나 id가 42인 학생(또는 둘 다)을 반환합니다.
예제 5: 텍스트 데이터 작업
WHERE 절은 숫자뿐만 아니라 텍스트 데이터에도 사용할 수 있습니다. 'A'로 시작하는 모든 학생의 이름을 찾아보겠습니다:
SELECT name
FROM students
WHERE name LIKE 'A%';
LIKE
연산자는 패턴 매칭을 허용합니다. %
는 임의의 문자열을 매칭합니다.
예제 6: IN을 사용한 여러 값을 필터링
18, 19, 20세인 학생들을 찾고 싶다면 어떻게 할까요? 긴 OR 문장을 작성하는 대신 IN 연산자를 사용할 수 있습니다:
SELECT name, age
FROM students
WHERE age IN (18, 19, 20);
이 쿼리는 18, 19, 20세인 모든 학생을 반환합니다.
예제 7: 날짜 데이터 작업
PostgreSQL은 WHERE 절에서 날짜를 작업할 수도 있습니다. students
테이블에 enrollment_date
열이 있다고 가정해 봅시다:
SELECT name, enrollment_date
FROM students
WHERE enrollment_date > '2023-01-01';
이 쿼리는 2023년 1월 1일 이후에 등록한 모든 학생을 반환합니다.
일반 WHERE 절 연산자
WHERE 절에서 자주 사용되는 연산자 목록을 아래에 제공합니다:
연산자 | 설명 | 예제 |
---|---|---|
= | 동일 | WHERE age = 18 |
> | 보다 크다 | WHERE age > 20 |
< | 작다 | WHERE id < 100 |
>= | 보다 크거나 같다 | WHERE age >= 18 |
<= | 작거나 같다 | WHERE id <= 1000 |
<> or != | 다르다 | WHERE age <> 25 |
AND | 논리 AND | WHERE age > 20 AND id < 100 |
OR | 논리 OR | WHERE age = 18 OR id = 42 |
IN | 목록 중에 일치 | WHERE age IN (18, 19, 20) |
LIKE | 패턴 매칭 | WHERE name LIKE 'A%' |
BETWEEN | 범위 사이 | WHERE age BETWEEN 18 AND 25 |
IS NULL | NULL 값 | WHERE phone IS NULL |
결론: 새로운 슈퍼파워
축하합니다! 여러분은 PostgreSQL 여정에서 새로운 슈퍼파워를 풀어냈습니다. WHERE 절은 데이터를 필터링하고 정확히 찾는 데 도움을 주는 신뢰할 수 있는 동반자입니다. 연습이 완벽을 이루는 열쇠이므로, 다양한 조건과 연산자를 실험해 보지 마세요.
이제 데이터의 세계에서 확대镜을 사용하는 것처럼, 필요한 정보를 정확히 찾을 수 있는 도구를 손에 얻었습니다.
계속 탐구하고, 쿼리를 작성하며, 데이터베이스를 즐기세요. 다음에 만날 때까지, 행복한 코딩을 기원합니다!
Credits: Image by storyset