본문 바로가기

데이터베이스/ORACLE

6. 숫자형 ( NUMBER )

1. 숫자형 ( NUMBER )

  • number 데이터 타입 지원
  • 정수와 실수 모두 표현 가능 -- 고정소수점 = 정수, 가변소수점 = 실수

( 사용형식 )

컬럼명 NUMBER[(정밀도 [, 스케일])]

- 정밀도 : 전체자리수(단, 정밀도 > 스케일 인경우)
             1 ~ 38 까지의 정수 사용
- 스케일 : 소숫점이하의 자리수(단, 양수인 경우, 음수인경우에는 소숫점 이상의 자리수)
            -84 ~ 127 사이의 정수 사용

예제)

입력값      선언형식        저장값
-----------------------------------------
  123,456.78   NUMBER        123,456.78
  123,456.78   NUMBER(*,1)   123,456.8     --소수점 두번째 자리에서 반올림
  123,456.78   NUMBER()      123,457       --소수첫재짜리에서 반올림해서 소수점없애라
  123,456.787  NUMBER(9,2)   123,456.79    --소수점 셋째 자리에서 반올림
  123,456.78   NUMBER(6)     123,457       --스케일생략=0 소수첫재반올림해서 정수부분만 나타내어라
  123,456.78   NUMBER(6,0)   123,457
  123,456.78   NUMBER(5)     에러           --자리수가 부족해서 에러가난다
  123,456.78   NUMBER(7,-2)  123,500
------------------------------------------

**정밀도보다 큰 스케일이 사용된 경우
  -(스케일 - 정밀도) : 소숫점이하에서 나올 '0'의 갯수
  -스케일 : 소숫점 이하의 자리수

     입력값      선언형식        저장값
---------------------------------------
  12.34        NUMBER(4,5)   에러
  12.3         NUMBER(3,5)   에러    
  0.01234      NUMBER(4,5)   0.01234       
  0.001234     NUMBER(3,5)   0.00123    -- 5-3=2 소수점이하 0두개나오고 5째자리까지 나오게반올림    
---------------------------------------

SELECT ROUND((100/3)*100,2)||'%' FROM DUAL;


CREATE TABLE TEMP05(
  COL1 NUMBER,
  COL2 NUMBER(*,1),
  COL4 NUMBER(9,2),
  COL5 NUMBER(6),
  COL6 NUMBER(6,0),
  COL7 NUMBER(5),
  COL8 NUMBER(7,-2));

INSERT INTO TEMP05 VALUES(123456.78,123456.78,123456.78,123456.78,123456.78,
                          12345.78,123456.78);
                          
INSERT INTO TEMP05 VALUES(123456.78,123456.78,123456.789,123456.78,123456.78,
                          12345.78,123456.78);

SELECT * FROM TEMP05;

 

2._number.sql
0.00MB

'데이터베이스 > ORACLE' 카테고리의 다른 글

8. 기타 자료형 ( RAW, BFILE, BLOB )  (0) 2021.03.15
7. 날짜형 ( DATE )  (0) 2021.03.15
5. 문자열 ( VARCHAR, CLOB )  (0) 2021.03.15
4. SQL명령 / 자료형 ( CHAR )  (0) 2021.03.15
3. ALTER  (0) 2021.03.15