코드 그라데이션
DB 핵심 정리 (5) 데이터 모델링, 정규화, 자료형 본문
데이터 모델링 관련 참고 내용
https://mangkyu.tistory.com/27
정규화 관련 참고 내용
https://mangkyu.tistory.com/28
https://mangkyu.tistory.com/110
정규화 관련 보충
제1정규화가 지켜져야 제2정규화도 수행할 수 있다.
자료형
숫자형 데이터 타입
타입 | 정의 | 범위 | UNSIGNED 사용가능여부 |
TINYINT(n) | 정수형 데이터 타입 | ○ 1 Byte(2^8) - 128 ~ + 127 또는 0 ~ 255 수 표현 가능 ○ 1Byte(2^8) - 128 ~ + 127 또는 0 ~ 255 수 표현 가능 |
O |
SMALLINT(n) | 정수형 데이터 타입 | ○ 2 Byte(2^16) - 32,768 ~ 32,167 또는 0 ~ 65536 수 표현 가능 |
O |
MEDIUMINT(n) | 정수형 데이터 타입 | ○ 3 Byte - 8,388,608 ~ 8,388,607 또는 0 ~ 16,777,215 수 표현 가능 |
O |
INT(n) | 정수형 데이터 타입 | ○ - 4 Byte - 2,147,483,648 ~ 2,147,483,647 또는 0 ~ 4,294,967,295 수 표현 가능 |
O |
BIGINT(n) | 정수형 데이터 타입 (LONG) |
○ - 8 byte - 2^64 - 1 표현 가능 (무한 수 표현 가능이라고도 함) |
O |
DECIMAL(m, d) | 고정 소수형 데이터 타입고정 (길이 + 1byte) ○ 화폐 데이터와 같이 데이터의 정확도를 요하는 경우에 주로 사용 ○ M의 최대값은 65, D는 소수 자릿수이며 0이면 소수점 가지지 않음 |
○ 소수점을 사용한 형태 ○ Default : m ⇒ 10 |
X |
FLOAT(n) | 부동 소수형 데이터 타입 | ○ 4 byte ○ 부동 소수점을 사용한 형태 |
X |
DOUBLE(n) | 부동 소수형 데이터 타입 | - 8 byte ○ DOUBLE을 문자열로 저장 |
X |
날짜형 데이터 타입
타입 | 정의 | 범위 | 형식 | 길이 |
DATE | ○ 날짜(년도, 월, 일) 형태의 기간 표현 데이터 | 3 byte | 0000-00-00 (YYYY-MM-DD) |
1000-01-01 ~ 9999-12-31 |
TIME | ○ 시간(시, 분, 초) 형태의 기간 표현 데이터 |
3 byte | 00:00:00 | . |
DATETIME | ○ 날짜와 시간 형태의 기간 표현 데이터 |
8 byte | 0000-00-00 00:00:00 (YYYY-MM-DD hh:mm:ss) |
1000-01-01 00:00:00.000000 ~ 9999-12-31 23:59:59.999999 |
TIMESTAMP | ○ 날짜와 시간 형태의 기간 표현 데이터 ○ 타입 시스템 변경 시 자동으로 그 날짜와 시간이 저장 |
4 byte | Integer | . |
YEAR | ○ 연도 표현 데이터 타입 | 1 byte | 0000 | . |
문자형 데이터 타입
타입 | 정의 | 길 |
CHAR(n) | 고정 길이 데이터 타입 ○ 지정된 길이보다 짧은 데이터 입력 시 나머지 길이는 공백으로 채워짐 ○ 검색시, PAD_CHAR_TO_FULL_LENGTH 모드를 설정하지 않으면 공백은 제거됨 ○ 값을 받아 올 때 이 공백은 자동으로 제거되며 PAD_CHAR_TO_FULL_LENGTH 모드를 활성화하면 공백까지 다 읽어온다 |
0 ~ 255 (byte) |
VACHAR(n) | ○ 가변 길이 데이터 타입 ○ 지정된 길이보다 짧은 데이터 입력 시 공백으로 채우지 않음 ○ 저장시 1-byte 혹은 2-byte 길이 Prefix 데이터를 저장. 이 Prefix 데이터는 값의 바이트 수에 대한 정보를 담는다. |
0 ~ 65,535 (byte) |
TINYTEXT(n) | ○ 문자열 데이터 타입(최대 255 byte) - TINYBLOB와 같은 길이값을 저장 가능 (단 차이점은 저장 될 때 nonbinary string으로 저장) |
0 ~ 255 (byte) |
TEXT(n) | ○ 문자열 데이터 타입(최대 65,535 byte) - BLOB와 같은 길이값을 저장 가능(단 차이점은 저장 될 때 nonbinary string으로 저장) |
0 ~ 65,535 (byte) |
MEDIUMTEXT(n) | ○ 문자열 데이터 타입(최대 16,777,215 byte) ○ MEDIRMBLOB와 같은 길이값을 저장 가능 (단 차이점은 저장 될 때 nonbinary string으로 저장) |
0 ~ 16,777,215 (byte) |
LONGTEXT(n) | ○ 문자열 데이터 타입(최대 4,294,967,295 byte) ○ LONGBLOB와 같은 길이값을 저장 가능 (단 차이점은 저장 될 때 nonbinary string으로 저장) |
0 ~ 4,294,967,295 (byte) |
이진 데이터 타입
타입 | 정의 | 길이 |
BINARY(n) & BYTE(n) | CHAR 형태의 이진 데이터 타입 | 최대 255 byte |
VARBINARY(n) | VARCHAR 형태의 이진 데이터 타입 | 최대 65,535 byte |
TINYBLOB(n) | 이진 데이터 타입 | 최대 255 byte |
BLOB(n) | 이진 데이터 타입 | 최대 65,535 byte |
MEDIUMBLOB(n) | 이진 데이터 타입 | 최대 16,777,215 byte |
LONGBLOB(n) | 이진 데이터 타입 | 최대 4,294,967,295 byte |
이외에도 JSON, Spatial 등 다른 자료형도 있다.
728x90
'Database > SQL' 카테고리의 다른 글
DB 핵심 정리 (6) 제약 조건 summary (0) | 2024.03.12 |
---|---|
DB 핵심 정리 (4) SQL문 작성 샘플 예시 (0) | 2024.03.10 |
DB 핵심 정리 (3) 변수 네이밍 규칙 (0) | 2024.03.10 |
DB 핵심 정리 (2) SQL 개념과 분류, 수직적 확장과 수평적 확장 (0) | 2024.03.09 |
DB 핵심 정리 (1) DB의 개념과 DBMS의 종류 (1) | 2024.03.08 |
Comments