MySQLの「UNSIGNED(符号なし)」とは?意味と使いどころをわかりやすく解説
MySQLにおける「UNSIGNED(符号なし)」は、数値型のカラムに指定できる属性のひとつです。UNSIGNEDを指定したカラムには負の値(マイナスの数値)を挿入できず、0以上の正の数値のみが格納可能になります。その代わり、通常の符号付き整数と比べて表現できる数値の上限が約2倍に拡張されるのが大きな特徴です。
たとえば、UNSIGNED INT型で扱える最大値は 4294967295 です。非常に大きな正の数値を扱いたい場合にUNSIGNED型が役立ちます。
※注意:負の値を挿入しようとすると、MySQLエラーが発生します。
UNSIGNEDの使用例
それでは、実際にUNSIGNED型のカラムを持つテーブルを作成してみましょう。以下がテーブル作成用のクエリです。
mysql> create table UnsignedDemoWithPositiveValue
-> (
-> Distance int unsigned
-> );
Query OK, 0 rows affected (0.86 sec)範囲外の値を挿入した場合
UNSIGNED INTの上限である4294967295より大きい値を挿入しようとすると、値が範囲外のためエラーが発生します。
範囲外の値を挿入してみます。
mysql> insert into UnsignedDemoWithPositiveValue values(4294967296); ERROR 1264 (22003): Out of range value for column 'Distance' at row 1
上記の例では、範囲外である4294967296を挿入したため、エラーが発生しました。
次に、上限値ちょうどの4294967295を挿入してみます。
mysql> insert into UnsignedDemoWithPositiveValue values(4294967295); Query OK, 1 row affected (0.30 sec)
ご覧のとおり、クエリは正常に実行されました。
負の値を挿入した場合
続いて、別の例を見てみましょう。負のレコードを挿入すると、以下のようなエラーが表示されます。
mysql> insert into UnsignedDemoWithPositiveValue values(-124); ERROR 1264 (22003): Out of range value for column 'Distance' at row 1
今度は正の値である124のみを挿入します。クエリは以下のとおりです。
mysql> insert into UnsignedDemoWithPositiveValue values(124); Query OK, 1 row affected (0.86 sec)
上記のように、クエリは正常に実行されました。
挿入されたデータの確認
SELECT文を使って、登録されたレコードを表示してみましょう。クエリは以下のとおりです。
mysql> select * from UnsignedDemoWithPositiveValue;
実行結果は以下のとおりです。
+------------+ | Distance | +------------+ | 4294967295 | | 124 | +------------+ 2 rows in set (0.00 sec)
まとめ:UNSIGNEDを使うべきケース
UNSIGNEDは以下のような場面で活用できます。
- 年齢・個数・距離など、負にならない値を扱うカラム
- IDやアクセスカウンタなど、大きな正の数値を扱いたい場合
- ストレージ容量を変えずに、表現できる正の範囲を広げたい場合
一方で、計算結果がマイナスになる可能性があるカラム(口座残高など)にUNSIGNEDを指定するとエラーの原因になるため、注意が必要です。データの性質に合わせて適切に使い分けましょう。
-
XInputとDirectInputとは?意味と違いをわかりやすく解説
「XInput」や「DirectInput」という言葉を、Windowsで使えるコントローラーの話題の中で耳にしたことはありませんか?しかし、これらが実際に何を意味するのか、そしてどちらに対応しているかが重要なのか、よく分からないという人も多いのではないでしょうか。 この記事では、両者の基本的な意味から違い、そして自分のコントローラーがどちらの規格なのかを見分ける方法まで、わかりやすく解説していきます。 XInput・DirectInput・入力ライブラリとは これらの用語はすべて、コントローラーとシステムの間に存在するAPI(アプリケーション・プログラミング・インターフェース)を指しています
-
HDRとは?AndroidスマホでHDR撮影を使いこなす方法
ここ数年でスマートフォンのカメラ性能は目覚ましい進化を遂げました。多くの人は従来のデジタルカメラを手放し、手軽さに優れたスマホでの撮影を選ぶようになっています。この変化を支えているのは、ハードウェアとソフトウェアの両面での進化です。スマホのカメラ機能が高度になるにつれ、写真に対してより細かくコントロールできるようになりました。現在のほとんどのAndroidスマホには「HDR」という設定項目がありますが、そもそもHDRとは何なのでしょうか。そして、どんなときに使うべきなのでしょうか。 HDRの仕組み HDRはハイダイナミックレンジ(High Dynamic Range)の略称です。「ダイナミッ