본문 바로가기
🖊️Certificate/📌SQLD

[SQLD] 2과목 - 1장) 4절. WHERE 절

by 빛나고요 2024. 3. 7.
BIG

2과목. SQL 기본 및 활용
1장. SQL 기본
4절. WHERE 절

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

# 연산자의 종류
=: 같은 조건을 검색
!=, <>: 같지 않은 조건을 검색
>: 큰 조건을 검색
>=: 크거나 같은 조건을 검색
<: 작은 조건 검색
<= 작거나 같은 조건 검색
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은 문자 상수의 경우 대소문자를 구분함
    - MSSQL은 기본적으로 문자상수의 대소문자를 구분하지 않음

# IN 연산자
- 포함연산자로 여러 상수와 일치하는 조건 전달 시 사용
- 상수를 괄호로 묶어서 동시에 전달(문자와 날짜 상수의 경우 반드시 홑따옴표와 같이씀)

# BETWEEN A AND B 연산자
- A 보다 크거나 같고 B보다 작거나 같은 조건을 만족
- A와 B에는 범위로 묶을 상수값 전달(문자, 숫자, 날짜 모두 전달 가능)
- 반드시 A가 B보다 작아야 함(반대로 작성 시 아무것도 출력되지 X)

# LIKE 연산자
- 정확하게 일치하지 않아도 되는 패턴 조건 전달 시 사용
- %와 _와 함께 사용됨
1) %: ’자리수 제한 없는 모든‘ 이라는 의미
2) _  : ‘하나 당 한자리수’를 의미하며 모든 값을 표현함

- 예시
  · 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 로 사용

댓글