[DB] SyBase에서 사용하는 기능들

    728x90
    반응형

    2021.03.29

    12일차

     

    입사 22일차.

    지금 개발하고 있는 프로젝트는 SyBase, PostgreSQL 2가지의 DB를 사용한다.

    SyBase를 왜 사용하는지 모르겠지만 지금 참여하고 있는 프로젝트에는 필요한 내용이기 때문에 자주 사용하는 기능들에 대해 정리해보려고 한다.

     

     

    0. COMMIT

      ① COMMIT

          -> 테이블의 데이터에 변동사항이 발생하면 COMMIT을 입력해야 반영된다.

          -> MySQL은 계정관련 데이터가 변경될 경우만 COMMIT을 사용한다.

    INSERT INTO exTABLE ( 컬럼1, 컬럼2, ... ) VALUES ( 입력값1, 입력값2, ... );

    // R을 제외한 CUD 작업은 수행 후, COMMIT을 반드시 수행해야 한다
    COMMIT;

     

     

    1. ISNULL 연산자

      ① ISNULL ( 파라미터1, 결과값1 )

          -> 파라미터1이 NULL이면 결과값1을 리턴한다.

          -> MySQL의 IFNULL, Oracle의 NVL과 같은 기능

    SELECT ISNULL ( 컬럼1, 'NULL입니다.' );

    [결과]
    컬럼1 = NULL입니다.

     

     

    2. IN 연산자

      ① SELECT * FROM 테이블명 WHERE 컬럼명 IN ( 조건1, 조건2, 조건3, ... )

          -> 특정 컬럼의 데이터가 IN에 작성한 값과 일치할 경우에만 SELECT

          -> SELECT * FROM 테이블명 WHERE 컬럼명 = 조건1 OR 컬럼명 = 조건2, ... 

              위의 쿼리문과 출력결과가 같다.

    SELECT * FROM exTABLE 
          WHERE 컬럼1 = 'Y' 

          // 컬럼2의 값이 조건1, 조건2, ... 와 일치할 경우 SELECT
          AND 컬럼2 IN ( 조건1, 조건2, ... )

     

     

    3. CASE ~ WHEN THEN ~ ELSE ~ END

      ① CASE 컬럼명 WHEN 조건1 THEN 값1, WHEN 조건2 THEN 값2, ... ELSE 값 END

          -> 컬럼이 조건에 부합하면 THEN에 작성한 값을 가지고 가고, 어느 조건에도 맞지 않을 경우, ELSE의 값을 가지고 간다.

          -> END를 작성하지 않으면 에러가 발생한다.

    SELECT * FROM exTABLE 
          컬럼1 AS VO필드명1
          , CASE
                WHEN 컬럼2 = '123' THEN '컬럼3의 값은 123입니다.'
                WHEN 컬럼2 = 'ㄱㄴㄷ' THEN '컬럼3의 값은 ㄱㄴㄷ입니다.'
                ELSE   '컬럼3의 값은 ABC입니다.'
          END AS VO필드명2

     

     

    4. CONVERT 연산자

      ① CONVERT ( 변환할 타입, Date타입컬럼명, 표시형식 )

          -> 표시형식은 숫자로 정해져있다. 112를 표시형식에 입력하면 YYYYMMDD 형식으로 표시한다.

          -> 대부분 문서번호, 가입번호 등 일련번호 생성을 위해 사용하기 때문에 112를 많이 사용한다.

    SELECT * FROM exTABLE 
          CONVERT ( varchar, DATE타입컬럼명, 112 ) AS String타입 VO필드명

     

     

    5. getDate()

      ① getDate()

          -> 현재시간을 구한다.

          -> MySQL의 NOW(), Oracle의 SYSDATE와 같은 기능이다.

    INSERT INTO exTABLE ( Date타입컬럼1 ) VALUES ( getDate() );

     

     

    지금 개발하고 있는 프로젝트가 끝나면 SyBase랑은 다시는 안마주치길 바란다. WHEN 컬럼2 = '1' THEN '컬럼3의 값은 1입니다.

    728x90
    반응형

    댓글