hyeonga_code
Database_11_데이터 제한 및 관리_비교 조건 연산자 본문
-- 기타 SQL 비교 조건 연산자
-- BETWEEN 'A' AND 'B' : A와 B의 값 사이
-- IN(데이터 목록) : 괄호 안의 값 목록 중 하나와 일치
-- LIKE : 문자 패턴이 일치
-- IS NULL : 널 값
-- BETWEEN 'A' AND 'B'
-- 조건을 사사용하여 값의 범위에 따라 행을 출력합니다.
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE salary BETWEEN 6000 AND 9000;
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE hire_date BETWEEN '2001/01/01' AND '2010/12/01';
/*
EM_ID LAST_NAME SALARY HIRE_DATE
---------------------------------------------------------------------
103 Hunold 9000 05/01/03
...
206 Gietz 8300 09/06/07
*/
-- IN(데이터 목록)
-- 데이터 값이 있는지 확인할 수 있습니다.
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE department_id IN(60,80);
/*
EM_ID LAST_NAME SALARY HIRE_DATE
----------------------------------------------------------------------
103 Hunold 9000 05/01/03
104 Ernst 6000 06/05/21
107 Lorentz 4200 14/02/07
149 Zlotkey 10500 15/01/29
174 Abel 11000 11/05/11
176 Taylor 8600 13/03/24
*/
-- LIKE
-- 유효한 검색 문자열 값인 대체 문자를 사용하여 검색할 수 있습니다.
-- 검색 문자열은 두 가지 기호를 사용하여 구성합니다.
-- % : 문자가 오지 않거나 여러 개의 문자가 올 수 있습니다.
-- _ : 한 개당 하나의 문자가 올 수 있습니다.
-- 이름이 K로 시작하는 직원 정보
SELECT employee_id, last_name, salary, hire_date, department_id
FROM employees
WHERE last_name LIKE 'K%';
/*
EM_ID LAST_NAME SALARY HIRE_DATE DP_ID
------------------------------------------------------------------------------------
100 King 24000 02/06/17 90
101 Kochhar 17000 04/09/21 90
*/
-- 이름이 n으로 끝나는 직원 정보
SELECT employee_id, last_name, salary, hire_date, department_id
FROM employees
WHERE last_name LIKE '%n';
/*
EM_ID LAST_NAME SALARY HIRE_DATE DP_ID
---------------------------------------------------------------------------------
102 De Haan 17000 08/01/13 90
200 Whalen 4400 02/09/17 10
201 Hartstein 13000 11/02/17 20
*/
-- 이름의 두 번째 문자가 a인 직원 정보
SELECT employee_id, last_name, salary, hire_date, department_id
FROM employees
WHERE last_name LIKE '_a%';
/*
EM_ID LAST_NAME SALARY HIRE_DATE DP_ID
---------------------------------------------------------------------------------
141 Rajs 3500 10/10/17 50
142 Davies 3100 12/01/29 50
143 Matos 2600 13/03/15 50
144 Vargas 2500 13/07/09 50
176 Taylor 8600 13/03/24 80
201 Hartstein 13000 11/02/17 20
202 Fay 6000 12/08/17 20
*/
-- 성이 4글자인 직원 정보
SELECT employee_id, last_name, salary, hire_date, department_id
FROM employees
WHERE last_name LIKE '____';
/*
EM_ID LAST_NAME SALARY HIRE_DATE DP_ID
---------------------------------------------------------------------------------
100 King 24000 02/06/17 90
141 Rajs 3500 10/10/17 50
174 Abel 11000 11/05/11 80
*/
-- 데이터의 _ / %를 검색하고 싶은 경우 예외처리를 해야합니다.
-- '\_ \%' ESCAPE '\'
-- ESCAPE 뒤에 지정한 기호의 바로 뒤에 나오는 문자는 데이터입니다.
SELECT employee_id, last_name, salary, hire_date, job_id
FROM employees
WHERE job_id LIKE 'IT\_%' ESCAPE '\';
/*
EM_ID LAST_NAME SALARY HIRE_DATE DP_ID
---------------------------------------------------------------------------------
103 Hunold 9000 05/01/03 IT_PROG
104 Ernst 6000 06/05/21 IT_PROG
107 Lorentz 4200 14/02/07 IT_PROG
*/
-- IS NULL
-- 널 값은 어떠한 값도 저장하지 않은 상태이므로 비교연산자를 사용할 수 없습니다.
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id=NULL;
SELECT employee_id, last_name, salary, manager_id
FROM employees
WHERE manager_id IS NULL;
/*
EM_ID LAST_NAME SALARY M_ID
---------------------------------------------------------------------------------
100 King 24000 (null)
*/
'Oracle Database' 카테고리의 다른 글
Database_13_데이터 제한 및 관리_SET, UNION, UNION ALL, INTERSECT, MINUS, ORDER BY (0) | 2023.07.16 |
---|---|
Database_12_데이터 제한 및 관리_논리 조건 연산자 (0) | 2023.07.15 |
Database_10_데이터 제한 및 정렬_WHERE 절 (0) | 2023.07.13 |
Database_09_오라클 데이터베이스 sqldeveloper SQL 자격 검증 시험 대비 실습 환경 설정 (0) | 2023.07.11 |
Database_08_오라클 데이터베이스 sqldeveloper 인사관리 환경 설정 (0) | 2023.07.10 |