"Real MySQL" 책을 정리한 포스팅 입니다.
2. 숫자
정확도
참값
- 정확히 그 값을 그대로 유지하는 것 (소수점 이하 값의 유무와 관계 X)
- INTEGER, DECIMAL
근삿값 (부동소수점)
- 정확하게 일치하지 않고 최대한 비슷하게 관리되는 값 (처음 컬럼에 저장한 값과 조회된 값이)
- FLOAT, DOUBLE
포맷
이진 표기법 (INTEGER)
- 프로그래밍 언어에서 사용하는 정수나 실수 타입
십진 표기법 (DECIMAL)
- 디스크의 십진 표기법을 의미합니다.
- 숫자 값의 각 자릿값을 표현하기 위해 4비트나 한 바이트를 사용해서 표기하는 방법
정수
저장공간 | 최솟값 | 최댓값 | |
TINYINT | 1 | -128 | 127 |
SMALLINT | 2 | -32768 | 32767 |
MEDIUMINT | 3 | -8388608 | 8388607 |
INT | 4 | -2147483648 | 2147483647 |
BIGINT | 8 | -263 | 262 |
- 값의 범위만 다를 뿐 차이 X
부동 소수점
- 소수점의 위치가 고정적이지 않다.
- 숫자값의 길이에 따라 유효 범위의 소수점 자릿수가 달라집니다.
FLOAT
- 기본 정밀도: 4바이트 사용 (유효 자릿수를 8개까지)
- 명시할 경우 8바이트까지 사용 가능
DOUBLE
- 기본 정밀도: 8바이트를 사용해서 유효 자릿수를 16개까지 유지
고정 소수점
- 고정된 소수점까지 표현하기 위한 타입입니다.
- 부동소수점에서 유효 범위 이외의 값을 정확히 표현할 수 없습니다.
DECIMAL
- 숫자 하나를 표현하는데 4비트를 사용합니다.
주의사항
- 괄호로 정밀도를 표시하는 것이 일반적입니다.
- DECIMAL(20, 5) : 20자리를 사용할 것이며, 5자리는 소수점 이하의 숫자
Auto increment (자동증가 옵션)
- 숫자 타입의 칼럼에 인조 키를 생성할 수 있습니다.
- 반드시 해당 컬럼의 인덱스를 생성해야 합니다.
- 테이블 당 하나만 사용할 수 있습니다.
- 프라이머리 키로 사용할만한 칼럼이 없을 때 유용합니다.
시스템 변수
- auto_increment_offset : 자동 증가값의 초기 값
- auto_increment_increment : 자동 증가값의 폭
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 5-2. 트랜잭션과 잠금 (0) | 2024.08.10 |
---|---|
[Real MySQL] 15-3. 데이터 타입: 날짜와 시간 (0) | 2023.11.26 |
[Real MySQL] 15-1. 데이터 타입: 문자열 (0) | 2023.11.26 |
[Real MySQL] 8-2. 인덱스: 구현 (B-Tree) (0) | 2023.11.25 |
[Real MySQL] 8-1. 인덱스 (0) | 2023.11.25 |