MySQL에서 UNSIGNED 및 SIGNED INT를 언제 사용해야합니까?
MySQL에서 UNSIGNED 및 SIGNED INT를 언제 사용해야합니까? 사용하는 것이 더 낫거나 이것은 단지 개인적인 선호입니까? 나는 이것을 이렇게 사용하는 것을 보았 기 때문에;
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT
과
id INT(11) NOT NULL AUTO_INCREMENT
UNSIGNED
양수 (또는 0) 만 저장합니다. 반면에 signed는 음수를 저장할 수 있습니다 (즉, 음수 부호 가있을 수 있음 ).
다음은 각 INTEGER
유형이 저장할 수 있는 값 범위의 표입니다 .
출처 : http://dev.mysql.com/doc/refman/5.6/en/integer-types.html
UNSIGNED
범위는 0
~ n
이고 부호있는 범위는 -n/2
~ n/2
입니다.
이 경우에는 AUTO_INCREMENT
ID 열이 있으므로 음수가 없습니다. 따라서 UNSIGNED
. 사용하지 않는 경우 UNSIGNED
에 대한 AUTO_INCREMENT
열, 최대 가능한 값은 높은 절반이 될 것이다 (그리고 값 범위의 부정적인 절반이되지 않는 갈 것입니다).
사용 UNSIGNED
음수가 아닌 정수합니다.
기본적으로를 UNSIGNED
사용하면 음수가 필요하지 않음을 명시 적으로 지정하기 때문에 정수에 대해 두 배의 공간을 제공합니다 (보통 저장하는 값은 음수가 아니기 때문입니다).
나는 vipin cp에 동의하지 않습니다 .
사실은 첫 번째 비트가 부호를 나타내는 데 사용된다는 것입니다. 그러나 1 은 음수이고 0 은 양수입니다. 더 많은 음수 값은 다른 방식으로 코딩됩니다 (2의 보수). TINYINT의 예 :
The sign bit
|
1000 0000b = -128d
...
1111 1101b = -3d
1111 1110b = -2d
1111 1111b = -1d
0000 0000b = 0d
0000 0001b = 1d
0000 0010b = 2d
...
0111 1111b = 127d
나는에 추가하고 싶은 한 가지 signed int
인은 default value in mysql
, 1 bit
표시하는 데 사용됩니다 sign
. -1 for negative and 0 for positive.
따라서 애플리케이션이 양수 값만 삽입하는 경우 unsigned를 지정하는 것이 좋습니다.
저장할 번호의 유형을 알고 있다면 그에 따라 선택할 수 있습니다. 이 경우에는 절대 음수가 될 수없는 'id'가 있습니다. 따라서 unsigned int를 사용할 수 있습니다. 부호있는 정수 범위 : -n / 2 ~ + n / 2 부호없는 정수 범위 : 0 ~ n 따라서 사용할 수있는 양수 수의 두 배가됩니다. 그에 따라 선택하십시오.
음수가 아닌 분, 시간 또는 초 형식으로 (예 :) 값 UNSIGNED
을 저장하는 것이 가장 좋은 옵션 이라고 생각합니다 time_duration
.resolved_call_time = resolved_time(DateTime)-creation_time(DateTime)
참고 URL : https://stackoverflow.com/questions/11515594/when-should-i-use-unsigned-and-signed-int-in-mysql
'IT story' 카테고리의 다른 글
Angular 2에서 추가 요소없이 ngIf 사용 (0) | 2020.09.09 |
---|---|
MySQL 데이터베이스의 모든 트리거를 어떻게 나열합니까? (0) | 2020.09.09 |
Android : 버튼 클릭 처리 방법 (0) | 2020.09.09 |
Python의 "스레드 로컬 저장소"란 무엇이며 왜 필요합니까? (0) | 2020.09.09 |
React Native에서 회전을 비활성화하는 방법은 무엇입니까? (0) | 2020.09.08 |