백엔드/MySQL

MySQL 데이터 자료형

짱뚱짱 2024. 8. 28. 12:46

숫자

(정수)

- BIT(m) : 1~64 binary값을 지정
- BOOL : TRUE(1) / FALSE(0) = TINYINT(1)
- TINYINT(m) : 0~255사이의 작은 수를 표현 (-128~127)
- SMALLINT(m) : 2BYTE 0~65536 (-32768 ~ 32767)
- MEDIUMINT(m) : 3BYTE (0~166777215)
- INT(m) : 4BYTE => java int 동일
- BIGINT : 8BYTE => java long 동일

 

(실수) 

- FLOAT(m, d) : 정밀도가 작은 부동소수점 표현(d : 자리수)
- DOUBLE(m, d) : 정밀도가 큰 부동소수점 표현(d : 자리수)
=> mysql 8.0.17 이후부터 사용하지 않음
- DECIMAL(m,d) : 고정 소수점 표현


문자

- CHAR(m) : 고정길이 문자열(0~255)
- VARCHAR(m) : 가변길이 문자열 (0~65536)
- TINYTEXT : 가변길이 1BYTE 문자열 저장
- BLOB : 바이너리 데이터 저장용 (이미지) (TINYBLOB, MEDIUMBLOB 등등 있음)
- TEXT : 2Byte 가변길이 문자열
- MEDIUMTEXT : 3BYTE
- LONGTEXT : 4BYTE


날짜

- DATE : 날짜표현
- DATETIME : 날짜+시간 => 가장많이 씀
- TIMESTAMP : insert, update 연산에 유리한 형태
- YEAR : 연도만
- TIME : 시간만


제약조건

PK : PRIMARY KEY => 기본키 속성 추가
NN : Not Null (데이터 값으로 null을 오지 못하게 막음)
AI : Auto_Increment (자동증가 : 정수만 가능)  => MySQL에서만 씀. 오라클엔 없다.
UQ : unique (중복안됨)
B : binary 값
UN : Unsigned (음수 불가)
ZF : Zero Fill (숫자 앞에 0으로 채우기) ex) 0001
G : Generated (속성 자동생성)


기본값 : default 값

기본값을 주지않고 값이 없으면 null (null 은 연산이 안됨.)

주석 : 단축키 안됨.

/* 여러줄 주석 */
-- 한줄주석