Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

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

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

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

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ữ:

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

Nguồn: http://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.1k8 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.

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

Đã trả lời ngày 17 tháng 7 năm 2012 lúc 3:25Jul 17, 2012 at 3:25

WiseGuywiseGuy

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

20.1k8 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 badges76 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

12.9k5 Huy hiệu vàng52 Huy hiệu bạc76 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

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

SrneczeksrneczekOct 14, 2019 at 5:11

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

2.0931 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

20.1k8 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 badges76 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

12.9k5 Huy hiệu vàng52 Huy hiệu bạc76 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  

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

2.0931 Huy hiệu vàng21 Huy hiệu bạc26 Huy hiệu đồng

Đối với giá trị số nguyên âm,

id INT(11) NOT NULL AUTO_INCREMENT
6 được sử dụng và cho giá trị số nguyên không âm, 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

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

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

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

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

Hướng dẫn what is signed and unsigned integer in mysql? - số nguyên có dấu và không dấu trong mysql là gì?

Juzraai

5.4808 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

Những gì được ký và không dấu trong MySQL?

Sự khác biệt giữa đã ký và không dấu trong giá trị có chữ ký của MySQL - các biến có chữ số có chữ ký có thể lưu trữ 0, dương và số âm. Giá trị không dấu - Các biến có chữ số không dấu có thể chỉ lưu trữ 0 và số dương.Signed value - Variables with signed numerals can store 0, positive, and negative numbers. Unsigned value - Variables with unsigned numerals can store only 0 and positive numbers.

Sự khác biệt giữa số nguyên đã ký và không dấu là gì?

Phạm vi không dấu là 0 đến 16777215. Một số nguyên có kích thước bình thường. Phạm vi có chữ ký là -2147483648 đến 2147483647. Phạm vi không dấu là 0 đến 4294967295. A normal-size integer. The signed range is -2147483648 to 2147483647 . The unsigned range is 0 to 4294967295 .

Những gì được ký kết và số nguyên không dấu?

Một số nguyên đã ký là một mốc dữ liệu 32 bit mã hóa một số nguyên trong phạm vi [-2147483648 đến 2147483647].Một số nguyên không dấu là một mốc dữ liệu 32 bit mã hóa một số nguyên không âm trong phạm vi [0 đến 4294967295].Số nguyên đã ký được thể hiện trong ký hiệu bổ sung TWOS.

Việc sử dụng không dấu trong MySQL là gì?

Các loại không dấu của người Viking trong MySQL là một loại dữ liệu.Bất cứ khi nào chúng tôi viết một không dấu vào bất kỳ cột nào có nghĩa là bạn không thể chèn các số âm.Giả sử, với một số lượng rất lớn, bạn có thể sử dụng loại không dấu.Phạm vi tối đa với INT không dấu là 4294967295.you cannot insert negative numbers. Suppose, for a very large number you can use unsigned type. The maximum range with unsigned int is 4294967295.