오라클DB - 4. 날짜형, 변환형, NULL 함수

CodeModel·2023년 6월 14일
0

오라클 DB

목록 보기
4/4

1. 날짜형 함수

SYSDATE

현재 날짜와 시간을 출력한다

SELECT SYSDATE FROM dual;

EXTRACT

날자 데이터에서 년,월,일을 추출한다.

EXTRACT(구성요소 FROM 날짜값)
구성요소: 추출할 구성 요소를 지정합니다. 예를 들어, 'YEAR', 'MONTH', 'DAY', 'HOUR', 'MINUTE', 'SECOND' 등이 사용될 수 있습니다.
날짜
값: 구성 요소를 추출할 날짜값입니다.

SELECT EXTRACT(YEAR FROM SYSDATE) FROM dual;

2. 변환형 함수

TO_NUMBER

문자열을 숫자로 변환

TO_NUMBER(문자열, [형식_모델])
문자열: 숫자로 변환할 대상 문자열입니다.
형식_모델 (선택적): 문자열의 형식을 지정하는 형식 모델입니다. 일반적으로 사용되는 형식은 '9', '999', '999.99' 등입니다.

SELECT TO_NUMBER('123.45') FROM dual;

문자 '123.45'를 숫자 123.45로 변경한다.

TO_CHAR

숫자를 문자열로 변환

TO_CHAR(값, [형식_모델])
값: 문자열로 변환할 숫자, 날짜 또는 시간 값입니다.
형식_모델 (선택적): 문자열의 형식을 지정하는 형식 모델입니다. 예를 들어, 'YYYY-MM-DD', 'HH24:MI:SS', 'FM999,999.00' 등이 사용될 수 있습니다.

TO_DATE

문자열을 날짜로 변환

TO_DATE(문자열, [형식_모델])
문자열: 날짜로 변환할 대상 문자열입니다.
형식_모델 (선택적): 문자열의 형식을 지정하는 형식 모델입니다. 예를 들어, 'YYYY-MM-DD', 'DD-MON-YYYY', 'YYYYMMDDHH24MISS' 등이 사용될 수 있습니다.

SELECT TO_DATE('2023-06-14', 'YYYY-MM-DD') FROM dual;

문자를 날짜로 변환

3. NULL 함수

NVL

NULL 값을 다른 값으로 대체하는 역할을 합니다.

NVL(표현식, 대체값)
표현식: NULL 값인지 확인할 표현식 또는 컬럼입니다.
대체값: 표현식이 NULL인 경우 대체로 사용될 값입니다.

SELECT NVL(name, 'Unknown') FROM employees;

컬럼 "name"이 NULL인 경우 "Unknown"으로 대체값을 사용한다.

NVL2

NULL 여부에 따라 다른 값으로 대체하는 기능을 제공

NVL2(표현식, 값1, 값2)
표현식: NULL 여부를 확인할 표현식 또는 컬럼입니다.
값1: 표현식이 NULL이 아닌 경우에 반환될 값입니다.
값2: 표현식이 NULL인 경우에 반환될 값입니다.

SELECT NVL2(name, 'Not Unknown', 'Unknown') FROM employees;

"employees" 테이블의 "name" 컬럼을 조회하며, "name"이 NULL인 경우에는 'Unknown'을 반환하고, NULL이 아닌 경우에는 'Not Unknown'을 반환합니다

NULLIF

두개의 표현식을 비교하여 같으면 NULL을 반환하고 다르면 첫 번째 표현식을 반환합니다.

NULLIF(표현식1, 표현식2)
표현식1: 비교할 첫 번째 표현식 또는 컬럼입니다.
표현식2: 비교할 두 번째 표현식 또는 컬럼입니다.

SELECT NULLIF('one','one') FROM dual;
SELECT NULLIF('one','two') FROM dual;

첫번째는 one, 두번째는 one일때는 null 이 나오고
첫번째는 one, 두번째는 two일때는 one 이 나온다

COALESCE

여러 개의 표현식 또는 컬럼 중에서 NULL이 아닌 첫 번째 값을 반환

COALESCE(표현식1, 표현식2, ...)
표현식1, 표현식2, ...: NULL이 아닌 값을 찾기 위해 순서대로 비교할 표현식 또는 컬럼입니다.

SELECT COALESCE(name, nickname, username) FROM users;

"users" 테이블의 "name", "nickname", "username" 컬럼을 조회하며, NULL이 아닌 값을 찾아 반환합니다.

IS NULL

NULL인 값을 가진 튜플을 선택하는 조건입니다.

SELECT * FROM employees WHERE name IS NULL;

"employees" 테이블에서 "name" 컬럼이 NULL인 직원의 모든 컬럼을 선택합니다.

IS NOT NULL

NULL이 아닌 값을 가진 튜플을 선택하는 조건입니다.

SELECT * FROM employees WHERE name IS NOT NULL;

"employees" 테이블에서 "name" 컬럼이 NULL이 아닌 직원의 모든 컬럼을 선택합니다.

profile
개발자가 되기 위한 일기

0개의 댓글