쌓고 쌓다

[SQL] 데이터 형식 본문

프로그래밍/SQL

[SQL] 데이터 형식

승민아 2022. 6. 26. 19:59

정수형

데이터 형식 바이트 수  숫자 범위
TINYINT 1 -128 ~ +127
SMALLINT 2 -32,768 ~ +32,767
INT 4 약 -21억 ~ +21억
BIGINT 8 약 -900경 ~ +900경

-> tiny, small , big

 

정수형 테이블 예제

CREATE TABLE hongong4 ( tinyint_col TINYINT, 
			smallint_col SMALLINT, 
			int_col INT, 
                        bigint_col BIGINT );

 

음수 범위를 제외하고 0부터 시작해 바이트 수 채우기

UNSIGNED 예약어를 이용해 0부터 시작하는 범위를 만들어 내 음수 범위를 없애고 양수 범위를 늘릴 수 있다.

INT를 예로 -128 ~ 127 -> 0 ~ 255 로 확장하는 것이다.

CREATE TABLE member ( mem_id CHAR(8) NOT NUL PRIMARY KEY, height TINYINT UNSIGNED );

키(height)를 0~255로 사용할 수 있게 된다.

다른 정수형도 마찬가지로 UNSIGNED를 붙이면 0부터 시작하는 범위를 만들 수 있다.

 

문자형

데이터 형식 바이트 수
CHAR(개수) 1~255
VARCHAR(개수) 1~16383

CHAR은 고정길이 문자형으로 자릿수가 고정되어 있다.

즉, CHAR(10)에 '가나다' 만 입력을 한다면 10자리중 3자리만 사용하고 7자리는 낭비가 된다.

그래서 VARCHAR(Variable Character)는 가변길이 문자형으로, VARCHAR(10)에 '가나다'만 입력하면 3자리만 만들어져 사용되며, 공간을 효율적으로 저장할 수 있다.

하지만, 성능면에서는 CHAR이 더 좋다.

 

대량의 데이터 형식

CHAR는 최대 255자, VARCHAR 최대 16383자까지 지정한다.

더 큰 데이터는 아래의 형식으로 저장하자.

데이터 형식 바이트 수
TEXT 형식 TEXT 1~65535
LONGTEXT 1~4294967295
BLOB 형식 BLOB 1~65535
LONGBLOB 1~4294967295

BLOB(Binary Long Object) : 이미지, 동영상 등의 데이터라고 생각하자

CREATE TABLE movie ( movie_id INT, movie_script LONGTXT, movie_film LONGBLOB );

 

실수형

데이터 형식 바이트 수 설명
FLOAT 4 소수점 아래 7자리까지 표현
DOUBLE 8 소수점 아래 15자리까지 표현

 

날짜형

데이터 형식 바이트 수 설명
DATE 3 날짜만 저장. YYYY-MM-DD 형식
TIME 3 시간만 저장. HH:MM:SS 형식
DATETIME 8 날짜 및 시간을 저장.
YYYY-MM-DD HH:MM:SS

날짜 또는 시간을 입력할 때는 문자와 동일하게 작은따옴표로 묶어준다.

 

모든 내용은 '혼자 공부하는 SQL' 도서를 학습후 정리한 내용입니다. 

'프로그래밍 > SQL' 카테고리의 다른 글

[SQL] 테이터 형 변환  (0) 2022.06.27
[SQL] 변수 사용 + LIMIT  (0) 2022.06.26
[SQL] INSERT, UPDATE, DELETE  (0) 2022.06.25
[SQL] MySQL UPDATE, DELETE 사용 설정 방법 (Error Code : 1175)  (0) 2022.06.25
[혼공S] CH.3-2 요약  (0) 2022.06.25
Comments