SQL의 WHERE 절, 조건부 조회

SQL의 WHERE 절, 조건부 조회

Database
SQL의 WHERE 절, 조건부 조회
Author

gabriel yang

Published

December 9, 2024

SQL의 WHERE 절: 조건부 조회의 시작

데이터베이스에서 필요한 데이터만 선택하려면 조건을 지정해야 합니다. SQL에서 이 조건을 명시할 때 사용하는 것이 바로 WHERE 절입니다. WHERE은 테이블에서 특정 조건을 만족하는 데이터만 조회하거나 수정, 삭제할 때 사용됩니다.

테스트 데이터 준비하기

다음은 예제를 실행하기 위한 기본 데이터입니다. employees라는 테이블을 생성하고 데이터를 삽입합니다.

-- 테이블 생성
CREATE TABLE employees (
    id INT PRIMARY KEY,
    name VARCHAR(50),
    department VARCHAR(50),
    salary INT,
    phone VARCHAR(15)
);

-- 데이터 삽입
INSERT INTO employees (id, name, department, salary, phone)
VALUES
(1, '홍길동', '영업', 4500, '010-1234-5678'),
(2, '김철수', '마케팅', 5200, '010-2345-6789'),
(3, '이영희', '기술', 6000, NULL),
(4, '박민수', '영업', 3000, '010-3456-7890'),
(5, '최수진', '인사', 2800, NULL);

결과:

id name department salary phone
1 홍길동 영업 4500 010-1234-5678
2 김철수 마케팅 5200 010-2345-6789
3 이영희 기술 6000
4 박민수 영업 3000 010-3456-7890
5 최수진 인사 2800

주요 사용 예제와 결과

1. 특정 값과 일치하는 데이터 조회

쿼리: 이름이 “홍길동”인 직원 조회

SELECT *
FROM employees
WHERE name = '홍길동';

결과:

id name department salary phone
1 홍길동 영업 4500 010-1234-5678

2. 숫자 조건 활용

쿼리: 연봉이 5000 이상인 직원 조회

SELECT name, salary
FROM employees
WHERE salary >= 5000;

결과:

name salary
김철수 5200
이영희 6000

3. 여러 조건 결합

  • AND: 두 조건을 모두 만족해야 함.
  • OR: 하나의 조건만 만족해도 됨.

쿼리: 부서가 ’영업’이고 연봉이 3000 이상인 직원 조회

SELECT name, department, salary
FROM employees
WHERE department = '영업' AND salary >= 3000;

결과:

name department salary
홍길동 영업 4500
박민수 영업 3000

쿼리: 부서가 ’영업’이거나 ’마케팅’인 직원 조회

SELECT name, department
FROM employees
WHERE department = '영업' OR department = '마케팅';

결과:

name department
홍길동 영업
김철수 마케팅
박민수 영업

4. 범위 조건

쿼리: 연봉이 3000에서 5000 사이인 직원 조회

SELECT name, salary
FROM employees
WHERE salary BETWEEN 3000 AND 5000;

결과:

name salary
홍길동 4500
박민수 3000

5. 특정 값이 목록에 포함되어 있는지 확인

쿼리: 부서가 ‘영업’, ‘마케팅’, ‘기술’ 중 하나인 직원 조회

SELECT name, department
FROM employees
WHERE department IN ('영업', '마케팅', '기술');

결과:

name department
홍길동 영업
김철수 마케팅
이영희 기술
박민수 영업

6. 부분 일치 검색

  • LIKE: 특정 패턴과 일치하는 데이터를 검색할 때 사용.
    • %: 0개 이상의 문자
    • _: 1개의 문자

쿼리: 이름이 ’김’으로 시작하는 직원 조회

SELECT name
FROM employees
WHERE name LIKE '김%';

결과:

name
김철수

쿼리: 이름의 두 번째 글자가 ’수’인 직원 조회

SELECT name
FROM employees
WHERE name LIKE '_수%';

결과:

name
최수진

7. NULL 값 처리

NULL 값은 따로 처리해야 합니다. 비교 연산자(=, !=)로는 NULL을 정확히 확인할 수 없습니다.

쿼리: 전화번호가 등록되지 않은 직원 조회

SELECT name
FROM employees
WHERE phone IS NULL;

결과:

name
이영희
최수진

카테고리 다른 글

Date Title Author
Jan 1, 3000 전체 카테고리 gabriel yang
Dec 8, 2024 SQL 기본 SELECT 문법 이해하기 gabriel yang
Dec 7, 2024 SQLite 설치 및 테스트 데이터를 생성 gabriel yang
Dec 1, 2024 SQL에서 VIEW를 이용해 테이블을 안전하게 검색하기 gabriel yang
Sep 21, 2024 WSL에서 docker-compose 사용하기 gabriel yang
Aug 28, 2024 SQLite 데이터베이스 생성하기 gabriel yang
Aug 27, 2024 액셀 데이터를 SQL로 저장하기 gabriel yang
Jan 5, 2024 SQL 정렬 명령 order by gabriel yang
Dec 6, 2023 MySQL 도커로 설치하고 테스트 DB 사용하기 gabriel yang
No matching items
Back to BLOG LIST