SQL

[SQL] WHERE 절

beginner-in-coding 2025. 2. 13. 18:32

01. WHERE절

  • 사용: 테이블의 데이터 중 원하는 조건에 맞는 데이터만 조회하고 싶을 경우
    • 엑셀의 필터
  • 여러 조건 동시 전달 가능
    • AND와 OR
  • NULL 조회 방법
    • 연산자로 조회 불가
    • NULL인 경우: IS NULL
    • NULL이 아닌 경우: IS NOT NULL
  • 연산자를 사용하여 다양한 표현 가능
  • 조건 전달 시 비교 대상의 데이터타입 일치하는 것이 좋음 (성능 문제)
연산자 종류 설명
= 같은 조건 검색
!=, <> 같지 않은 조건 검색
> 큰 조건 검색 (초과)
>= 크거나 같은 조건 검색 (이상)
< 작은 조건 검색 (미만)
<= 작거나 같은 조건 검색 (이하)
BETWEEN a AND b a 이상 b 이하 사이의 범위 값을 모두 검색
IN(a, b, c) a이거나, b이거나, c인 조건 검색
LIKE 특정 패턴을 가진 조건을 검색
IS NULL / IS NOT NULL NULL값을 검색 / NULL이 아닌 값을 검색
A AND B A 조건과 B조건 모두 만족해야 검색
A OR B A 조건 또는 B조건 중 한가지라도 만족하면 검색
NOT A A 조건이 아닌 경우 검색

   * 문자나 날자 상수 표현: 반드시 홑따옴표 사용(')

   * ORACLE: 문자 상수의 경우, 대소문자 구분 O

   * SQL Server: (기본) 문자 상수의 대소문자 구분 X


02. IN 연산자

  • 포함 연산자
  • 여러 상수와 일치하는 조건 전달 시 사용
  • 상수를 괄호()로 묶어서 동시에 전달(문자와 날짜 상수의 경우: 반드시 홑따옴표 포함)
  • OR을 이용해서 조건을 나열한 것과 같음
SELECT name, age, cal, address
FROM ex
WHERE name = 'name1' OR name = 'name2' OR name = 'name3';  --OR을 이용한 검색: 불편
SELECT name, age, cal, address
FROM ex
WHERE name IN ('name1', 'name2', 'name3');  --IN을 이용한 검색: 반복을 줄임

03. BETWEEN A AND B 연산자

  • A <= Target <= B 범위 내에 있는 조건을 만족
  • A, B: 범위로 묶을 수 있는 상수값 전달 (문자, 숫자, 날짜 가능)
  • 반드시 A < B
  • AND를 이용해서 조건을 나열한 것과 같음
SELECT name, age, cal, address
FROM ex
WHERE age >= 20 AND age <= 30;  --age가 반복됨
SELECT name, age, cal, address
FROM ex
WHERE age BETWEEN 20 AND 30;  --age 반복 사용 해결

04. LIKE 연산자

  • 정확하게 일치하지 않아도 패턴 조건 전달 시 사용
  • 사용 방법
    • %: 자리수 제한 없는 모든 자리라는 의미
    • _: _하나 당 한 자리수 의미하며 모든 값을 표현

05. NOT 연산자

  • 조건 결과의 반대집합
    • 여집합을 출력하는 연산자
  • NOT 뒤에 오는 연산 결과의 반대 집합 출력
  • 주로 사용
    • NOT IN: IN 안에 포함되지 않음
    • NOT BETWEEN A AND B: A와 B사이의 값이 아님
    • NOT LIKE: 조건이 충족되지 않음
    • NOT NULL: 비어있지 않음

'SQL' 카테고리의 다른 글

[SQL] ORDER BY 절  (0) 2025.02.14
[SQL] GROUP BY 절, HAVING 절  (0) 2025.02.14
[SQL] SQL 함수  (1) 2025.02.13
[SQL] DQL (Data Query Language)  (0) 2025.02.13
[SQL] SQL 명령어  (1) 2025.02.13