: 시스템과 프로그래밍 언어에서 실수/소수/자료형 등의 여러 데이터를 식별하는 타입.
원하는 정보를 가장 효율적으로 처리하려면 ?
=> 적절한 데이터 타입의 선정이 필요하다 !
적절하지 못한 데이터 타입의 선정은 수행속도를 나쁘게 하고 불필요한 자원의 낭비를 가져온다.
오라클에서 제공하는 데이터 타입들에 대해 하나하나 살펴보자.
고정길이 문자형 타입
2000바이트
까지 저장 가능하다.(약 666글자)한글 한 글자는 3 Byte 로 저장되고, 한글을 제외한 공백/숫자는 1 Byte로 저장된다.
가변길이 문자형 타입
정의된 기억공간에서 데이터의 길이만큼 사용하고, 남는 공간은 시스템에 반납한다.
4000 바이트
까지 저장 가능NULL 상태 입력
에러 발생
38자리
를 넘을 수 없다반올림되어 저장
에러 발생
NUMBER(p,s)
로 지정시 p는 s의 자리수를 포함한 길이이므로 감안하여 p의 자릿수를 결정✅ NUMBER 를 정의하는 방법
- 고정 소수점 숫자 : NUMBER(p,s)
- 정수 : NUMBER(p) 또는 NUMBER(p,0)
- 부동 소수점 숫자 : NUMBER
고정 소수점 방식
특정 위치에 소수점을 고정해놓고 그 앞자리에는 실수의 정수부를, 뒷자리에는 실수의 소수부를 나타내는 방식.
NUMBER(p,s) 에서 p는소수점 기준 모든 유효숫자 자릿수.
만약 p에 명시한 것보다 큰 숫자값을 입력하면 오류가 발생한다.
s가 양수면 소수점 이하의 유효숫자 자릿수
s가 음수면 소수점 이상(소수점 기준 왼쪽) 유효숫자 자릿수를 나타낸다.
s에 명시한 숫자 이상의 숫자를 입력하면, s에 명시한 숫자로 반올림 처리
s가 음수이면 소수점 기준 왼쪽 해당 자릿수에서 반올림한다.
✅ s가 p보다 크면 ✅
1. p(정밀도) : 0이 아닌 유효숫자의 수
2. s(스케일)-p(정밀도) : 소수점 이하에 존재해야 할 0의 개수
3. s : 소수점 이하의 데이터의 수.
숫자값 | 타입 | 결과 | 설명 |
---|---|---|---|
123.54 | NUMBER | 123.5 | 소수점이 지정되지 않았을 때 소수점이 입력되어 반올림해서 저장. |
123.54 | NUMBER(3) | 124 | p는 3이고, s는 0이다. 이때는 유효숫자가 3개여야 하므로 소수점 아래 첫번째 자리에서 반올림. |
123.54 | NUMBER(3,2) | 오류 | p는 3인데 유효숫자는 5자리. 유효숫자가 p에 명시한 것보다 더 크므로 오류이다. |
123.54 | NUMBER(5,2) | 123.54 | 총 유효숫자가 5자리이고 소수점 이하 유효숫자 2자리 맞으므로 정상. |
123.54 | NUMBER(7,1) | 123.5 | s가 1이므로 .54가 반올림되어 .5까지 표시. p보다 유효숫자가 더 작은것은 괜찮음 (크면 오류!) |
123.54 | NUMBER(7,-1) | 120 | 소수점 기준 왼쪽 첫번째 자리에서 반올림하니까 120이 나온다. |
125.54 | NUMBER(7,-1) | 130 | 마찬가지의 방법으로 하면 130이 나온다. |
0.1234 | NUMBER(4,5) | 오류 | 유효숫자는 4개가 맞지만 s가 5인데 소수점 이하가 4자리 이므로 오류.(유효숫자가 p 보다 작은것은 ok. s보다 작은 것은 오류) |
0.01234 | NUMBER(4,5) | 0.01234 | 소수점이하 5자리까지 유효숫자가 4개이므로 정상이다. |
0.0001234 | NUMBER(4,7) | 0.0001234 | 소수점이하 7자리까지 유효숫자가 4개이므로 정상 |
0.0001234 | NUMBER(3,7) | 오류 | 소수점 이하 7자리까지 유효숫자는 4개인데(1234) p가 3이므로 오류. |
0.0000123 | NUMBER(3,7) | 0.0000123 | 소수점 이하 일곱째자리까지 유효숫자는 3개이고 p가 3이므로 정상. s가 p보다 크므로 여기서는 p가 소수점 이하 유효숫자 자릿수를 의미. |
0.00001234 | NUMBER(3,7) | 0.0000123 | 소수점 이하 7자리까지 유효숫자는 123의 3개(4는 제외됨) |
날짜형 타입
SYSDATE
: 현재일과 시간을 제공가변길이 문자
저장CLOB
으로 대체 (기능 업그레이드 중단)대용량 문자열 자료
를 처리하기 위한 데이터 타입4GB
까지 처리 가능
지금도 금융쪽 it업무 하고 계신가요?