2016-11-22 13 views
-1

TINYINTについて考えてみましょう。 W3Schoolsは、符号付きの範囲は-128から127までで、符号なしの範囲は0から255までです。MySQLデータ型 - 符号なし符号なし

1)範囲が-128から127までの理由とその理由は何ですか - 128〜255.

2)これらの範囲は、-129または256の値を取ることができないことを意味しますか。 (私がテキストボックスを持っているフォームに記入しているとしましょう)

+2

1. 'その範囲は-128から255です。'は真ではないためです。 2.はい、あなたは256または-129に 'tinyint'を使用できません。 –

答えて

0

範囲はすべて最適化と同じです。 unsignedは上限のためだけであり、負の数を許さないことを意味する。ですから、正の数だけが必要なことがわかっているときは、常にununsignedを使用してください。

チェックそれhere

+0

範囲を知ってください。それらは違う。 – Drew

+0

"そうすれば、正の数だけが必要であることがわかっているときは、常にununsignedを使用してください。この部分が役に立った...ありがとう。 –

0

TINYINT値は-128から255まで、彼らはそれを言ってはいけない理由があるではありません。

テーブルの作成時には、符号付きまたは符号なしのいずれかです。指定しない場合、デフォルトは、テーブルの作成中に符号なし指定した場合、その値は0から255

CREATE TABLE `example_table` (
    `example_col` tinyint(3) unsigned NOT NULL 
); 

にある127に-128を締結している二答えが「はい」で、あなたが使用することはできませんtinyintの-129または256の値。 linkをチェックして、それぞれの上限と下限の考えを得てください。

+0

ありがとうございます。あなたの答えは助けになりました。 I gen。 PHPMyAdminを使用してください。だから私は属性ドロップダウンオプションから署名なしを作成します。 –

0

TINYINTは、8ビット(1バイト)で表されます。情報理論の基礎知識によれば、は256個の異なる値(256 = 2^8)のみを8ビットで表すことができます。 256個の値は、(0 255としてを解釈、または

TINYINT SIGNED

TINYINT UNSIGNED、 "TINYINT" の

8ビットは、2つの方法のいずれかでのMySQLによって解釈ありますエイリアスTINYINTSIGNEDがデフォルトです)。の解釈の範囲は-128.1.127です。

先頭ビットが0である場合、8ビットは、SIGNEDUNSIGNEDの間で同様に0..127を表します。しかし、上位ビットが1である場合、8ビットは負数またはより大きな正数のいずれかを表す。

ENUM('red', 'yellow', 'green') 

:あなたは、あなたがこれは、異なるデータ型で起こるまさにあるなど「赤」、「黄」、「緑」を意味するものと 256個の値を解釈する可能性がしたい場合は

別のの解釈の8ビットのバイトはあなたにAscii文字を与えます。でなければならないTINYINTので、CHARなどVARCHARTEXT

を参照してくださいいずれかSIGNEDまたはUNSIGNED、あなたは、これらの値の両方を持つTINYINT列を持つことはできません:-111および222(異なる行で)。必要な場合は、SMALLINT SIGNEDを使用してください。

+0

リックありがとうございます。 –

関連する問題