Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 음수를 저장하는 데이터 타입: TINYINT 활용법 완벽 가이드

MySQL에서 음수 저장하기: TINYINT 데이터 타입

MySQL에서 음수를 저장하려면 TINYINT 데이터 타입을 사용할 수 있습니다. TINYINT는 부호 있는(signed) 정수를 저장할 수 있으며, 저장 가능한 범위는 -128부터 127까지입니다.

TINYINT 컬럼 생성 문법

다음은 TINYINT 타입의 컬럼을 포함한 테이블을 생성하는 기본 문법입니다.

CREATE TABLE yourTableName
(
   yourColumnName TINYINT
   ...
);

실습 예제: TINYINT 테이블 만들기

먼저 TINYINT 타입으로 설정된 컬럼을 가진 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
   Number tinyint
);
Query OK, 0 rows affected (0.69 sec)

이제 insert 명령어를 사용하여 테이블에 여러 레코드를 삽입해 보겠습니다.

mysql> insert into DemoTable values(-10);
Query OK, 1 row affected (0.17 sec)

mysql> insert into DemoTable values(-128);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values(128);
ERROR 1264 (22003): Out of range value for column 'Number' at row 1

mysql> insert into DemoTable values(127);
Query OK, 1 row affected (0.23 sec)

mysql> insert into DemoTable values(-1);
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable values(14);
Query OK, 1 row affected (0.19 sec)

위 실행 결과를 보면 주목할 점이 있습니다. 값 128을 삽입하려고 했을 때 ERROR 1264 (22003): Out of range value 오류가 발생했습니다. 이는 TINYINT의 최대 저장 범위가 127이기 때문입니다. 반면 -128과 같은 최소값은 정상적으로 저장됩니다.

저장된 데이터 확인하기

select 문을 사용하여 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+--------+
| Number |
+--------+
|    -10 |
|   -128 |
|    127 |
|     -1 |
|     14 |
+--------+
5 rows in set (0.00 sec)

정리 및 추가 팁

TINYINT는 1바이트만 사용하므로 저장 공간을 절약할 수 있으며, 작은 범위의 정수 값을 다룰 때 매우 유용합니다. 참고로 MySQL의 정수 계열 데이터 타입은 모두 기본적으로 부호 있는(signed) 상태이므로 음수 저장이 가능합니다.

  • TINYINT: -128 ~ 127 (1바이트)
  • SMALLINT: -32,768 ~ 32,767 (2바이트)
  • MEDIUMINT: -8,388,608 ~ 8,388,607 (3바이트)
  • INT: 약 -21억 ~ 21억 (4바이트)
  • BIGINT: 매우 큰 범위의 정수 (8바이트)

만약 더 넓은 범위의 음수를 저장해야 한다면 SMALLINT, INT 등 더 큰 정수 타입을 선택하면 됩니다. 반대로 UNSIGNED 옵션을 지정하면 음수는 저장할 수 없고 양수 범위만 두 배로 확장됩니다.