UNSIGEDとはなんでしょう。
「unsigned long integer」あるいは「unsigned long」
このIT言語の意味と同じであるといえます。
意味は、「負の数を表さない符号のない長い整数」
ということなので、単純に負の整数を扱わない場合にUNSIGEDを定義したらよいということですね。
でも、なぜわざわざ定義する必要があるの?
そうですね、符号があるないという言葉だけでは必要性が全く分かりません。
わかる人は以下の説明は見ても見なくてもいいですよ。
でも、見ていただけると私はめっちゃくちゃうれしいです!!
ではまず答えを言う前に、データ型の話に入ります。
SQLのデータ型にはそれぞれ「ビット」や「バイト」という単位を使用します。これはコンピュータが扱うことのできる単位なんですね。
例を出しますと、SQLで使用します「TINYINT」は8ビットです。
8ビットでは256の整数を扱うことができます。
※ちなみに1バイトは8ビットのことです。
そして、一番のキーワードは「符号は最初の1桁を符号に使用する」というルールです。
*8ビットでの計算はこうなります↓
符号あり:8桁のあるうちの最初の1桁が符号(+or-)で扱われ、残りの7桁で数字を表します。(-128~+127)
符号なし(UNSIGED):8桁のあるうちの8桁を全て数字で表します。(0~255)
もし、負の整数を扱わない場合で何も定義しないと127までしか使用できません。
しかし、UNSIGEDを定義すると255まで使用することができるんですね!!わ~うれしい~っ。
2進数での計算がわからない人は7桁での整数で「??」となったかもしれません。
()の結果はなぜそうなったのかわからないですね。
普段私たちのなじみのある数字は10進数ですので
もしわからなければ、「2進数から10進数へ変換」と調べると自分で〇〇ビットはどのくらいの整数を扱うことができるのかを計算することができますよ(^_-)-☆