讓我們考慮TINYINT。 W3Schools表示它的有符號範圍是從-128到127,其無符號範圍是從0到255.MySQL數據類型 - 有符號無符號
1)爲什麼說它的範圍是從-128到127,爲什麼不是它的範圍是從 - 128到255。
2)這些範圍是否意味着我不能取-129或256的值? (比方說,我正在填寫一個表格,我有一個文本框)
讓我們考慮TINYINT。 W3Schools表示它的有符號範圍是從-128到127,其無符號範圍是從0到255.MySQL數據類型 - 有符號無符號
1)爲什麼說它的範圍是從-128到127,爲什麼不是它的範圍是從 - 128到255。
2)這些範圍是否意味着我不能取-129或256的值? (比方說,我正在填寫一個表格,我有一個文本框)
TINYINT值不是從-128到255,這就是爲什麼他們不說出來。
創建表時,它是有符號的或無符號的。如果不指定,然後默認值,如果指定的無符號在創建表簽署-128到127,其值從0到255
CREATE TABLE `example_table` (
`example_col` tinyint(3) unsigned NOT NULL
);
第二個答案是「是」,則不能使用tinyint中的-129或256的值。檢查這個link以瞭解每個的上限和下限。
謝謝。你的回答有幫助。我是。使用PHPMyAdmin。所以我將創建從屬性下拉選項的無符號。 –
TINYINT
通過8位(1字節)表示。信息理論的基本知識表明,只有256個不同的值(256 = 2^8)可以用8位表示。
的 「TINYINT」 的8位是由MySQL以兩種方式中的一種解釋:
TINYINT UNSIGNED
,其中256個值是解釋作爲0..255,或
TINYINT SIGNED
(別名TINYINT
,因爲SIGNED
是默認值),其中的解釋的範圍爲-128..127。
當最高位是0
時,8位在SIGNED
和UNSIGNED
之間代表0,127。但是當最高位是1
時,8位或者代表負數或者更大的正數。
如果你願意,你可以解釋 256個值意爲「紅色」,「黃色」,「綠色」等,這是一個不同的數據類型時發生的事情:
ENUM('red', 'yellow', 'green')
8位字節的另一個解釋爲您提供Ascii字符。見CHAR
,VARCHAR
,TEXT
等
由於TINYINT
必須是SIGNED
或UNSIGNED
,你不能具有TINYINT
柱,用這兩個值:-111和222(在不同的行)。如果您需要,請使用SMALLINT SIGNED
。(這導致討論數字的16位表示。)
謝謝瑞克。 –
1.因爲它的範圍是從-128到255'不是真的。 2.是的,你不能在256或-129使用tinyint。 –