꺄르륵
[Oracle SQL Developer] 기초 III - 숫자 자료형, 날짜 타입 본문
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;
'프로그래밍 > DB' 카테고리의 다른 글
[Oracle SQL Developer] 기초 V - 숫자 함수 (0) | 2019.10.08 |
---|---|
[Oracle SQL Developer] Import (0) | 2019.10.07 |
[Oracle SQL Developer] 기초 IV - SELECT 문 (0) | 2019.10.07 |
[Oracle SQL Developer] 기초 II - DATA TYPE (0) | 2019.10.04 |
[Oracle SQL Developer] 기초 I - TABLE (0) | 2019.10.04 |