일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- JAVA1
- 개발자학원
- 테이블 저장 예제
- 요즘말
- 미국 태풍경보센터
- 오라클xe
- 테이블객체
- 트라몰정
- 스프링 스키마
- 국비학원리뷰
- 인스턴스상태확인
- 개발자
- OracleSQL
- 자바
- java
- 부린이뜻
- 스프링 배치
- 엠비엔 편성표
- 트라몰정 325mg
- 국비학원
- 국비개발학원
- 요린이뜻
- 오라클
- 백로뜻
- 대전 국비
- MSG워너비나얼
- 슈가먄
- 백로특징
- 백로계절
- oracle
- Today
- Total
정보의 보물창고
[Oracle 오라클 Sql] 숫자형 데이터 타입 본문
2. 숫자형
- 정수 및 실수를 저장
- NUMBER 타입 제공
(사용형식)
컬럼명 NUMBER [(정밀도] * [,스케일])];
-저장 범위 : 10 * e-130 ~ 9.9999....99 * e125
-'정밀도|*' : 정밀도를 시스템에 의존할 경우 '*' 사용
--number (20,3) 3번째 자리에서 반올림
--데이터 베이스에서는 사실 반올림을 잘 하지 않음. 가장 정확한 데이터를 저장
--반올림이 필요한경우 자바 같은 응용프로그램에서 처리 해야함.
1)정밀도 > 스케일
- 정밀도 : 전체 자리수 (1~30)
- 스케일이 양수 : 소숫점이라 자리수 (64~127)
- 스케일이 음수 : 정수부분의 자리수 (20,3)
----------------------------------------------------------------------------------------------
입력값 선언 기억값
----------------------------------------------------------------------------------------------
1234.56789 NUMBER 1234.56789
1234.56789 NUMBER(7,3) 1234.56789
1234.56789 NUMBER(*,3) 1234.56789 --10의 125승이상 이내라면 필요한 만큼 자리사용
1234.56789 NUMBER(7) 1235-- 스케일이 생략됨 , 스케일이 생략되면 0으로 간주함 (=NUMBER(7,0))
1234.56789 NUMBER(5,3) 오류 -- 자리수가 부족해서 데이터가 저장되지 않고 오류가 발생함
1234.56789 NUMBER(7,-2) 1200
----------------------------------------------------------------------------------------------
2) 정밀도 < 스케일
-희귀한 경우
-정밀도 : 0이 아닌 유효숫자의 갯수
-스케일 - 정밀도 : 소숫점 다음에 존재해야하는 0의 갯수
-----------------------------------------------------------------------------------------------
입력값 선언 기억값
----------------------------------------------------------------------------------------------
0.2345 NUMBER(4,5) 오류
1.2345 NUMBER(3,5) 오류
0.0123 NUMBER(3,4) 0.0123 --소숫점이하의 자릿수, 4-3은 0의 갯수
0.0012345 NUMBER(3,5) 0.00124 -- 5-3= 2 는 0의 갯수
----------------------------------------------------------------------------------------------
-- 1234.007 NUMBER(5,3)의 경우? 오류가 발생함. 정밀도 < 스케일과 정밀도> 스케일의 경우를 분리해서 생각할것.
3. 날짜형
-년,월,일,시,분,초를 저장하는 자료형이
-DATE, TIMESTAMP이 제공
1)DATE
.표준 날짜형
. '+'와'-'의 대상 : 연산 결과는 날짜형
. 날짜형 - 날짜형 : 경과된 일수
INSERT INTO TEMP05 VALUES(SYSDATE,SYSDATE-20,SYSDATE+30); --SYSDATE 현재 윈도우 시스템이 가지고 있는 날짜를 가져오는 함수
SELECT * FROM TEMP05; -- 시,분,초는 출력이 안됨 DATE에는 값이 저장되어있음
** 시각정보를 표현할때 : TO_CHAR 함수 사용
SELECT TO_CHAR(COL1,'YYYY-MM-DD PM HH24:MI:SS'), -- AM, PM은 오전 오후 형식을 지정하는 문자열이다. 둘다 같은 기능임
TO_CHAR(COL2,'YYYY-MM-DD PM HH24:MI:SS'),
TO_CHAR(COL3,'YYYY-MM-DD AM HH24:MI:SS')
FROM TEMP05;
SELECT TRUNC(SYSDATE) -TRUNC(COL2) FROM TEMP05 -- TRUNC 시간은 날리고 날짜만 남김
SELECT MOD ((TRUNC(SYSDATE)-'00010101'))-1,7) FROM DUAL;
2) TIMESTAMP
- 시간대정보(TIMEZONE)와 10억분의 1초 단위의 시각정보 제공
- 응용프로그램(java나 jsp등에서 시간은 1/1000초 사용)
(사용형식)
컬럼명 TIMESTAMP;
컬럼명 TIMESTAMP WITH TIME ZONE;
컬럼명 TIMESTAMP WITH LOCAL TIME ZONE;
-'TIMESTAMP': 시간대 정보 없음
-'TIMESTAMP WITH TIME ZONE' : 시간대 정보 제공
-'TIMESTAMP WITH LOCAL TIME ZONE' : 서버가 위치한 시간대 정보 = TIME ZONE
과 동일
사용예)
CREATE TABLE TEMP06(
COL1 TIMESTAMP,
COL2 TIMESTAMP WITH TIME ZONE,
COL3 TIMESTAMP WITH LOCAL TIME ZONE );
INSERT INTO TEMP06 VALUES(SYSDATE,SYSDATE,SYSDATE);
SELECT * FROM TEMP06
4.기타 자료형
- 이전 자료를 처리하기 위한 자료형
- BLOB, BFILE , RAW , LONG RAW
1) RAW
- 작은 크기의 이진자료 저장
- 오라클에서 해석이나 변환작업을 수행하지 않음
- 최대 2000BYTE 저장 가능
- 주로 음성, 사진 등 저장
- 16진수 및 2진수 저장 가능
(사용형식)
컬럼명 RAW(크기);
(사용예)
CREATE TABLE TEMP07(
COL1 RAW(1000),
COL2 RAW(1000));
INSERT INTO TEMP07 VALUES(HEXTORAW('7DFF'),'11001001');
SELECT *FROM TEMP07;
2)BFILE
- 이진 자료 저장
- 원본자료를 테이블 외부에 저장하고 테이블에는 경로 정보만 저장
- 4gb까지 저장 가능
(사용형식 )
컬럼명 BFFILE;
그림저장순서
(1) 원본 자료 저장된 디렉토리 객체 생성
-디렉토리 별칭 (ALIAS) 30BYTE VKDLFAUD 256B 까지 사용가능
CREATE DIRECTORY TEST_DIR AS 'D:\A_TeachingMaterial\2.Oracle\workspace';
-디렉토리 별칭 : TEST_DIR
(2) 원본을 저장할 테이블 생성 = 칼럼 =>BFFAIL''
CREATE TABLE TEMP08(
COL1 BFILE);
INSERT INTO TEMP08 VALUES(BFILENAME('TEST_DIR','SAMPLE.jpg'));
SELECT * FROM TEMP08;
'개발 Memo > Oracle' 카테고리의 다른 글
Oracle 11g (Oracle Xe)설치 (0) | 2022.07.16 |
---|---|
[Oracle 오라클]문자열 데이터 타입 (0) | 2021.05.25 |
[Oracle 오라클] 테이블 저장 예제 (0) | 2021.05.24 |
[Oracle 오라클]AlTER Table (테이블 이름 구조 변경) (0) | 2021.05.24 |
[OracleSql]DML(Data Manipulation Language) - INSERT, UPDATE (0) | 2021.05.12 |