CodeGym /행동 /SQL SELF /비교 연산자(=, >, <, <>)로 데이터 필터링하기

비교 연산자(=, >, <, <>)로 데이터 필터링하기

SQL SELF
레벨 2 , 레슨 1
사용 가능

자, 이제 우리 SELECT 명령어를 어떻게 쓰는지 이미 알고 있지. 적어도 데이터베이스에서 데이터를 뽑아오고, 필요한 컬럼만 골라서, 쓸모 있는 정보로 바꾸는 쿼리를 만드는 법은 배웠어. 이제 우리 마법 팔레트에 "필터"를 좀 추가해보자. 맞아, 오늘은 데이터 필터링에 대해 얘기할 거고, =, >, <, <> 같은 비교 연산자를 쓸 거야.

큰 테이블을 다룰 때, 사실 모든 데이터를 다 볼 필요는 없잖아(혼돈에 빠지고 싶지 않다면 말이지). 필요한 행만 뽑으려면 SQL에서 WHERE라는 키워드를 써. 이건 각 행이 쿼리 결과에 포함되려면 어떤 조건을 만족해야 하는지 정하는 거야. 그리고 이 조건에 비교 연산자를 쓰는 거지.

WHERE로 필터링하는 문법

SELECT 컬럼1, 컬럼2
FROM 테이블
WHERE 조건;

구조는 간단해: FROM 뒤에 WHERE를 붙이고, 행이 만족해야 할 조건을 적는 거야.

예시로 students 테이블에서 데이터 뽑는 걸 보자:

SELECT name, age
FROM students
WHERE age > 18;

이 쿼리는 18살 넘는 학생들(이름과 나이)만 골라줘. 쉽지? 이제 비교 연산자 세계로 들어가보자.

기본 비교 연산자

SQL에는 데이터를 원하는 대로 필터링할 수 있게 도와주는 비교 연산자가 몇 개 있어. 수학에서 본 적 있겠지만, SQL에서는 조금 다를 수도 있으니 정리해볼게. 자주 쓰는 것들 리스트야:

  1. = — 같다.
  2. <> — 같지 않다(어떤 DBMS에서는 !=도 되지만, <>가 SQL 표준이니까 이걸 쓰는 게 좋아).
  3. > — 크다.
  4. < — 작다.
  5. >= — 크거나 같다.
  6. <= — 작거나 같다.

비교 연산자 표

연산자 의미 예시 결과
= 같다 age = 20 나이가 20인 행만 반환
<> 같지 않다 age <> 20 나이가 20이 아닌 행만 반환
> 크다 age > 18 나이가 18보다 큰 행만 반환
< 작다 age < 18 나이가 18보다 작은 행만 반환
>= 크거나 같다 age >= 18 나이가 18 또는 그 이상인 행만 반환
<= 작거나 같다 age <= 18 나이가 18 또는 그 이하인 행만 반환

비교 연산자 사용 예시

예시 1: 20살 넘는 학생 뽑기

우리 테이블은 이래:

id name age
1 Alex Lin 22
2 Anna Song 19
3 Otto Art 21
SELECT name, age
FROM students
WHERE age > 20;

여기서 age > 20 조건을 줘서, 20살 넘는 학생만 뽑는 거야. 테이블에 19살 학생이 있어도, 아쉽지만 결과에 안 나와.

결과는 이렇게 나와:

name age
Alex Lin 22
Otto Art 21

Anna Song 학생은 19살이라 결과에 없어.

예시 2: 50,000 이상 급여 받는 직원 뽑기

우리 employees 테이블은 이래:

first_name last_name salary
Julia Kim 48000
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

SQL 쿼리는 이거야:

SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 50000;

이 쿼리는 급여가 50,000과 같거나 그 이상인 직원만 뽑아줘. 같아도 포함이야!

first_name last_name salary
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

예시 3: 가격이 100 미만인 상품 뽑기

product_name price
USB Cable 85
Wireless Mouse 150
Notebook 60
Mechanical Pencil 45
SELECT product_name, price
FROM products
WHERE price < 100;

전자상점이라면, 이 쿼리로 100 미만인 상품만 뽑을 수 있어(예를 들어 "99원 특가!" 같은 이벤트용으로).

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

예시 4: 특정 id를 가진 유저 제외하기

SELECT id, username
FROM users
WHERE id <> 1;

이 쿼리는 id가 1인 유저를 제외하고 모두 뽑아줘. <> 연산자는 "이 값이 아닌 애들 다 줘"라는 뜻이야.

users 테이블:

id username
1 admin
2 elena.gray
3 tom.bishop
4 aria.noble

쿼리 결과:

id username
2 elena.gray
3 tom.bishop
4 aria.noble

비교 연산자 필터링할 때 자주 하는 실수

필터링 쿼리를 처음 쓸 때 실수 많이 해. 여기서 자주 나오는 실수 몇 개 알려줄게:

문제 1: 컬럼 이름 오타

쿼리에서 컬럼 이름을 잘못 쓰면 PostgreSQL이 에러를 내. 예를 들어:

SELECT name, age
FROM students
WHERE ages > 18; -- 에러: "ages" 컬럼 없음

쿼리 쓰기 전에 컬럼 이름 정확히 확인하자.

문제 2: 비교 연산자 잘못 쓰기

초보자들이 연산자를 헷갈려서 실수할 때가 있어. 예를 들어:

SELECT name, age
FROM students
WHERE age => 18; -- 에러: 잘못된 연산자

정확한 문법은 >=이고, =>는 아니야.

문제 3: 없는 값으로 필터링하기

테이블에 없는 값으로 필터링하면 쿼리는 돌아가지만 결과가 비어 있어. 예를 들어:

SELECT name
FROM students
WHERE age = 999; -- 결과: 0행

이건 문법 에러는 아니지만, 데이터가 나올 거라 기대했다면 헷갈릴 수 있어.

실전 활용

비교 연산자로 데이터 필터링하는 건 여러 상황에서 써. 예를 들면:

  • 데이터 분석: 예를 들어, 10,000 루피 이상 쓴 고객만 뽑기.
  • 리포트: 평균 급여보다 높은 직원만 뽑기.
  • 모니터링: 최근 한 달간 활동 안 한 유저 추적하기.

SQL은 거대한 테이블에서 필요한 데이터만 빠르게 뽑을 수 있게 해주고, 비교 연산자는 그 첫걸음이야.

코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION