오라클에서 사용하는 데이터 타입을을 살펴보면 아래와 같다.
CHAR(n) | 고정길이의 문자를 저장. 최대값은 2000바이트 |
VARCHAR2(n) | 변하는 길이의 문자를 저장. 최대값은 4000바이트 |
NUMBER(p.s) | 숫자 값을 저장. P는 전체 자릿수로 1~38자리까지 가능하고, S는 소수점 이하 자릿수로 -84~127자리까지 가능 |
DATE | 총 7바이트로 BC 4712년 1월 1일부터 AD 9999년 12월 31일까지 날짜를 저장할 수 있다. |
LONG | 가변 길이의 문자를 저장. 최대 2GB까지 저장 |
CLOB | 가변 길이의 문자를 저장. 최대 4GB까지 저장 |
BLOB | 가변 길이의 바이너리 데이터를 저장. 최대 4GB까지 저장 |
RAW(n) | 원시 이진 데이터로 2000바이트 저장 |
LONG RAW(n) | 원시 이진 데이터로 2GB 까지 저장 |
BFILE | 외부 파일에 저장된 데이터로 최대 4GB 저장 |
오라클에서 형변환은 묵시적 형변환과 명시적 형 변환으로 나눌 수 있다.
묵시적 형변환 / 명시적 형 변환
묵시적 = 자동 / 오라클이 자동으로 형 변환 시킨다는 뜻
명시적 = 수동 / 사람이 수동으로 지정해 주어야 한다는 의미
숫자 2와 문자 '2'를 계산하라고 요쳥하였더니 자동으로 숫자 4로 연산이 됩니다.
원래 숫자와 문자를 연산할 수 없어서 에러를 발생시키지만 숫자처럼 생긴 문자는 자동으로 숫자로 바꾼 후 연산을 수행합니다.
명시적형변환의 함수는
TO_CHAR / TO_NUMBER / TO_DATE 이렇게 3가지로 나누어진다.
TO_CHAR은 숫자와 날짜를 문자로 변환해 주는 두가지 기능을 가지고 있다.
TO_CHAR(날짜 -> 문자)
오라클이 날짜를 표현하는 방법은 아래와 같다.
YYYY - 연도 4자리
RRRR - 2000년 이후 Y2K 버그로 인해 등장한 날짜 표기법으로 연도 4자리 표기법
YY - 연도 마지막 2자리
RR - 연도 마지막 2자리
YEAR - 연도의 영문 이름 전체 출력
MM - 월 2자리
MON - 유닉스용 오라클에서 월을 뜻하는 영어 3글자로 표시 ( OCT )
MONTH - 월을 뜻하는 이름 전체 표시
DD - 일 숫자 2자리
DAY - 요일에 해당하는 명칭을 표시 , 유닉스용 오라클에서는 영문으로 나오고 윈도우는 한글로 표시
DDTH - 몇 번째 날인지 표시
HH24 - 하루를 24시간으로 표현
HH - 하루를 12시간으로 표시
M - 분
SS - 초
문제 1.
STUDENT 테이블의 BIRTHDAY 컬럼을 사용하여 생일이 1월인 학생의 이름과 BIRTHDAY를 아래와 같이 출력하라
본인 풀이 :
SELECT STUDNO, NAME, TO_CHAR(BIRTHDAY, 'YY-MM-DD') "BIRTHDAY"
FROM STUDENT
WHERE SUBSTR(BIRTHDAY, 4, 2) = '01';
문제 2.
EMP 테이블의 HIREDATE 컬럼을 사용하여 입사일이 1,2, 3월인 사람들의 사번과 이름, 입사일을 출력하세요.
본인 풀이 :
SELECT EMPNO, ENAME, TO_CHAR(HIREDATE, 'YY/MM/DD') "HIREDATE"
FROM EMP
WHERE SUBSTR(HIREDATE, 4, 2) < '04';
'데이터베이스 > Oracle SQL' 카테고리의 다른 글
오라클 SQL과 PL/SQL ( 일반 함수 - 1 ) (0) | 2021.07.17 |
---|---|
오라클 SQL과 PL/SQL ( 형 변환 함수 - 2 ) (0) | 2021.07.15 |
오라클 SQL과 PL/SQL ( 날짜 관련 함수 ) (0) | 2021.07.14 |
오라클 SQL과 PL/SQL ( 숫자관련 함수 ) (0) | 2021.07.12 |
오라클 SQL과 PL/SQL ( 단일행 함수 - 2) (0) | 2021.07.08 |