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입니다.
'데이터베이스' 카테고리의 다른 글
[Redis] Redis Starts with Docker And WebFlux(2) (0) | 2023.04.09 |
---|---|
[Redis] Redis Starts with Docker And WebFlux(1) (0) | 2023.04.02 |
[DB]SELECT - ORDER BY, WHERE, JOIN (0) | 2021.06.11 |
[DB] Mapper.xml에서 사용하는 속성들 (0) | 2021.03.16 |
[DB] MySQL과 Oracle 문법 비교 (0) | 2021.03.13 |
댓글