DBMS/Oracle SQL
DBMS 논리 연산자 AND OR NOT
따`ddah
2024. 2. 23. 23:00
1. 연산자 (Operator)
- 예시) 데이터를 조회할 때 SALARY에서 1,000원씩 빼서 조회하겠다 할 때 사용
연산자 종류 : 1. 연결 연산자 2. 산술 연산자 3. 관계 연산자 4. SQL 연산자 5. 논리 연산자 |
2. 논리 연산자
- [ AND ] [ OR ] [ NOT ]
- 피연산자 자리에 조건이 온다.
- 여러 개의 조건을 연결하거나, 조건의 결과를 반전시킬 때 사용한다.
1. AND
- [ a 조건식 AND b 조건식 ]
- a 조건과 b 조건을 전부 만족하는 행만 조회
2. OR
- [ a 조건식 OR b 조건식 ]
- a 조건과 b 조건 둘 중 하나만 만족하는 행을 조회
3. NOT
- [ NOT a 조건식 ]
- a 조건을 만족하지 않는 행만 조회
3. 논리 연산자 사용 방법
-- EMPLOYEES 테이블에서 부서가 영업부서(department_id = 80)이면서,
-- 봉급이 10,000 이상인 직원들의 이름, 봉급, 영업부서 조회
SELECT
FIRST_NAME,
SALARY,
DEPARTMENT_ID
FROM
EMPLOYEES
WHERE
DEPARTMENT_ID = 80 AND SALARY >= 10000;
- 해당 조건이 아닌 데이터를 조회할 때 (2가지 방법)
4. 전체 쿼리문
-----------------------------------------------------------------
-- 논리 연산자 : AND, OR, NOT
-----------------------------------------------------------------
-- EMPLOYEES 테이블에서 부서가 영업부서(department_id = 80)이면서,
-- 봉급이 10,000 이상인 직원들의 이름, 봉급, 영업부서 조회
SELECT
FIRST_NAME,
SALARY,
DEPARTMENT_ID
FROM
EMPLOYEES
WHERE
DEPARTMENT_ID = 80 AND SALARY >= 10000;
-- 이름이 David가 아닌 직원의 이름 조회
SELECT
FIRST_NAME
FROM
EMPLOYEES
WHERE NOT
FIRST_NAME = 'David';
-- WHERE
-- FIRST_NAME <> 'David';
-----------------------------------------------------------------
-- [실습]
-----------------------------------------------------------------
-- 1. 직원의 이름,성, 봉급 조회
-- 봉급이 10000 이상이거나 입사일이 2007년 1월 1일 이후인 직원만 조회
SELECT
FIRST_NAME,
LAST_NAME,
SALARY
FROM
EMPLOYEES
WHERE
SALARY >= 10000 OR HIRE_DATE >= '2007-01-01'
-- 2. 직원의 이름, 성, 봉급, 상사번호 조회
-- 상사번호 100 이고, 봉급이 12000이상인 직원만 조회
SELECT
FIRST_NAME,
LAST_NAME,
SALARY,
MANAGER_ID
FROM
EMPLOYEES
WHERE
MANAGER_ID = 100 AND SALARY >= 12000
728x90