자격증/SQLD
[개미의 걸음 SQLD 2과목] DML① SELECT문의 WHERE절과 주요연산자
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