Data Type ( char, varchar, text )
1. CHAR
- 고정 길이를 갖는 문자열을 저장
- CHAR(20)에 10글자만 저장 하더라도 실제로 차지하는 길이는 20임.
- CHAR는 저장공간이 낭비될 순 있지만, 추가적인 연산이 필요하지 않아 검색 및 읽는 속도가 VARCHAR보다 빠름
2. VARCHAR
- 가변길이를 갖는 문자열을 저장
- VARCHAR(20)에 10글자만 저장하면 실제로의 길이만 차지
- 가변길이라 하더라도 VARCHAR(5)에 "123456"을 삽입하면 에러가 발생 (MySQL 기준)
3. TEXT
- 길이제약을 받지 않음.
- index의 일부로 사용 불가능
- max size limit가 불가, 오직 65535
- VARCHAR: 짧은 문자열을 저장하는 데 적합, 이름, 이메일 주소, 짧은 설명 등
- TEXT: 긴 문자열이나 대량의 텍스트를 저장하는 데 적합, 게시물 내용, 댓글, 긴 설명 등이 있습니다.
4. DATETIME
- 타임 존이 바뀌어도 바뀌지 않음 ( 자동 업데이트가 되지 않는다. )
- 기본값은 Null, 8바이트의 저장 공간을 차지
- 즉, DateTime은 시간대를 고려하지 않고 날짜와 시간을 저장할 때 사용하며, 어플리케이션 수준에서
시간대를 처리해야 한다는 특징을 갖고 있음.
5. TIMESTAMP
- 타임존을 바꾸면 값이 바뀜 ( 자동업데이트가 진행 된다. )
- 현재시간 - > UTC 시간으로 바뀌는 것
- 타임존은 동일한 로컬 시간을 갖는 지역을 의미하며, 이를 바꾼다면 TIMESTAMP 컬럼의 값도 바뀐다는 의미
- TimeStamp는 UTC시간으로 지정되며 데이터베이스 서버의 시간대 설정에 따라 자동으로 변환되기 때문에
글로벌 어플리케이션에서 유용함.
DATE | DATETIME | TIMESTAMP | |
포멧 | YYYY-MM-DD | YYYY-MM-DD hh:mm:ss | YYYY-MM-DD hh:mm:ss |
설명 | - 날짜만 표기 | - 날짜 및 시간 표기 | -날짜 및 시간 표기 - 기본적으로 Not Null - TimeZone 기반 |
범위 | 1000-01-01 ~ 9999-12-31 | 1000-01-01 00:00:00 ~ 9999:12:31 23:59:59 |
1970-01-01 00:00:01 UTC ~ 2038-01-19 03:14:07 UTC |
'DB' 카테고리의 다른 글
[MySQL] SubQuery (서브쿼리) (0) | 2024.04.15 |
---|---|
[MySQL] 집계함수 ( MAX, MIN, SUM, AVG, COUNT ) (0) | 2024.04.14 |
[MySQL] Join, 조인( Inner Join, Outer Join ) (0) | 2024.04.13 |
[MySQL] Index, View ( 인덱스, 뷰 ) (0) | 2024.04.13 |
[MySQL] DDL, 데이터 정의어(Data Definition Language) (0) | 2024.04.13 |