[MySQL] UNSIGNED

고병갑·2025년 2월 20일

MySQL UNSIGNED란?

MySQL에서 UNSIGNED는 숫자형 데이터 타입에서 사용할 수 있는 속성으로, 음수를 허용하지 않고 0 이상의 값만 저장할 수 있도록 함
(정수형 데이터는 기본적으로 SIGNED로 선언되어 음수 값 삽입이 가능)

ex)
mysql에서 int형의 범위는 음수를 포함하여 -2147483648 ~ 2147483647이다
이때 unsigned를 설정하면 범위가 0 ~ 4294967295 가 된다

⭐ 사용법

-- 테이블 생성 시
CREATE TABLE 'tb_test' (
test_no int(11) UNSIGNED NOT NULL AUTO_INCREMENT
)

-- 기존 기존 컬럼 수정시
ALTER TABLE tb_test 
MODIFY COLUMN age TINYINT UNSIGNED NOT NULL;

📝 정수형 데이터 타입 범위

데이터 타입저장 공간SIGNEDUNSIGNED
TINYINT1 바이트-128 ~ 1270 ~ 255
SMALLINT2 바이트-32,768 ~ 32,7670 ~ 65,535
MEDIUMINT3 바이트-8,388,608 ~ 8,388,6070 ~ 16,777,215
INT (INTEGER)4 바이트-2,147,483,648 ~ 2,147,483,6470 ~ 4,294,967,295
BIGINT8 바이트-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,8070 ~ 18,446,744,073,709,551,615


언제 사용해야해?

  1. 음수가 필요없는 컬럼
    : AUTO_INCREMENT (ex. id, no) 컬럼, 음수가 의미 없는 데이터

  2. 더 많은 데이터를 저장해야 할 때
    : 사용하지 않는 음수 범위를 양수 범위로 전환하여 더 많은 데이터를 저장할 수 있어 메모리 최적화 가능 가능

profile
노력 naver 배신🔥

0개의 댓글