Search
📊

MySQL Basic - Data Type & Constraint

Created at
2018/07/27
Updated at
2021/09/20
Tags
Keywords
Database
3 more properties
MySQL 문법을 익히기 전에 데이터베이스에서 테이블을 생성할 때 알아야하는 데이터 타입과 제약조건에 대해 알아보자

Data Type

1. Numberic

1) 정수 타입(integer types)

Type
Storage (Bytes)
Minimum Value Signed
Minimum Value Unsigned
Maximum Value Signed
Maximum Value Unsigned
2
-32,768
0
32,767
65,535
3
-8,388,608
0
8,388,607
16,777,215
4
-2,147,483,648
0
2,147,483,647
4,294,967,295
8
263-2^{63}
0
26312^{63}-1
26412^{64}-1

2) 고정 소수점 타입(fixed-point types)

DECIMAL(M, D)
M : 소수점을 포함한 전체 자리수
D : 소수 부분 자리수
ALTER TABLE user1 ADD COLUMN deci DECIMAL(5,2)
SQL
복사
NUMERIC(M, D)

3) 실수 (floating-point types)

소수점을 나타내기 위한 데이터 타입으로 아래의 두 타입이 있음(데이터 저장공간의 차이가 있음)
FLOAT (4byte)
DOUBLE (8byte)
아래와 같이 고정 소수점 타입으로도 사용 가능
FLOAT(M,D)
DOUBLE(M,D)

4) 비트 값 타입 ( bit value type )

0과 1로 구성이 되는 2진수(binary) 데이터
BIT(M)
M: 비트의 범위
예) M을 5로 작성하면 00000(2) ~ 11111(2) 까지 표현 가능

2. Date & Time

1) DATE

DATE는 날짜를 저장하는 데이터 타입
기본 포맷: "년-월-일"

2) DATETIME

DATETIME은 날짜와 시간을 저장하는 데이터 타입
기본 포맷: "년-월-일 시:분:초"

3) TIMESTAME

TIMESTAME는 날짜와 시간을 저장하는 데이터 타입 DATETIME과 다르게 날짜를 입력하지 않으면 현재 날짜와 시간을 자동으로 저장

4) TIME

TIME은 시간을 저장하는 데이터 타입
기본 포맷: "시:분:초"

5) YEAR

YEAR는 연도를 저장할수 있는 데이터 타입
YEAR(2)는 2자리의 연도를 저장
YEAR(4)는 4자리의 연도를 저장

3. String

1) CHAR & VARCHAR

1.
CHAR: 고정형 문자열
2.
VARCHAR: 가변형 문자열
Value
CHAR(4)
Storage Required
VARCHAR(4)
Storage Required 1
'  '
4 bytes
''
1 byte
'ab '
4 bytes
'ab'
3 bytes
'abcd'
4 bytes
'abcd'
5 bytes
'abcd'
4 bytes
'abcd'
5 bytes

2) TEXT

CHAR와 VARCHAR는 대체로 크기가 작은 문자열을 저장할때 사용 크기가 큰 문자열을 저장할 때는 TEXT를 사용
Type
Maximum Length
255(=281=2^8-1) bytes
65,535(=2161=2^{16}-1) bytes
= 64KB
16,777,215 (=2241=2^{24}-1) bytes
= 16MB
4,294,967,295 (=2321=2^{32}-1) bytes
= 4GB

2. Constraint

데이터 베이스의 테이블을 생성할때 각 컬럼은 각각의 제약조건을 가짐

1) NOT NULL

NOT NULL 제약조건이 있는 컬럼에 NULL 값(비어있는 값)을 저장할수 없음

2) UNIQUE

UNIQUE 제약조건이 있는 컬럼에 같은 값을 저장할 수 없음

3) PRIMARY KEY

컬럼을 기본키로 설정하기 위해서는 NOT NULL과 UNIQUE 제약조건을 동시에 만족해야 함
즉, 컬럼에 비어 있는 값, 중복되는 값을 저장할수 없음
하나의 테이블에 하나의 컬럼에만 이 조건을 설정 가능

4) FOREIGN KEY

다른 테이블과 연결되는 값이 저장

5) DEFAULT

데이터를 저장할때 해당 컬럼에 별도의 저장값이 없으면 DEFAULT로 설정된 값이 저장

6) AUTO_INCREMENT

주로 테이블의 PRIMARY KEY 데이터를 저장할때 자동으로 숫자를 1씩 증가시켜 주는 기능으로 사용
참고 자료
패스트캠퍼스 '데이터 사이언스 스쿨 Python 8기' 수업자료
이동명, 권오현, 고정국, 「컴퓨터 사이언스 개정판」