Notice
Recent Posts
Recent Comments
Link
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

꺄르륵

[Oracle SQL Developer] 기초 III - 숫자 자료형, 날짜 타입 본문

프로그래밍/DB

[Oracle SQL Developer] 기초 III - 숫자 자료형, 날짜 타입

Teddy. 2019. 10. 7. 11:40

2. 숫자자료형


 1.1. NUMBER [(P[,S])]
 


    1.1.1. P : 정밀도를 나타내느 정수 값( 1 ~ 38 ) 


      : 최상위 유효 자릿수는 0이 아닌 가장 왼쪽 자릿수고, 최하위 유효 자릿수는 가장 오른쪽 자릿수 입니다.
      


    1.1.2. S : 스케일 값으로 소숫점 이하의 유효 숫자 자리수 ( -84 ~ 127 )


      : scale이 양수일때는 소수점의 오른쪽에 있는 자릿수로 최하위 유효 자릿수를 포함한 자릿수가 됩니다.
      : scale이 음수일때는 소수점의 왼쪽에 있는 자릿수입니다. 이 경우는 최하위 유효자릿수를 포함하지 않습니다.
      : EX. 예를 들어 number(10, -2)라면 100자리수까지 반올림합니다.
    


    1.1.3. 사용 형식


      - 컬럼명 NUMBER
        : 사용자가 정의한 숫자자료를 그대로 저장
    
      - 컬럼명 NUMBER(n)
        : n(=정밀도) 자리수의 정수 처리 
        : 소수 첫째자리에서 반올림된다.
      
      - 컬럼명 NUMBER(*,s)
        : 소수점 s+1 번째에서 반올림하여 s번째까지 표현한다.
        : 전체자리수는 사용자가 정의한 크기만큼 자동적으로 확보한다.
        : EX. NUMBER(*,3) 이면 소수점 3번째자리에서 반올림하여 *.123 으로 표현된다.
        
      - 컬럼명 NUMBER(p,S)  ( ※ 단, p > s 인 경우)
        : 전체자리수 P에서 소수점이하 s자리까지 표현 
        : 정수 부분은 p-s 자리까지 허용하고, 소수점 s+1번째자리에서 반올림한다.
        
      - 컬럼명 NUMBER(p,s)  ( ※ 단, s > p 인 경우)
        : p는 소숫점이하의 유효 숫자 수
        : s는 소숫점이하의 전체 자리수
        : (s-p)만큼의 0이 유효숫자 앞에 존재해야한다.
        
        : 예) 
        
        ------------------------------------------------------------
        입력값                    선언                  저장값
        ------------------------------------------------------------
        765432.1234           NUMBER                765432.1234
        765432.1234           NUMBER(*,3)           765432.123  
        765432.6234           NUMBER(7)             765433
        765432.6834           NUMBER(9,1)           765432.7
        765432.6834           NUMBER(7,-2)          765400
        765432.6834           NUMBER(5)             ERROR 발생
        1.234                 NUMBER(4,5)           ERROR 발생
        0.01234               NUMBER(4,5)           0.01234
        0.001234              NUMBER(3,5)           0.00123
        0.005678              NUMBER(2,5)           ERROR 발생
        0.0005678             NUMBER(2,5)           0.00057
        ------------------------------------------------------------
        ※ DB에서는 숫자 자료를 미리 가공 처리한다면 최종적인 결과값의 정밀도가 떨어질 수 있다.

 


       


 

 

3. 날짜 타입       


  : date와 timestamp 타입 제공
  : Y, M, D, H, M, S 정보 저장
  
  3.1. data 타입
  
    3.1.1. 표준 날짜 정보 저장
    
    3.1.2. 덧셈과 뺄셈을 수행할 수 있다. (D 기준)
    
    3.1.3. 사용형식   
    
        : 컬럼명 date
        
    예)
    CREATE TABLE TEMP04(
    COLL DATE
    );
    
    - SYSDATE : 시스템내부에서 제공하는 날짜 정보를 반환하는 함수 (반환되는 정보가 date type)
    
    INSERT INTO TEMP04(COLL) VALUES(SYSDATE); -- 오늘 날짜
    INSERT INTO TEMP04 VALUES(SYSDATE - 10);  -- 오늘 날짜 기준으로 10일 전 날짜
    INSERT INTO TEMP04 VALUES(SYSDATE + 10);  -- 오늘 날짜 기준으로 10일 후 날짜
    
    - TO_DATE(문자열) : 문자열을 날짜형으로 바꿈
    
    SELECT * FROM TEMP04;
    
    SELECT (SYSDATE-TO_DATE('19900101')) FROM DUAL;

   -- DATE('날짜')의 기준일부터 오늘 날짜까지의 DATE값 출력
    * TABLE은 없지만 FROM은 필요할때 DUAL을 사용한다. SYSTEM이 갖고있는 가상의 TABLE
    
    SELECT TO_CHAR(COLL,'YYYY-MM-DD  HH24:MI:SS') FROM TEMP04;
        
        
  3.2. TIMESTAMP 타입
  
    3.2.1. 시간대 정보(TIMEZONE 정보)와 날짜 시각 정보를 저장
    
    3.2.2. 10억분의 1초단위로 저장한다.
    
    3.2.3. 사용형식
        
        : 컬럼명 TIMESTAMP
        - 시간대와 상관없이 날짜, 시간정보 저장(DATE와 유사)
        
        : 컬럼명 TIMESTAMP WITH TIME ZONE 
        - 날짜, 시간정보와 함께 시간대 정보도 저장한다.
        
        : 컬럼명 TIMESTAMP WITH LOCAL TIME ZONE 
        - 서버가 위치한 시간대 정보와 날짜, 시간 정보 저장.
        
 CREATE TABLE TEMP05 (
    COL1 DATE,
    COL2 TIMESTAMP,
    COL3 TIMESTAMP WITH TIME ZONE,
    COL4 TIMESTAMP WITH LOCAL TIME ZONE
 );       
        
INSERT INTO TEMP05 VALUES (SYSDATE, SYSDATE, SYSDATE, SYSDATE);         

SELECT * FROM TEMP05;