Khi nào tôi nên sử dụng int unsign và ký int trong mysql? Điều gì tốt hơn để sử dụng hoặc đây chỉ là sự thích cá nhân? Bởi vì tôi đã thấy nó được sử dụng như thế này;
id INT[10] UNSIGNED NOT NULL AUTO_INCREMENT
và
id INT[11] NOT NULL AUTO_INCREMENT
hỏi ngày 17 tháng 7 năm 2012 lúc 3:23Jul 17, 2012 at 3:23
2
UNSIGNED
chỉ lưu trữ các số dương [hoặc không]. Mặt khác, chữ ký có thể lưu trữ các số âm [tức là, có thể có một dấu hiệu âm].
Dưới đây là một bảng các phạm vi giá trị mỗi loại INTEGER
có thể lưu trữ:
Nguồn: //dev.mysql.com/doc/refman/5.6/en/integer-types.html
UNSIGNED
dao động từ 0
đến n
, trong khi chữ ký dao động từ khoảng -n/2
đến n/2
.
Trong trường hợp này, bạn có cột ID
id INT[11] NOT NULL AUTO_INCREMENT
0, vì vậy bạn sẽ không có tiêu cực. Do đó, sử dụng UNSIGNED
. Nếu bạn không sử dụng UNSIGNED
cho cột id INT[11] NOT NULL AUTO_INCREMENT
0, giá trị tối đa có thể của bạn sẽ cao bằng một nửa [và một nửa âm của phạm vi giá trị sẽ không được sử dụng].Đã trả lời ngày 17 tháng 7 năm 2012 lúc 3:25Jul 17, 2012 at 3:25
WiseGuywiseGuyWiseguy
20.2k8 Huy hiệu vàng65 Huy hiệu bạc79 Huy hiệu đồng8 gold badges65 silver badges79 bronze badges
2
Sử dụng UNSIGNED
cho các số nguyên không âm.
Đã trả lời ngày 17 tháng 7 năm 2012 lúc 3:25Jul 17, 2012 at 3:25
WiseGuywiseGuy
20.2k8 Huy hiệu vàng65 Huy hiệu bạc79 Huy hiệu đồng
Sử dụng UNSIGNED
cho các số nguyên không âm.5 gold badges52 silver badges77 bronze badges
Về cơ bản với UNSIGNED
, bạn đang cho mình nhiều không gian cho số nguyên vì bạn chỉ định rõ ràng rằng bạn không cần số âm [thường là vì các giá trị bạn lưu trữ sẽ không bao giờ âm].Nov 21, 2015 at 16:14
NaeSrneczek
13.1k5 Huy hiệu vàng52 Huy hiệu bạc77 Huy hiệu đồng1 gold badge21 silver badges26 bronze badges
Đã trả lời ngày 21 tháng 11 năm 2015 lúc 16:14
SrneczeksrneczekOct 14, 2019 at 5:11
2.1131 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng
20.2k8 Huy hiệu vàng65 Huy hiệu bạc79 Huy hiệu đồng
Sử dụng UNSIGNED
cho các số nguyên không âm.5 gold badges52 silver badges77 bronze badges
Về cơ bản với UNSIGNED
, bạn đang cho mình nhiều không gian cho số nguyên vì bạn chỉ định rõ ràng rằng bạn không cần số âm [thường là vì các giá trị bạn lưu trữ sẽ không bao giờ âm].Jan 15, 2016 at 16:55
NaeKamal
13.1k5 Huy hiệu vàng52 Huy hiệu bạc77 Huy hiệu đồng4 bronze badges
Đã trả lời ngày 21 tháng 11 năm 2015 lúc 16:14vipin cp.
Srneczeksrneczek1 is for negative and 0 is for positive values. More over negative values are coded in different way [two's complement]. Example with 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
2.1131 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng
Đối với giá trị số nguyên âm,
6 được sử dụng và cho giá trị số nguyên không âm, id INT[11] NOT NULL AUTO_INCREMENT
UNSIGNED
được sử dụng. Nó luôn đề nghị sử dụng UNSIGNED
cho ID làm khóa chính.8 gold badges31 silver badges46 bronze badges
Đã trả lời ngày 14 tháng 10 năm 2019 lúc 5:11Jul 18, 2017 at 12:29
Tôi nghĩ, UNSIGNED
sẽ là lựa chọn tốt nhất để lưu trữ một cái gì đó như ________ 20 [ví dụ:
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
1] giá trị theo định dạng vài phút hoặc vài giờ hoặc giây chắc chắn sẽ là một số không âm tínhĐã trả lời ngày 15 tháng 1 năm 2016 lúc 16:55Aug 17, 2016 at 5:55
KamalkamalVipin CP
594 huy hiệu đồng3 gold badges31 silver badges51 bronze badges
Tôi không đồng ý với Vipin CP.
Sự thật là bit đầu tiên được sử dụng để đại diện cho dấu hiệu. Nhưng 1 là cho âm và 0 là cho các giá trị dương. Hơn các giá trị âm được mã hóa theo cách khác nhau [bổ sung của hai]. Ví dụ với Tinyint:Jul 18, 2017 at 12:36
Juzraai
5.4908 Huy hiệu vàng31 Huy hiệu bạc46 Huy hiệu đồng
Đã trả lời ngày 18 tháng 7 năm 2017 lúc 12:29Mar 15 at 12:16
Một điều tôi muốn thêm vào
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
2, đó là 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
3, 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
4 sẽ được sử dụng để đại diện cho 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
5. 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
6 Vì vậy, nếu ứng dụng của bạn chỉ chèn giá trị dương, nó sẽ chỉ định tốt hơn một cách không dấu.terryerĐã trả lời ngày 17 tháng 8 năm 2016 lúc 5:551 silver badge2 bronze badges