백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. 정확도
참값
- 정확히 그 값을 그대로 유지하는 것
- INTEGER, DECIMAL
근삿값 (부동소수점)
- 저장한 값과 조회된 값이 최대한 비슷하게 관리되는 값
- FLOAT, DOUBLE
2. 포맷
이진 표기법
- 숫자를 2진수로 변환해 저장
- INTEGER, FLOAT, DOUBLE
십진 표기법
- 숫자의 각 자릿값을 4비트 또는 1바이트로 표현
- DECIMAL
3. 정수
저장공간 | 최솟값 | 최댓값 | |
TINYINT | 1 | -128 | 127 |
SMALLINT | 2 | -32768 | 32767 |
MEDIUMINT | 3 | -8388608 | 8388607 |
INT | 4 | -2147483648 | 2147483647 |
BIGINT | 8 | -263 | 262 |
- 값의 범위만 다름
4. 부동 소수점
- 소수점의 위치가 고정적이지 않음
- 큰 수나 작은 수를 효율적으로 표현할 수 있음
- 단, 정확도가 떨어질 수 있음
FLOAT
- 정밀도: 7자리 (4바이트)
DOUBLE
- 정밀도: 16자리 (8바이트)
5. 고정 소수점
- 소수점 위치가 고정된 수
- 고정된 소수점까지 정확한 표현 가능
DECIMAL
- 숫자 하나를 표현하는데 4비트를 사용합니다.
주의사항
- 괄호로 정밀도를 표시하는 것이 일반적입니다.
- DECIMAL(20, 5) : 20자리를 사용할 것이며, 소수점 이하는 5자리까지 정밀도가 보장됨
5. Auto Increment (자동 증가 옵션)
- 고유한 숫자를 자동으로 생성하는 기능
- 주로 기본키로 사용됩니다. (인덱스 생성 필수)
- 숫자 타입의 칼럼에서만 사용 가능
- 테이블 당 하나만 사용할 수 있습니다.
시스템 변수
- auto_increment_offset: 자동 증가값의 초기 값
- auto_increment_increment: 자동 증가값의 폭
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 15-4. 데이터 타입: JSON (0) | 2023.11.26 |
---|---|
[Real MySQL] 15-3. 데이터 타입: 날짜와 시간 (0) | 2023.11.26 |
[Real MySQL] 15-1. 데이터 타입: 문자열 (0) | 2023.11.26 |
[Real MySQL] 8-3. 인덱스: B-Tree (0) | 2023.11.25 |
[Real MySQL] 8-2. 인덱스 (0) | 2023.11.25 |