오늘은 오라클의 데이터 타입 중 숫자형 타입(Numeric)에 대해서 알아보자.
숫자형 데이터 타입: NUMBER
오라클에서는 정수와 실수를 구분하지 않고, NUMBER 타입을 사용하여 숫자를 표현할 수 있다. 다른 DBMS에서는 정수형과 실수형이 따로 존재하지만, 오라클의 NUMBER 타입은 이를 통합하여 하나의 데이터 타입으로 처리한다.
NUMBER의 사용 방법
NUMBER(p): p는 정밀도를 의미하며, 숫자가 가질 수 있는 최대 자리 수를 지정한다. 예를 들어, NUMBER(4)는 최대 4자리 숫자를 표현할 수 있으며, 9999와 같은 값을 저장할 수 있다.
NUMBER(p, s): p는 전체 자릿수, s는 소수점 이하 자릿수를 나타낸다. 예를 들어, NUMBER(6,2)는 최대 6자리의 숫자 중 소수점 아래 2자리까지 표현한다. 따라서, 9999.99와 같은 숫자를 저장할 수 있다.
NUMBER(p, -s): s를 음수로 지정하면, 소수점에서 -s 자리에서 반올림하여 최대 p 자릿수의 숫자를 표현한다. 예를 들어, NUMBER(6,-2)는 소수점에서 두 자리 전에서 반올림하여 표현하므로 100000, 99800 같은 형태로 저장된다.
NUMBER: 아무 값도 지정하지 않으면, 최대 정밀도 38자리까지 표현 가능하다. 이것은 NUMBER(38)과 동일하다.
NUMBER(*, s): p를 생략하고 s만 지정할 때는 소수점 이하 s 자리까지 표현하며, 최대 38자리의 숫자를 나타낸다. 예를 들어, NUMBER(*,5)는 소수점 이하 5자리까지 표현하는 38자리 숫자를 의미한다.
아래 그림은 지난번 만들었던 테이블인데 AGE컬럼을 변경해주자 나이는 1000을 넘기는 경우가 없으니, AGE NUMBER()를 AGE NUMBER(3)으로 변경해준다.
날짜와 시간 데이터 타입: DATE와 TIMESTAMP
오라클에서 날짜와 시간을 표현하는 주요 데이터 타입은 DATE와 TIMESTAMP이다. 이 두 타입은 날짜와 시간 데이터를 다룰 때 사용된다.
DATE
DATE는 연, 월, 일까지를 표현하는 날짜 데이터 타입이다. 이 타입은 기본적으로 숫자로 저장되며, 기준 날짜는 BC 4,712년 1월 1일이다. 이 시점부터 시작하여 시간이 경과함에 따라 숫자가 증가하는 방식으로 저장된다. 예를 들어, DATE 형식에서 2000이라는 값은 기준 날짜로부터 2초가 지난 시점을 의미한다. 시간은 밀리세컨드 단위로 저장되며, 이를 계산하여 원하는 날짜와 시간으로 변환할 수 있다.
TIMESTAMP
TIMESTAMP는 DATE 타입의 확장으로, 연, 월, 일에 더해 시, 분, 초까지 포함하여 시간을 보다 정밀하게 표현한다.
TIMESTAMP는 기본적으로 매우 큰 숫자로 저장되며, 이 숫자는 밀리세컨드 단위로 시간의 경과를 나타낸다. TIMESTAMP WITH TIME ZONE, TIMESTAMP WITH LOCAL TIME ZONE과 같은 변형 타입을 사용하면 시간대 정보를 포함하여 더 정확한 시간 표현이 가능하다.
지역 설정과 표현 형식
날짜와 시간이 어떻게 표현될지는 지역 설정에 따라 달라진다. 오라클의 환경 변수 NLS_DATABASE_PARAMETERS를 통해 확인할 수 있으며, 지역별 설정에 따라 다양한 형식으로 출력된다.
참고자료
[1] 유튜브 채널 뉴렉처 - 오라클 데이터 형식 #2 (숫자,날짜 형식)
'💾 Database > Oracle' 카테고리의 다른 글
[오라클] 8.DML(Select, Insert) (0) | 2024.09.09 |
---|---|
[오라클] 7.ALTER(수정, 삭제, 추가) (0) | 2024.08.31 |
[오라클] 5.SQL 데이터 타입(문자열) (2) | 2024.08.30 |
[오라클] 4.사용자 계정, 데이터베이스, 테이블 생성 (0) | 2024.08.27 |
[오라클] 3.PDB 서버 접속 (0) | 2024.08.25 |