테이블을 생성할떄 컬럼에 들어갈 데이터에 대한 제약조건을 걸었었는데, 그 안에서 컬럼에 들어갈 자료형도 지정 할 수 있다.
어떤 자료형이 있는지 간단히 알아보자
(컴퓨터는 모든 데이터를 0과 1로 인식하는 것을 다시 상기하기)
테이블의 각 컬럼(열 데이터)들마다 어떤 자료형이 들어갈 것인지 명시해야(숫자인지, 문자인지 등), 정확한 데이터가 입력될 수 있기 때문에 오류를 방지할 수 있어 테이블을 생성할 때 자료형을 입력해준다.
ex) 이름을 넣는데 숫자가 들어오면 안되니깐 문자만 들어올수 있게 지정해주는 것이다.
데이터 용량에 따라 숫자 데이터 크기를 설정한다.
자료형 | 바이트 | SIGNED | UNSIGNED |
---|---|---|---|
TINYINT | 1 | -123 ~ 127 | 0 ~ 255 |
SMALLINT | 2 | -32,768 ~ 32,767 | 0 ~ 65,535 |
MEDIUMINT | 3 | -8,388,608 ~ 8,388,607 | 0 ~ 16,777,215 |
INT | 4 | -2,147,483,648 ~ 2,147,483,647 | 0 ~ 4,294,967,295 |
BIGINT | 8 | -2^63 ~ 2^63 -1 | 0 ~ 2^64 - 1 |
좁은 범위의 수 표현이 가능하고, 정확한 값
자료형 | 설명 | 범위 |
---|---|---|
DECIMAL( s, d ) | 실수 부분 총 자릿수( s ) & 소수 부분 자릿수 ( d ) | s 최대 65 |
넓은 범위의 수 표현 가능, 정확하지 않은 값 (일반적으로 충분히 정확)
자료형 | 표현 범위 |
---|---|
FLOAT | -3.402...E+38 ~ -1.175...E-38 , 0 , 1.175...E-38 ~ 3.402...E+38 |
DOUBLE | -1.797...E+308 ~ -2.225E-308 , 0 , 2.225...E-308 ~ 1.797...E+308 |
자료형 | 설명 | 차지하는 바이트 | 최대 바이트 |
---|---|---|---|
CHAR(s) | 고정 사이즈(남는 글자 공백(스페이스)으로 채우는 것) | s(고정값) | 255 |
VARCHAR(s) | 가변 사이즈 | 실제 글자수[최대값 s] +1 [글자수정보] | 65,535 |
주의
- 검색시 CHAR가 더 빠르다.
(하지만? 무조건 좋은 것은 아닌데, 이유 : 비어있는 공간만큼 공백채워서 byte를 쓰기 때문에 쓸데없는 데이터를 더 쓸 가능성 이있다.)- VARCHAR 컬럼 길이 값이 4글자 보다 적을 경우 => CHAR로 자동 변한된다.
문자열보다 더 긴 문자의 텍스트를 작성하는 컬럼(열 데이터)일 경우 사용한다. (ex) 게시판의 글)
자료형 | 최대 바이트 크기 |
---|---|
TINYTEXT | 255 |
TEXT | 65,535 |
MEDIUMTEXT | 16,777,215 |
LONGTEXT | 4,294,967,295 |
자료형 | 설명 | 비고 |
---|---|---|
DATE | YYYY-MM-DD | |
TIME | HHH:MI:SS | HHH: -838 ~ 838까지의 시간 |
DATETIME | YYYY-MM-DD HH:MI:SS | 내가 입력한, 입력된 시간을 그 값 자체로 저장(어디서든 동일한 값) |
TIMESTAMP | YYYY-MM-DD HH:MI:SS | MySQL이 설치된 컴퓨터의 시간대를 기준으로 저장, 각 국가의 시간대마다 달라짐 |