상세 컨텐츠

본문 제목

[개미의 걸음 SQLD 2과목] DML① SELECT문의 WHERE절과 주요연산자

자격증/SQLD

by IT개미 데이터 2020. 12. 24. 07:07

본문

728x90

WHERE절

SELECT * FROM 테이블명 WHERE 조건;

원하는 자료만을 검색하기 위해 사용하는 조건절

  • 일반적으로 연산자와 함께 사용하여 특정 데이터만 조회
  • 여러 개의 테이블에서 데이터를 가지고 올 때, 다른 테이블에서만 칼럼명 앞에 "테이블명." 기록
       ex> SELECT A.APPLE, B.BANANA, CHERRY
                       FROM A, B, C
                       WHERE CHERRY <= 100
                                 AND A.PK=B.PK
                                 AND A.PK=C.PK;
  • WHERE 1=1로 시작하는 조건절은 참이라는 의미를 가짐
        → ERROR의 영향을 줄이기 위해 사용
        → 동적 쿼리를 사용해 조건문 생성시 조건문을 줄이기 위해 사용
  • WHERE 1=2로 시작하는 조건절은 거짓이라는 의미를 가짐
        → 대표적인 공집합[데이터가 한 건도 없는 경우]을 발생시키는 쿼리

2020/12/17 - [자격증/SQLD] - [개미의 걸음 SQLD 2과목] SQL기초 ① 연산자

 

 

주요 연산자1. IS NULL & IS NOT NULL

IS NULL
 특정 열 또는 연산의 결과 값이
NULL인 데이터만 조회
COMM IS NULL
IS NOT NULL
특정 열 또는 연산의 결과 값이
NULL이 아닌 데이터만 조회
COMM IS NOT NULL
  • 비어있는 데이터 값을 찾을 때 사용
        → NULL은 값이 0이라는 의미가 아니라 데이터의 값이 완전히 '비어있는' 상태를 말함!
NULL의 의미
값이 존재하지 않음
해당 사항 없음
노출할 수 없는 값
확정되지 않은 값

# NULL의 AND, OR연산

더보기
AND 연산 TRUE FALSE NULL
TRUE TRUE FALSE NULL
FALSE FALSE FALSE FALSE
NULL NULL FALSE NULL
OR 연산 TRUE FALSE NULL
TRUE TRUE TRUE TRUE
FALSE TRUE FALSE NULL
NULL TRUE NULL NULL

 

NULL관련 함수

NVL 함수 NULL값을 다른 값으로 바꾸는 함수
    ex> NVL(칼럼명, 0)  →  NULL값을 0으로 반환
NVL2 함수 NVL함수와 DECODE함수를 하나로 만든 함수
    ex> NVL2(칼럼명,1,0)  →  NULL이 아니면 1, NULL이면 0을 반환
NULLIF 함수 두 개의 값이 같으면 NULL을, 같지 않으면 첫 번째 값을 반환
    ex> NULLIF(value1, value2)  →  value1과 value2가 같으면 NULL을 같지 않으면 VALUE1 반환
COALESCE 함수 NULL이 아닌 최초의 인자 값을 반환
    ex> COALESCE(value1, value2, value3, ...)   value1부터 NULL값이 아닌 최초의 인자를 반환

 

주요 연산자2. LIKE

LIKE
일부 문자열이 포함된 데이터 조회
와일드 카드[_, %]가 있음
JOB LIKE '_M%'
NOT LIKE
일부 문자열이 포함되지 않은 데이터 조회
JOBNOT LIKE '_C%'
  • 와일드카드를 사용해 데이터를 조회할 때 사용

 

와일드 카드

특정 문자 또는 문자열을 대체하거나 문자열 데이터의 패턴을 표시하는 특수문자

  • LIKE연산자와 함께 사용할 수 있는 연산자에는 _와 %가 있다.
  • _와 %가 데이터에 포함될 경우에는 ESCAPE절을 사용
와일드 카드 의    미
_ 어떤 값이든 상관없이 한 개의 문자 데이터가 들어감을 의미
% 길이와 상관없이(문자 없는 경우도 포함) 모든 문자 데이터가 들어감을 의미

# ESCAPE 문 사용

# ESCAPE 문자를 지정하는 방식은 실무에서 자주 사용하지 않음
# ESCAPE문을 사용해 _를 포함한 데이터를 찾는 예제
SELECT * FROM 테이블명
WHERE 컬럼명 LIKE 'A\_A%' ESCAPE '\';
#### ESCAPE문자 \외의 다른 문자들도 ESCAPE절에서 지정할 수 있음

 

주요 연산자3. IN

열이름 IN (조회할 열의 데이터들)
열에 있는 데이터들과 같은 데이터 출력
["="의 경우, 하나씩 지정한 후 OR로 연결]
JOB IN ('MANAGER', 'CLERK')
열이름 NOT IN (조회할 열의 데이터들) 열에 있는 데이터들과 다른 데이터 출력
['!=', '<>', '^='는 하나씩 지정 뒤 AND 연결]
JOB NOT IN ('MANAGER', 'CLERK')
  • IN은 하나의 조건만 만족해도 조회 가능[OR과 유사]

 

주요 연산자4. BETWEEN

일정 범위를 갖는 데이터를 조회할 때 사용하는 연산자

연산자 설명
열이름 BETWEEN A AND B 해당 열에서 A과 B 사이에 속하는 데이터를 조회할 때 사용
열이름 NOT BETWEEN A AND B 해당 열에서 A과 B 사이에 속하지 않는 데이터를 조회할 때 사용

※ "숫자 BETWEEN 칼럼명1 AND 칼럼명2"는 해당 숫자가 칼럼명1의 값과 칼럼명2의 값 사이에 있다는 의미 

# BETWEEN, NOT BETWEEN

 

 

 

 

 

728x90

관련글 더보기

댓글 영역