728x90
반응형

오라클에서 주로 사용되는 데이터 형태

데이터 타입 설명
CHAR(n) 고정 길이의 문자를 저장한다. 최댓값은 2000bytes입니다.
VARCHAR2(n) 변하는 길이의 문자를 저장한다 최댓값은 4000bytes입니다.
NUMBER(p,s) 숫자 값을 저장한다. p는 전체 자릿수로 1~38자리까지 가능하고 s는 소수점 이하 자릿수로 -84~127자리가 가능하다.
DATE  총 7Byte로 BC 4712년 1월 1일부터 AD 9999년 12월 31일까지의 날짜를 저장할 수 있다.
LONG  가변 길이의 문자를 저장하여 최대 2GB까지 저장할 수 있다.
CLOB  가변 길이의 문자를 저장하며 최대 4GB까지 저장할 수 있다.
BLOB  가변 길이의 바이너리 데이터를 최대 4GB까지 저장할 수 있다.
RAW(n) 원시 이진 데이터로 최대 2000bytes까지 저장할 수 있다.
LONG RAW(n) 원시 이진 데이터로 최대 2GB까지 저장할 수 있다.
BFILE 외부 파일에 저장된 데이터로 최대 4GB까지 저장할 수 있다.
  • 오라클에서 형 변환은 묵시적(자동)형 변환과 명시적(수동)형 변환으로 나눌 수 있다.

 

묵시적 형 변환 예)

SELECT 1+ '1' FROM dual;

[그림1] 묵시적 형 변환 예

 

 

형 변환 함수

[그림2] 형 변환 함수 출처 : https://proni.tistory.com/entry/SQL-%EB%8B%A8%EC%9D%BC%ED%96%89-%ED%95%A8%EC%88%98-%EB%B3%80%ED%99%98-%ED%95%A8%EC%88%98-%EC%A0%95%EB%A6%AC%ED%91%9C

 

 

1. TO_CHAR 함수

  • 날짜를 문자로 형 변환
문법 : TO_CHAR(원래 날짜, '원하는 모양')

 

날짜 표현하는 방법

 

년도

  • 'YYYY' - 연도를 4자리로 표현한다. ex) 1999
  • 'RRRR' - 2000년 이후에 Y2K 버그로인해 등장한 새로운 날짜 표기법
  • 'YY' - 연도를 끝의 2자리만 표시한다. ex) 99
  • 'YEAR' - 연도의 영문 이름 전체를 표시한다.

 

SELECT TO_CHAR(SYSDATE, 'YYYY') "YYYY",
       TO_CHAR(SYSDATE, 'RRRR') "RRRR",
       TO_CHAR(SYSDATE, 'YY') "YY",
       TO_CHAR(SYSDATE, 'YEAR') "YEAR"
       FROM dual;

[그림3] 년도 표현 방식

 

  • MM - 월을 숫자 2자리로 표현한다. ex)10
  • MON - 월을 뜻하는 영어 3글자로 표시한다. ex ) OCT
  • MONTH - 월을 뜻하는 영어 이름 전체를 표시한다.
SELECT TO_CHAR(SYSDATE, 'MM') "MM",
        TO_CHAR(SYSDATE, 'MON') "MON",
        TO_CHAR(SYSDATE, 'MONTH') "MONTH"
        FROM dual;

[그림4] 월 표현 방식

 

  • DD - 일을 숫자 2자리로 표시한다. ex) 12
  • DAY - 요일에 해당하는 영어 명칭을 표시한다.
  • DDTH - 몇 번째 날인지를 표시한다.
SELECT TO_CHAR(SYSDATE, 'DD') "DD",
        TO_CHAR(SYSDATE, 'DAY') "DAY",
        TO_CHAR(SYSDATE, 'DDTH') "DDTH"
        FROM dual;

[그림5] 일 표현 방식

 

시간

  • HH24 - 하루를 24시간으로 표시한다.
  • HH - 하루를 12시간으로 표시한다.

 

  • MI로  표시한다.

  • SS로 표시한다.
SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD:HH24:MI:SS') from dual;

[그림6] 시간 분 초 표현 방식

 

 

예제

  1. Student 테이블의 birthday 칼럼을 참조하여 생일이 3월인 학생의 이름과 birthday를 출력하시오.

 

SELECT name, birthday from Student where TO_CHAR(birthday, 'MM')='03';

[그림7] 예제1 결과 

 

2. TO_CHAR 함수(숫자를 문자로 형 변환하기)

종류 의미 사용 예  결과
9 9하나당 1자리를 의미 T0_CHAR(1234,'99999') 1234
0 빈 자리를 0으로 표시 TO_CHAR(1234,'099999') 001234
$ $표시를 붙여서 표시 TO_CHAR(1234,'$9999') $1234
. 소수점 이하를 표시 TO_CHAR(1234,'9999.99') 1234.00
, 천 단위 구분 기호를 표시 TO_CHAR(1234,'99,999') 12.345

 

예제

  • Professor 테이블을 참조하여 101번 학과 교수들의 이름과 연봉을 출력하세요.
    • 연봉은 (pay *12)+bonus로 계산하고 천 단위 구분 기호로 표시하세요.
SELECT name, TO_CHAR((pay*12) + bonus, '99,999') "연봉" FROM professor WHERE deptno=101;

[그림8] to_char 숫자 문자로

 

3. TO_NUMBER 함수

문법 : TO_NUMBER('1')
SELECT TO_NUMBER('1') from dual;

[그림9] TO_NUMBER 함수

 

 

4. TO_DATE 함수

문법 : TO_DATE('문자', '날짜 포맷')
SELECT TO_DATE('2021-04-14', 'YYYY-MM-DD') from dual;

[그림10] to_date 함수

 

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기