index.ys
2023. 10. 2. 14:47
데이터 형식
- 데이터가 데이터베이스에 저장될 때 데이터가 저장되는 형식
- 숫자형, 문자형, 날짜형, BLOD등의 형식이 존재
- 적절한 데이터형식을 지정하고 데이터 공간의 낭비를 줄임
정수형
- 소수점이 없는 숫자
- EX) 인원 수, 주문 수량, 가격 등에 사용
- 대부분의 정수의 경우 TINYINT나 SMALLINT의 형식에서 데이터를 정의할 수 있음
데이터 형식 |
바이트 수 |
숫자 범위 |
TINYINT |
1 |
-128~127 |
SMALLINT |
2 |
-32,768~32,767 |
INT |
4 |
약 -21억~+21억 |
BIGINT |
8 |
약 -900경~ +900경 |
정수형 컬럼생성
- 테이블 이름과 컬럼명, 데이터 형식을 지정하고 테이블을 생성함
CREATE TABLE 테이블이름 (
tinyint_col TINYINT,
smallint_col SMALLINT,
int_col INT,
bigint_col BIGINT );
정수형 범위에 벗어나는 데이터 삽입시 에러
INSERT INTO hongong4 VALUES(127, 32767, 2147483647, 9000000000000000000);
- 범위에 벗어나는 데이터 삽입시 에러 발생
- tinyint_col에 입력할 수 있는 범위를 벗어났다는 에러 발생 Out of range
UNSIGNED
- TINYINT는 -128부터 +127의 정수를 표현할 수 있음
- 256비트 , 1바이트의 크기를 표현할 수 있음
- 0~255 까지의 데이터를 표현하기 위해 UNSIGNED 키워드를 사용하여 데이터를 양수만 표현할 수 있음
- UNSIGEND 키워드 없이 양수로는 127까지만 표현할 수 있었으나 UNSIGNED 키워드를 사용해 0부터 255까지의 데이터 ( 1바이트 )까지 표현할 수 있음
CREATE TABLE INT_TABLE (
tinyint_col TINYINT unsigned,
smallint_col SMALLINT,
int_col INT,
bigint_col BIGINT );
- 마찬가지로 256부터는 범위를 벗어났다는 에러 반환
문자형
CHAR
- 1~255바이트, 255까지의 문자를 표현할 수 있는 문자데이터 형식
- 고정길이 문자형, CHAR(20)같은 형식으로 컬럼을 생성하면 2글자가 들어와도 20바이트의 용량을 차지함
- 성능면에서 VARCHAR보다 빠름
VARCHAR
- 1~16383바이트, 16383길이의 문자를 표현할 수 있는 문자데이터 형식
- 가변길이 문자형, VARCHAR(20)으로 형식으로 컬럼을 생성하면 2글자가 들어오면 2바이트의 용량만 차지
- CHAR보다 공간을 효율적으로 운영할 수 있음
CREATE TABLE string_table(
char_string char(20), //20까지의 고정된 바이트의 데이터 형식 지정
varchar_string varchar(20), //입력된 데이터 별로 유연한 바이트 데이터 형식 지정
)
insert into string_table values ('1','544')
정수형으로 데이터를 지정하기 위한 조건
- 전화번호, 핸드폰 번호 등 번호이지만 숫자로써 의미를 가지지 않는 데이터는 정수형이 아닌 문자형으로 데이터를 저장
- 더하기/빼기 등의 연산에 의미가 있거나 숫자의 크기를 비교할 수 있는 데이터들을 정수형으로 저장
대용량 데이터 형식
TEXT
- TEXT로 데이터 형식을 지정하면 65535자 까지 저장 가능
- LONGTEXT로 데이터형식을 지정하면 약 42억자 까지 저장가능
BLOB
- BLOB Binay Long Object : 글자가 아닌 이미지, 동영상등의 데이터 => Binay 이진 이라고 부름
- BLOB이나 LONGBLOB으로 데이터형식을 지정
- LONGBLOB은 최대 4GB까지 데이터 입력 가능
데이터 형식 |
바이트 수 |
TEXT |
TEXT |
1~65535 |
LONGTEXT |
1~4294967295 |
BLOB |
BLOB |
1~65535 |
LONGBLOB |
1~4294967295 |
실수형
FLAOT |
4 |
32.121357 |
DOUBLE |
8 |
32.1213574485687 |
날짜형
ㅁㄴㅇㄹ
DATE |
3 |
날짜만 저장, YYYY-MM-DD |
TIME |
3 |
시간만저장, HH:MM:SS |
DATETIME |
8 |
날짜및 시간 저장, YYYY-MM-DD HH:MM:SS |