본문 바로가기
Data-driven Methodology/DataBase

[DataBase] MySQL DATATYPE

by goatlab 2024. 5. 21.
728x90
반응형
SMALL

DATATYPE

 

데이터 타입은 컴퓨터의 자원을 효율적으로 사용하기 위해 사용되는 방법이다. 많이 사용되는 데이터 타입의 종류는 숫자형, 문자형, 날짜형 등이 있다. 저장할 데이터의 타입을 지정하면 저장 공간의 할당을 효율적으로 할수 있어 DBMS의 성능을 증가 시킬수 있는 장점이 있다. (https://dev.mysql.com/doc/refman/5.7/en/data-types.html)

 

Numberic (숫자형 데이터) : 정수 (integer) 타입

 

TINYINT 테이블을 생성해서 해당 범위의 값이 들어가는지 확인한다.

 

CREATE TABLE number1(
data TINYINT
);

 

지정된 데이터 타입이 표현할수 있는 숫자의 범위를 벗어났기 때문에 데이터가 입력되지 않는다.

 

INSERT INTO number1
VALUE (128);

 

Unsigned 조건을 추가하면 0 ~ 255까지의 숫자를 입력할수 있다.

 

CREATE TABLE number2(
data TINYINT UNSIGNED
);

INSERT INTO number2
VALUE (128);

 

테이블의 컬럼에 어느정도 범위로 데이터가 들어가는지 확인을 해서 컬럼의 데이터 타입을 결정해야 한다.

 

Numberic (숫자형 데이터) : 실수 (float) 타입

 

소수점을 나타내기 위한 데이터 타입으로 아래의 두가지 데이터 타입이 있다. 두가지의 데이터 타입은 데이터 저장 공간의 차이가 있다.

 

FLOAT (4byte) 정수부와 실수부를 합쳐 6자리의 숫자를 입력할 수 있
DOUBLE (8byte) 정수부와 실수부를 합쳐 17자리의 숫자를 입력할 수 있음
# FLOAT 데이터 타입의 테이블 생성
CREATE TABLE number3(
data FLOAT
);

# FLOAT 데이터 입력
INSERT INTO number3
VALUE (12.3456789);

# DOUBLE 테이블 생성
CREATE TABLE number4(
data DOUBLE
);

# DOUBLE 데이터 입력
INSERT INTO number4
VALUE (1234567890.1234567890);

 

Numberic (숫자형 데이터) : DECIMAL

 

실수에서 전체 자리수와 소수점 자리수를 설정할 수 있다. DECIMAL(5, 2)로 설정하면 전체 자리수를 5자리 소수점을 2자리로 설정한다는 의미이다. DECIMAL 예약어 대신에 NUMERIC 예약어를 사용해도 된다.

 

# DECIMAL 데이터 타입을 사용하는 테이블 생성
CREATE TABLE number5(
data DECIMAL(5, 2)
);

# 데이터 입력 : 소수점 3번째 자리에서 반올림 되어 123.46 이 입력
insert into number5
value (123.456);

# 데이터 입력 : 소수점 3번째 자리에서 반올림 되어 12.35 가 입력
insert into number5
value (12.345)

 

String (문자열 데이터) : CHAR & VARCHAR

 

CHAR 고정 길이 문자열 데이터 타입으로 255(28)자까지 입력이 가능
VARCHAR 가변 길이 문자열 데이터 타입으로 65535(216)자까지 입력이 가능
Value CHAR(4) storage required VARCHAR(4) storage required
'' '       ' 4 bytes '' 1 byte
'ab' 'ab   ' 4 bytes 'ab' 3 bytes
'abcd' 'abcd' 4 bytes 'abcd' 5 bytes
'abcdefgh' 'abcd' 4 bytes 'abcd' 5 bytes
# CHAR 데이터 타입이 들어간 테이블 생성
CREATE TABLE str1(
data CHAR(255) # 256 이상으로 설정하면 테이블이 생성되지 않음
);

# 데이터 입력
INSERT INTO str1
VALUE ("문자열 입력");

 

String (문자열 데이터) : TEXT

 

TEXT는 CHAR와 VARCHAR는 대체로 크기가 작은 문자열을 저장할 때 사용되며 크기가 큰 문자열을 저장할 때는 TEXT 데이터 타입을 사용한다. TEXT의 타입에 따라서 아래와 같이 크기를 가진다.

 

Type Maximum length
TINYTEXT 255 bytes
TEXT 64 KiB
MEDIUMTEXT 16 MiB
LONGTEXT 4 GiB

 

Date & Time

 

DATE 날짜를 저장하는 데이터 타입이며, 기본 포맷은 "년-월-일"
DATETIME 날짜와 시간을 저장하는 데이터 타입이며, 기본 포맷은 "년-월-일 시:분:초"
TIMESTAME 날짜와 시간을 저장하는 데이터 타입이며, DATETIME과 다른 점은 날짜를 입력하지 않 으면 현재 날짜와 시간을 자동으로 저장할 수 있는 특징
TIME 시간을 저장하는 데이터 타입이며, 기본 포맷은 "시:분:초"
YEAR
  • 연도를 저장할수 있는 데이터 타입
  • YEAR(2)는 2자리의 연도를 저장할 수 있으며 YEAR(4)는 4자리의 연도를 저장할 수 있음

 

728x90
반응형
LIST