티스토리 뷰
데이터 타입을 알아보기에 앞서 데이터(Data)의 종류가 궁금하신 분은 더보기를 참고해주세요.
↓
데이터(Data)의 종류
1. 정형화된 데이터
- 일정한 형식이나 틀이 있는 데이터
- 형태가 있고, 데이터 모델을 준수하는 데이터
- ex)DB테이블
2. 반정형화된 데이터
- 형태가 있으나 데이터 모델을 준수하지 않는 데이터.
- ex) XML, JSON(JavaScript Object Notation), HTML
- HTML을 JSoup으로 크롤링 할 수 있는 것은 반정형데이터라 형태가 있기 때문이다.
3. 비정형화된 데이터
- 아예 정형화되어 있지 않은 데이터
- 데이터 모델이 없거나 미리 정의되지 않은 정보
- ex) 댓글, 페이스북 포스팅, 트위터 트윗 등등..
데이터 타입(자료형)
시스템, 프로그래밍 언어에서 여러 데이터를 식별하는 타입으로 값을 저장하는 방식에 따라 골라 사용됩니다.
*주로 많이 사용하는 주요 데이터 타입은 색깔로 표시하겠습니다.
1. 문자형 데이터 타입
데이터 유형 | 정의 |
CHAR(n) | 고정 길이 데이터 타입(최대 2000byte) - 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 공백으로 채워진다. |
VARCHAR2(n) | 가변 길이 데이터 타입(최대 4000byte) - 지정된 길이보다 짧은 데이터가 입력될 시 나머지 공간은 채우지 않는다. |
NCHAR(n) | 고정 길이 유니코드 데이터 타입(최대 2000byte) |
NVARCHAR2(n) | 가변 길이 유니코드 데이터 타입(최대 4000byte) |
LONG | 가변 길이 데이터 타입(최대 2Gbyte) |
CLOB | 대용량 텍스트 데이터 타입(최대 4Gbyte) |
NCLOB | 대용량 텍스트 유니코드 데이터 타입(최대 4Gbyte) |
↓문자데이터 설명
문자데이터에서 중요한 것은 고정길이 문자와 가변길이 문자의 차이점입니다.
가변길이는 실제 입력된 데이터의 길이에 맞춰 데이터의 크기가 변하는 것을 의미합니다.
예를 들어, 고정길이 문자형인 CHAR(10)과 가변길이 문자형인 VARCHAR2(10)에 ABC라는 데이터를 입력했다고 하면 각각 10Byte라는 데이터 공간을 할당했는데요.
CHAR의 경우 ABC 3Byte만 사용되었지만 고정이므로 7Byte의 공간이 낭비됩니다. 그에 비해 VARCHAR2의 경우 가변길이 문자형이기 때문에 데이터공간은 3Byte만 사용하게 됩니다.
비록 예시는 10Byte 공간이지만 범위를 넓혀 서울시민데이터베이스라면 어떨까요? 용량의 낭비가 엄청나겠죠?
따라서, Y/N 등과 같이 1글자만 사용하는 경우가 아니라면 대부분 VARCHAR2를 사용합니다.
사이즈 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
CHAR(10) - 고정 | A | B | C | 낭비되는 용량 | ||||||
VARCHAR(10) - 가변 | A | B | C |
2. 숫자형 데이터 타입
데이터 유형 | 정의 |
BINARY_FLOAT | 부동 소수형 데이터 타입(4byte) - 32bit 부동 소수 |
BINARY_DOUBLE | 부동 소수형 데이터 타입(4byte) - 64bit 부동 소수 |
NUMBER(P,S) | P, S로 표현 숫자 데이터 타입 - P: 1 ~ 38, S: -84 ~ 127 P(Precision): 유효자리수, S(Scale):소수점 유효자리 |
↓숫자 데이터 설명
보통 NUMBER타입을 선호하며 P와 S를 입력하지 않으면 가변 숫자이므로 저장 데이터의 크기에 맞게 자동으로 조절됩니다. P는 소수점을 포함한 전체 자릿수를 의미하고, S는 소수점 자릿수를 의미하며, S에 명시한 숫자 이상의 숫자를 입력하면 S에 명시한 숫자로 반올림 처리됩니다.
3. 날짜형 데이터 타입
데이터 유형 | 정의 |
DATE | 고정 길이 날짜 |
INTERVAL_YEAR | 날짜(년도, 월)형태의 기간 표현 데이터 타입 |
INTERVAL_DAY | 날짜 및 시간(요일, 시, 분, 초)형태의 기간 표현 데이터 타입 |
TIMESTAMP | 밀리초(ms)까지 표현 데이터 타입 |
TIMESTAMP_WITH TIME ZONE |
날짜 및 시간대 형태의 데이터 타입 |
TIMESTAMP_WITH LOCAL TIME ZONE |
저장 시 데이터베이스 시간대를 준수, 조회시 조회하는 클라이언트 시간 표현 데이터 타입 |
4. 이진 데이터 타입
데이터 유형 | 정의 |
RAW(n) | 가변 길이 이진 데이터 타입(최대 2Gbyte) |
LONGRAW | 가변 길이 이진 데이터 타입(최대 4Gbyte) |
BLOB | 대용량의 바이너리 데이터를 저장하기 위한 데이터 타입(최대 4Gbyte) |
BFILE | 대용량의 바이너리 데이터를 파일형태로 저장하기 위한 데이터 타입(최대 4Gbyte) |
'데이터베이스(Database) 학습' 카테고리의 다른 글
6.NULL도 데이터이다. (0) | 2021.09.30 |
---|---|
1. 데이터베이스란? (0) | 2021.09.29 |
- Total
- Today
- Yesterday
- 반복문
- 자바 if if
- 반복문 break continue
- java 프로그래밍이란
- 자바 do while
- 조건문
- 자바 조건문 if else if문
- if else if
- 스프링 로깅
- java 기초
- 중첩반복문
- 자바 switch case
- Downcasting
- java
- 객체지향이란
- 데이터베이스 null
- 자바의 기초
- 스프링 로그
- 자바 연산자 우선순위
- 자바 조건문 if else
- Switch Case
- if if
- 자바 if else if else
- 자바 반복문 for문
- 자바 프로그래밍이란
- 다운캐스팅
- 스프링 logging
- 자바
- java란
- 자바 반복문
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |