hyeonga_code

Database_12_데이터 제한 및 관리_논리 조건 연산자 본문

Oracle Database

Database_12_데이터 제한 및 관리_논리 조건 연산자

hyeonga 2023. 7. 15. 05:59
반응형

  -- 논리 조건
        -- AND : 구성 요소 조건이 모두 참인 경우 참을 반환합니다.
        -- OR : 구성 요소 조건 중 하나라도 참인 경우 참을 반환합니다.
        -- NOT : 조건이 거짓이면 참을 반환합니다.
        
        -- AND
            -- 이름이 K로 시작하고 a가 들어가는 직원 정보
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE last_name LIKE 'K%'
AND last_name LIKE '%a%';
    /*
    EM_ID        LAST_NAME         SALARY        HIRE_DATE
    ------------------------------------------------------------------------------
    101               Kochhar                 17000             04/09/21
    */


    
            -- 이름에 i 와 a 가 포함된 직원 정보
SELECT employee_id, last_name, salary, hire_date
FROM employees
WHERE last_name LIKE '%i%'
AND last_name LIKE '%a%';
    /*
    EM_ID        LAST_NAME         SALARY        HIRE_DATE
    ------------------------------------------------------------------------------

    142               Davies                  3100             12/01/29
    201               Hartstein             13000             11/02/17
    */


        -- OR
            -- 이름에 i나 a가 하나라도 포함된 직원 정보
SELECT employee_id, last_name, salary
FROM employees
WHERE last_name LIKE '%i%'
OR last_name LIKE '%a%';
    /*
    EM_ID        LAST_NAME   SALARY 
    ---------------------------------
    100               King                24000
    ...
    206               Gietz                 8300
    */


    
        -- AND, OR 혼합 사용
            -- K로 시작하면서 a가 들어가거나 i가 들어가는 직원 정보
SELECT employee_id, last_name
FROM employees
WHERE last_name LIKE '%i%'
OR last_name LIKE '%a%'
AND last_name LIKE 'K%';
    /*
    EM_ID  LAST_NAME  
    --------------------------------
    100         King
    101         Kochhar
    142         Davies
    201         Hartstein
    205         Higgins
    206         Gietz
    */


    
        -- 괄호로 우선 순위를 변경할 수도 있습니다.
            -- 이름에 i나 a가 들어가면서 K로 시작하는 직원 정보
SELECT employee_id, last_name
FROM employees
WHERE (last_name LIKE '%i%'
OR last_name LIKE '%a%')
AND last_name LIKE 'K%';
    /*
    EM_ID  LAST_NAME  
    --------------------------------

    100         King
    101         Kochhar
    */


    
        -- NOT
            -- 부정을 의미합니다.
SELECT employee_id, last_name, salary
FROM employees
WHERE salary NOT BETWEEN 4000 AND 16000;
    /*
    EM_ID  LAST_NAME        SALARY
    -------------------------------------------------

    100         King                       24000
    101         Kochhar                17000
    102         De Haan               17000
    141         Rajs                        3500
    142         Davies                    3100
    143         Matos                     2600
    144         Vargas                    2500
    */



SELECT employee_id id, last_name, salary
FROM employees
WHERE salary BETWEEN 4000 AND NULL;
        -- 결과가 나오지 않습니다.


        
SELECT employee_id EM_ID, last_name, department_id DP_ID
FROM employees
WHERE department_id IN (60,80,NULL);
    '''
    =   같은 의미입니다.\
    WHERE department_id=60
    OR department_id=80
    OR department_id=NULL;
    '''
    /*
    EM_ID   LAST_NAME   DP_ID
    ------------------------------------------
    103           Hunold            60
    104           Ernst               60
    107           Lorentz            60
    149           Zlotkey            80
    174           Abel                 80
    176           Taylor               80
    */



SELECT employee_id EM_ID, last_name, department_id DP_ID
FROM employees
WHERE department_id=60
OR department_id=80
OR department_id=NULL;


SELECT employee_id EM_ID, last_name, department_id DP_ID
FROM employees
WHERE department_id NOT IN (60,80,NULL);

SELECT employee_id EM_ID, last_name, department_id DP_ID
FROM employees
WHERE department_id <> 60
OR department_id <> 80
OR department_id <> NULL;

SELECT employee_id EM_ID, last_name, department_id DP_ID
FROM employees
WHERE department_id IN (60,80)
OR department_id IS NOT NULL;

    -- 연산자 우선순위
        -- 산술 > 연결 > 비교 > IS NULL, LIKE, IN > BETWEEN > NOT 논리 조건 > AND 논리 조건 > OR 논리 조건

반응형