개키우는개발자 : )

[오라클] 데이터베이스 객체의 종류-숫자 데이터 타입 본문

Oracle SQL Developer/오라클SQL과 PL-SQL

[오라클] 데이터베이스 객체의 종류-숫자 데이터 타입

DOGvelopers 2019. 2. 17. 18:44
반응형
숫자 데이터 타입

 데이터 타입

 설명

 NUMBER[(p,[s])]

 가변숫자,p(1~38,디폴트 값은 38)와 s(-84~127,디폴트 값은 0)는 십진수 기준 최대   22byte

 FLOAT[(p)]

 NUMBER의 하위 타입, p는 1~128, elvhfxm rkqtdms 128, 이진수 기준,최대 22byte 

 BINARY_FLOAT

 32비트 부동소수점 수, 최대 4byte 

 BINARY_DOUBLE

 64비트 부동소수점 수, 최대 8byte 



테이블 생성,조회


실습) 생성된 테이블 컬럼의 타입과 길이를 user_rab_cols라는 시스템 뷰 조회


1
2
3
4
5
CREATE TABLE ex2_3(
    COL_INT INTEGER,
    COL_DEC DECIMAL,
    COL_NUM NUMBER
);
cs


숫자 타입은 총 4가지가 있긴 하지만 NUMBER형만 사용할 때가 많다. 

다른 DBMSINTEGER와 같은 정수형DECIMAL과 같은 실수형을 제공한다.



- user_rab_cols 조회


1
2
3
4
SELECT column_id,column_name,data_type,data_length 
    FROM user_tab_cols
    WHERE table_name = 'EX2_3'
    ORDER BY column_id;
cs


- 결과



모두 NUMBER형 으로 반환 되었고 길이는 22byte 이다.디폴트 값인 38이 적용되어 최대 크기인 22byte를 차지하는것이다. NUMBER(p,s) 형식 으로 크기를 지정 할 수도 있다. p(precision, 정밀도) s(scale)


- p는 소수점 기준 모든 유효숫자 자리수를 의미한다. 만약 p에 명시한 것보다 큰 숫자값을 입력하면 오류가 발생한다.

- s가 양수면 소수점 이하, 음수이면 소수점 이상(소수점 기준 왼쪽) 유효숫자 자릿수를 나타낸다.

- s에 명시한 숫자 이상의 숫자를 입력하면, s에 명시한 숫자로 반올림 처리한다.

- s가 음수이면 소수점 기준 왼쪽 자릿수만큼 반올림한다.

- s가 p보다 크면 p는 소수점 이하 유효숫자 자리수를 의미한다.



NUMBER형 예제


 숫자값

타입 

결과 

설명 

 123.54

 NUMBER

 123.5

 정상

 123.54

 NUMBER(3)

 124

 S는 명시하지 않아 0,P가 3이므로 소수점 첫 자리에서 반올림 됨

 123.54

 NUMBER(3,2)

 오류

 p가 3인데 입력값인 123.54는 유효숫자가 다섯 자리여서 오류,

 유효숫자가 p보다 크면 오류 발생

 123.54

 NUMBER(5,2)

 123.54

 정상

 123.54

 NUMBER(7,1)

 123.5

 s가 1이므로 .54가 반올림되어 .5

 123.54

 NUMBER(7,-1)

 120

 s가 -1이어서 소수점 왼쪽 첫 자리 3이 반올림되어 120

 125.54

 NUMBER(7,-1)

 130

 s가 -1이어서 소수점 왼쪽 첫 자리 5가 반올림되어 130

 0.1234

 NUMBER(4,5)

 오류

 유효숫자는 4개 맞지만 s가 5인데 네 자리수이므로 오류 발생

 0.01234

 NUMBER(4,5)

 0.01234

 소수점 이하 다섯 째까지 유효숫자 4개, 정상

 0.0001234

 NUMBER(4,7)

 0.0001234

 소수점 이하 일곱 째 자리까지 유효숫자 4개, 정상

 0.0001234

 NUMBER(3,7)

 오류

 소수점 이하 일곱 째 자리까지 유효숫자는 1234, 4개인데 p가 3이므   로 오류 발생

 0.0000123

 NUMBER(3,7)

 0.0000123

 소수점 이하 일곱 째 자리까지 유효숫자는 123, 3개이고 p가 3이므로

 정상 

 0.00001234

 NUMBER(3,7)

 0.0000123

 소수점 이하 일곱 째 자리까지 유효숫자는 123, 4는 제외됨


오라클에서는 NUMBER 형만 사용해도 되며, 

그 크기 설정에 있어 p와 s를 적절히 조정하면 된다.


반응형
Comments