ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - 연산자를 통한 데이터 조회( 연결 연산자, 논리 연산자, 비교 연산자 )
    DataBase/Oracle 2022. 1. 19. 18:44
    728x90
    반응형

    연산자를 통한 데이터 조회( 연결 연산자, 논리 연산자, 비교 연산자 )

     

     

    연결 연산자

     

    • 연결 연산자인 '||'를 이용하여 여러 컬럼을 연결하거나 컬럼과 리터럴을 연결할 수 있다.

     

    -- 컬럼과 컬럼 연결
    SELECT
           EMP_ID || EMP_NAME || SALARY				-- 컬럼과 컬럼 연결
          ,EMP_NAME || '의 월급은 ' || SALARY || '원 입니다.' 	-- 컬럼과 리터럴 연결
      FROM EMPLOYEE;


     

    논리 연산자

     

    • 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어준다.

     

    연산자 설명
    AND 여러 조건이 동시에 TRUE일 경우에만 TRUE값 반환
    OR 여러 조건들 중에 어느 하나의 조건만 TRUE이면 TRUE값 반환
    NOT 조건에 대한 반대값으로 반환(NULL은 예외)

     

    비교 연산자

     

    • 비교 결과는 논리 결과 중에 하나(TRUE, FALSE, NULL)가 된다.
    • 비교하는 두 컬럼은 동일한 데이터 타입이어야 한다.

     

    연산자 설명
    =  같다
    > , <  크다 / 작다
    >= , =<  크거나 같다 / 작거나 같다
    <> , != , ^=  같지 않다
    BETWEEN A AND B  A <= 범위 <= B , 범위에 포함되는지 비교
    LIKE / NOT LIKE  문자 패턴 비교
    IS NULL / IS NOT LIKE  NULL 여부 비교
    IN / NOT IN  비교 값 목록에 포함/미포함 되는지 비교

     

     

    IS NULL ,  IS NOT NULL

     

    SELECT
           EMP_ID
         , EMP_NAME
         , SALARY
         , BONUS
      FROM EMPLOYEE
     WHERE BONUS IS NULL;       -- NULL 값 조회
    -- WHERE BONUS IS NOT NULL; -- NULL이 아닌 값 조회

    왼쪽 : BONUS가 NULL인 값 조회                                  오른쪽 : BONUST가 NULL이 아닌 값 조회

     

     

    BETWEEN A AND NOT BETWEEN A AND B

     

    SELECT 
           EMP_ID
         , EMP_NAME
         , DEPT_CODE
         , JOB_CODE
      FROM EMPLOYEE
     WHERE SALARY BETWEEN 3500000 AND 5500000;		-- 3500000 <= SALARY <= 5500000
    -- WHERE SALARY NOT BETWEEN 3500000 AND 5500000;	-- 3500000 > SALARY, 5500000 < SALARY

    3500000 <= SALARY <= 5500000                                                         3500000 > SALARY, 5500000 < SALARY

     

     

    LIKE ,  NOT LIKE

     

    • % : 0개 이상의 글자
    • - : 글자 한 자리

     

    SELECT 
           EMP_NAME
         , EMP_NO
         , DEPT_CODE
      FROM EMPLOYEE
     WHERE EMP_NAME LIKE '%하%';		-- 이름에 '하' 포함
    -- WHERE EMP_NAME NOT LIKE '%하%';	-- 이름에 '하' 미포함

     

    ESCAPE

     

    • 특수 문자를 실제 문자로 인식하도록 해준다.
    • 아래 코드는 # 을 EXCAPE문자로 사용했다

     

    SELECT
           EMP_ID
         , EMP_NAME
         , EMAIL
      FROM EMPLOYEE
     WHERE EMAIL LIKE '___#_%' ESCAPE '#';

     

    IN ,  NOT IN

     

    • 여러 OR 연산자가 필요할 때 쓴다.

     

    SELECT
           EMP_NAME
         , DEPT_CODE
         , SALARY
      FROM EMPLOYEE
     WHERE DEPT_CODE IN('D6', 'D8');	-- 부서코드가 'D6'이거나 'D8'인 직원
    -- WHERE DEPT_CODE NOT IN('D6', 'D8');	-- 부서코드가 'D6'이거나 'D8'인 직원을 제외한 나머지 직원

     

    728x90
    반응형

    댓글

Designed by Tistory.