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. 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;
월
- 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;
일
- DD - 일을 숫자 2자리로 표시한다. ex) 12
- DAY - 요일에 해당하는 영어 명칭을 표시한다.
- DDTH - 몇 번째 날인지를 표시한다.
SELECT TO_CHAR(SYSDATE, 'DD') "DD",
TO_CHAR(SYSDATE, 'DAY') "DAY",
TO_CHAR(SYSDATE, 'DDTH') "DDTH"
FROM dual;
시간
- HH24 - 하루를 24시간으로 표시한다.
- HH - 하루를 12시간으로 표시한다.
분
- MI로 표시한다.
초
- SS로 표시한다.
SELECT SYSDATE, TO_CHAR(SYSDATE, 'YYYY-MM-DD:HH24:MI:SS') from dual;
예제
- Student 테이블의 birthday 칼럼을 참조하여 생일이 3월인 학생의 이름과 birthday를 출력하시오.
SELECT name, birthday from Student where TO_CHAR(birthday, 'MM')='03';
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;
3. TO_NUMBER 함수
문법 : TO_NUMBER('1')
SELECT TO_NUMBER('1') from dual;
4. TO_DATE 함수
문법 : TO_DATE('문자', '날짜 포맷')
SELECT TO_DATE('2021-04-14', 'YYYY-MM-DD') from dual;
728x90
반응형
최근댓글