본문 바로가기

[DB]DataBase/[SQL]

[SQLD] WHERE절

728x90
반응형

WHERE절

  • 테이블에 있는 데이터 중 원하는 조건에 맞는 데이터만 조회하고 싶은 경우 사용
    • 엑셀의 필터 기능과 유사
  • 여러 조건을 동시에 전달 가능
    • AND, OR로 조건 연결
  • NULL 조회 시 IS NULL / IS NOT NULL 연산자 사용
    • = 연산자로 조회 불가
  • 연산자를 사용하여 다양한 표현 가능
  • 조건 전달 시 비교 대상의 데이터 타입이 일치하는 것이 좋음
    • ex) 부서번호 컬럼의 데이터 타입은 숫자인데 문자 상수로 비교할 경우 성능 이슈가 발생할 수 있음

문법

WHERE절 문법
연산자 종류

IN 연산자

  • 포함 연산자로 여러 상수와 일치하는 조건 전달 시 사용
  • 상수를 괄호로 묶어서 동시에 전달 가능
    • 문자와 날짜의 경우 반드시 홀따옴표와 함께 사용
  • IN 연산자를 사용하면 조건 대상과 연산자의 반복을 줄일 수 있음

BETWEEN A AND B 연산자

  • A 보다 크거나 같고 B 보다 작거나 같은 조건
  • A와 B에는 범위로 묶을 상수 값 전달
    • 문자, 숫자, 날짜 모두 전달 가능
  • 반드시 A가 B보다 작아야 함
    • A가 B보다 더 큰 값일 경우 아무것도 조회되지 않음

LIKE 연산자

  • 정확하게 일치하지 않아도 되는 패턴 조건
  • %와 _가 함께 사용됨
    • %: 자리수 제한 없는 모든이라는 뜻
    • _: _하나 당 한 자리수를 의미하며, 모든 값을 표현함

LIKE 연산자 사용 예시

  • ENAME LIKE 'S%' : 이름이 S 로 시작하는 
  • ENAME LIKE '%S%' : 이름에 S 를 포함하는 
  • ENAME LIKE '%S' : 이름이 S 로 끝나는 
  • ENAME LIKE '_S%' : 이름의 두 번째 글자가 S 인(맨 앞이 _인것 주의! %이면 자리수 상관없이 S 를 포함하기만 
    하면 됨) 
  • ENAME LIKE '__S__' : 이름의 가운데 글자가 S 이며 이름의 길이가 5 글자인 

NOT 연산자

  • 조건 결과의 여집합을 출력하는 연산자
  • NOT 뒤에 오는 연산 결과의 여집합 출력
  • 주로 NOT IN, NOT BETWEEN A AND B, NOT LIKE, NOT NULL과 같이 사용
반응형

'[DB]DataBase > [SQL]' 카테고리의 다른 글

[SQLD] ORDER BY절  (1) 2024.04.27
[SQLD] GROUP BY, HAVING절  (0) 2024.04.27
[SQLD] 함수  (0) 2024.04.23
[SQLD] SELECT 문  (0) 2024.03.11
[SQLD] 관계형 데이터베이스 개요  (0) 2024.03.10