SQL의 WHERE 절, 조건부 조회
SQL의 WHERE 절, 조건부 조회
Database
SQL의 WHERE 절, 조건부 조회
SQL의 WHERE
절: 조건부 조회의 시작
데이터베이스에서 필요한 데이터만 선택하려면 조건을 지정해야 합니다. SQL에서 이 조건을 명시할 때 사용하는 것이 바로 WHERE
절입니다. WHERE
은 테이블에서 특정 조건을 만족하는 데이터만 조회하거나 수정, 삭제할 때 사용됩니다.
테스트 데이터 준비하기
다음은 예제를 실행하기 위한 기본 데이터입니다. employees
라는 테이블을 생성하고 데이터를 삽입합니다.
-- 테이블 생성
CREATE TABLE employees (
id INT PRIMARY KEY,
VARCHAR(50),
name VARCHAR(50),
department INT,
salary VARCHAR(15)
phone
);
-- 데이터 삽입
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 |
---|
이영희 |
최수진 |