조건연산자는 WHERE절 처럼 조건절인 곳에서만 사용이 가능하다
BETWEEN
조건의 범위를 검색
-- department_id의 2500~3500인 값의 행만 가져온다
SELECT employee_id, last_name, job_id, depratment_id
FROM employees
WHERE department_id BETWEEN 2500 AND 3500;
-- hire_date의 2019년1월1일 부터 2020년 2월 12일 까지의 날짜를 가진 행만 가져온다
SELECT employee_id, last_name, job_id, hire_date
FROM employees
WHERE hire_date BETWEEN '2019-01-01' AND '2020-02-12';
IN
하나의 값이라도 일치하는 것을 찾아줌
-- manager_id가 100, 101, 201 중에 하나라도 있다면 그 행을 가져온다
SELECT employee_id, last_name, job_id, depratment_id
FROM employees
WHERE manager_id IN (100, 101, 201);
-- manager_name이 'kals'와 'an'인 값을 제외한 행들을 가져온다
SELECT employee_id, last_name, job_id, manager_name
FROM employees
WHERE manager_name NOT IN ('kals', 'an');
LIKE
패턴으로 검색하는 문자열 찾기
- 임의의 하나의 문자 = _
- 해당하는 문자 = 알파벳 또는 문자
- 무슨 값이 있는 지 모를 때 = %
-- department_id의 문자열 값이 정확히 두자리인 행만 가져옴
SELECT depratment_name
FROM departments
WHERE department_name LIKE '__';
-- department_id의 문자열 값의 5번째 자리가 '7'인 행만 가져옴 (정확히 5글자인 값 중에서만)
SELECT depratment_name
FROM departments
WHERE department_name LIKE '____7';
-- department_id의 문자열 값의 3번째 자리가 'a'인 행만 가져옴 (%로 인한 길이 제약 사라짐)
SELECT depratment_name
FROM departments
WHERE department_name LIKE '__a%';
-- department_id의 마지막 문자가 'x'인 행만 가져옴
SELECT depratment_name
FROM departments
WHERE department_name LIKE '%x';
-- department_id의 열에 길이 제약 없이 'kals' 문자열이 포함된 행을 가져옴
SELECT depratment_name
FROM departments
WHERE department_name LIKE '%kals%';
IS NULL 또는 IS NOT NULL
데이터에 NULL 값이 있는 지 없는 지 검사
-- department_name에 NULL 값이 들어있는 행만 가져옴
SELECT depratment_name
FROM departments
WHERE department_name IS NULL;
-- department_name에 NULL이 아닌 값의 행들만 가져옴
SELECT depratment_name
FROM departments
WHERE department_name NOT IS NULL;
'BackEnd > DataBase - Oracle' 카테고리의 다른 글
[Oracle] 정렬하는 ORDER BY절 (0) | 2020.02.12 |
---|---|
[Oracle] 구문 실행 순서 (0) | 2020.02.12 |
[Oracle] WHERE 구문을 이용하여 조건식 이용하기 (0) | 2020.01.29 |
[Oracle] 중복을 제거해주는 DISTINCT 키워드 (0) | 2020.01.29 |
[Oracle] 연결 연산자와 리터럴 문자 (0) | 2020.01.29 |