MySQL에서 데이터 타입의 종류는 무엇이 있나요?
_____A1: MySQL의 데이터 타입은 크게 숫자형, 문자형, 날짜 및 시간형, 그리고 이진형으로 나뉩니다.
---
Q2: MySQL의 숫자형 데이터 타입에는 어떤 것들이 있나요?
A2: 숫자형 타입은 정수형과 부동소수점형으로 분류됩니다.
- 정수형 (Integer Types)
- TINYINT: 1바이트 크기, -128부터 127까지 (또는 UNSIGNED 시 0~255)
- SMALLINT: 2바이트 크기, -32,768부터 32,767까지
- MEDIUMINT: 3바이트 크기, -8,388,608부터 8,388,607까지
- INT 또는 INTEGER: 4바이트 크기, -2,147,483,648부터 2,147,483,647까지
- BIGINT: 8바이트 크기, 매우 큰 정수 범위
- 부동소수점 및 고정소수점 타입
- FLOAT: 단정도 부동소수점 수, 4바이트
- DOUBLE 또는 DOUBLE PRECISION: 배정도 부동소수점 수, 8바이트
- DECIMAL (또는 NUMERIC): 고정 소수점, 금융 계산 등에 적합하며 소수점 자리수 지정 가능
---
Q3: MySQL에서 문자형 데이터 타입은 어떤 게 있나요?
A3: 문자형은 크게 가변 길이 문자열과 고정 길이 문자열 타입이 있습니다.
- CHAR(n): 고정 길이 문자열, n은 길이 (0~255), 공간 낭비 가능
- VARCHAR(n): 가변 길이 문자열, 최대 n 글자까지 저장 가능 (최대 65,535바이트 제한 있음)
- TEXT 종류: 대용량 텍스트 저장 가능
- TINYTEXT (최대 255 바이트)
- TEXT (최대 65,535 바이트)
- MEDIUMTEXT (최대 16,777,215 바이트)
- LONGTEXT (최대 4,294,967,295 바이트)
- ENUM: 미리 정의된 값 중 하나만 저장 가능
- SET: 미리 정의된 값 중 여러 개 선택 가능
---
Q4: 날짜 및 시간 데이터 타입에는 무엇이 있나요?
A4: MySQL에서 날짜 및 시간 관리에 쓰이는 타입은 다음과 같습니다.
- DATE: ‘YYYY-MM-DD’ 형식, 날짜만 저장 (3바이트)
- DATETIME: ‘YYYY-MM-DD HH:MM:SS’ 형식, 날짜와 시간 저장 (8바이트)
- TIMESTAMP: 1970-01-01 00:00:01 UTC부터 초 단위, 자동 업데이트 가능 (4바이트)
- TIME: ‘HH:MM:SS’ 형식, 시간만 저장 (3바이트)
- YEAR: 연도만 저장, 2바이트
---
Q5: 이진 데이터 타입은 무엇이 있나요?
A5: 이진 데이터 저장용으로 다음과 같은 타입이 있습니다.
- BINARY(n): 고정 길이 이진 데이터 (n 바이트)
- VARBINARY(n): 가변 길이 이진 데이터 (최대 n 바이트)
- BLOB 종류 (Binary Large Object)
- TINYBLOB (최대 255 바이트)
- BLOB (최대 65,535 바이트)
- MEDIUMBLOB (최대 16MB)
- LONGBLOB (최대 4GB)
---
Q6: 데이터 타입 선택 시 주의할 점은 무엇인가요?
A6: 데이터 타입은 저장 공간 및 성능에 직접적인 영향을 미치므로 실제 데이터 범위와 용도에 맞게 최소 크기의 적절한 타입을 선택하는 것이 중요합니다. 예를 들어, 나이 저장 시 INT 대신 TINYINT UNSIGNED를 쓰는 식입니다. 또한 날짜와 시간 정보를 정확히 담기 위해 적절한 타입(DATE, DATETIME, TIMESTAMP)을 골라야 합니다.
---
Q7: MySQL 데이터 타입 별 저장 용량은 어떻게 되나요?
A7: 주요 데이터 타입별 저장 용량은 다음과 같습니다.
| 데이터 타입 | 저장 용량 | 비고 |
|--------------|----------------|---------------------------|
| TINYINT | 1 바이트 | -128 ~ 127 |
| SMALLINT | 2 바이트 | |
| MEDIUMINT | 3 바이트 | |
| INT | 4 바이트 | |
| BIGINT | 8 바이트 | |
| FLOAT | 4 바이트 | 단정도 부동소수점 |
| DOUBLE | 8 바이트 | 배정도 부동소수점 |
| DECIMAL(M,D) | 가변 | 소수점 지정 가능 |
| CHAR(n) | n 바이트 | 고정 길이 문자열 |
| VARCHAR(n) | 가변 (1~2 바이트 + 문자열 길이) | 최대 65,535 바이트 이내 |
| TEXT 종류 | 최대 4GB 정도 | BLOB과 별 개념 |
| DATE | 3 바이트 | |
| DATETIME | 8 바이트 | |
| TIMESTAMP | 4 바이트 | |
| TIME | 3 바이트 | |
| YEAR | 1 바이트 | |
---
MySQL에서 데이터 타입을 올바르게 이해하고 선택하는 것이 데이터베이스 설계의 핵심입니다. 필요에 따라 공식 문서에서 각 타입의 세부 규칙과 제약 조건도 함께 참고하는 것이 좋습니다.
데이터 타입은 크게 네 가지 주요 카테고리로 나눌 수 있습니다: 숫자형, 문자열형, 날짜 및 시간형, 그리고 JSON 데이터 타입입니다.
각 카테고리의 데이터 타입에 대해 자세히 살펴보겠습니다.
1. 숫자형 데이터 타입숫자형 데이터 타입은 정수 및 부동 소수점 숫자를 저장하는 데 사용됩니다.
MySQL에서 제공하는 주요 숫자형 데이터 타입은 다음과 같습니다:- TINYINT : 1바이트 정수, -128에서 127 또는 0에서 255까지의 값을 저장할 수 있습니다.
- SMALLINT : 2바이트 정수, -32,768에서 32,767 또는 0에서 65,535까지의 값을 저장합니다.
- MEDIUMINT : 3바이트 정수, -8,388,608에서 8,388,607 또는 0에서 16,777,215까지의 값을 저장합니다.
- INT : 4바이트 정수, -2,147,483,648에서 2,147,483,647 또는 0에서 4,294,967,295까지의 값을 저장합니다.
- BIGINT : 8바이트 정수, -9,223,372,036,854,775,808에서 9,223,372,036,854,775,807 또는 0에서 18,446,744,073,709,551,615까지의 값을 저장합니다.
- FLOAT : 4바이트 부동 소수점 숫자.- DOUBLE : 8바이트 부동 소수점 숫자.- DECIMAL : 고정 소수점 숫자, 정확한 소수 계산이 필요한 경우에 사용됩니다.
2. 문자열형 데이터 타입문자열형 데이터 타입은 텍스트 데이터를 저장하는 데 사용됩니다.
MySQL에서 제공하는 문자열형 데이터 타입은 다음과 같습니다:- CHAR : 고정 길이 문자열, 최대 255자까지 저장할 수 있습니다.
- VARCHAR : 가변 길이 문자열, 최대 65,535자까지 저장할 수 있습니다.
저장되는 문자열의 길이에 따라 필요한 만큼의 공간만 차지합니다.
- TEXT : 가변 길이 문자열, 최대 65,535자까지 저장할 수 있습니다.
대량의 텍스트 데이터를 저장할 때 유용합니다.
- BLOB : 이진 데이터 객체, 최대 65,535바이트까지 저장할 수 있습니다.
이미지나 파일과 같은 이진 데이터를 저장하는 데 사용됩니다.
- ENUM : 미리 정의된 문자열 집합 중 하나의 값을 저장합니다.
예를 들어, 'small', 'medium', 'large'와 같은 값을 가질 수 있습니다.
- SET : 미리 정의된 문자열 집합에서 0개 이상의 값을 저장합니다.
3. 날짜 및 시간형 데이터 타입날짜 및 시간형 데이터 타입은 날짜와 시간을 저장하는 데 사용됩니다.
MySQL에서 제공하는 주요 날짜 및 시간형 데이터 타입은 다음과 같습니다:- DATE : 날짜를 'YYYY-MM-DD' 형식으로 저장합니다.
- TIME : 시간을 'HH:MM:SS' 형식으로 저장합니다.
- DATETIME : 날짜와 시간을 'YYYY-MM-DD HH:MM:SS' 형식으로 저장합니다.
- TIMESTAMP : 날짜와 시간을 'YYYY-MM-DD HH:MM:SS' 형식으로 저장하며, UTC 기준으로 저장됩니다.
- YEAR : 연도를 저장하는 데 사용되며, 'YYYY' 형식으로 저장됩니다.
4. JSON 데이터 타입MySQL
5.7부터 도입된 JSON 데이터 타입은 JSON 형식의 데이터를 저장하는 데 사용됩니다.
JSON 데이터 타입은 구조화된 데이터를 저장하고, 이를 쉽게 쿼리하고 조작할 수 있는 기능을 제공합니다.
결론MySQL은 다양한 데이터 타입을 제공하여 사용자가 필요에 따라 적절한 형식을 선택할 수 있도록 지원합니다.
데이터베이스 설계 시 데이터의 특성과 용도에 맞는 데이터 타입을 선택하는 것이 중요합니다.
올바른 데이터 타입을 선택하면 저장 공간을 절약하고, 쿼리 성능을 향상시키며, 데이터 무결성을 유지하는 데 도움이 됩니다.
작성자:
박하은 [비회원]
| 작성일자: 1년 전
2024-09-06 13:11:06
조회수: 248 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
조회수: 248 | 댓글: 0 | 좋아요: 0 | 싫어요: 0
내용이 부정확하다면 싫어요를 클릭해주세요.