쌓고 쌓다
[SQL] 데이터 형식 본문
정수형
데이터 형식 | 바이트 수 | 숫자 범위 |
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