MySQLで負の数を格納するには?TINYINTデータ型の使い方と範囲を実例付きで解説
MySQLで負の数(マイナスの値)を格納したい場合は、TINYINTデータ型を使用できます。TINYINTは符号付きの場合、-128 から 127までの整数値を格納できる1バイトのコンパクトなデータ型です。
TINYINTカラムを持つテーブルを作成する構文
以下が基本的な構文です。
CREATE TABLE yourTableName ( yourColumnName TINYINT, ... );
実際にテーブルを作成してみよう
まず、TINYINT型のカラムを持つテーブルを作成します。
mysql> create table DemoTable ( Number tinyint ); Query OK, 0 rows affected (0.69 sec)
レコードを挿入する
INSERTコマンドを使って、いくつかのレコードを挿入してみましょう。
mysql> insert into DemoTable values(-10); Query OK, 1 row affected (0.17 sec) mysql> insert into DemoTable values(-128); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(128); ERROR 1264 (22003): Out of range value for column 'Number' at row 1 mysql> insert into DemoTable values(127); Query OK, 1 row affected (0.23 sec) mysql> insert into DemoTable values(-1); Query OK, 1 row affected (0.14 sec) mysql> insert into DemoTable values(14); Query OK, 1 row affected (0.19 sec)
実行結果を見ると、範囲外の値「128」を挿入しようとした際に「ERROR 1264 (22003): Out of range value」というエラーが発生しています。これは、符号付きTINYINTが扱える最大値が127であるためです。
挿入したレコードを確認する
SELECT文ですべてのレコードを表示します。
mysql> select *from DemoTable;
実行すると、次のような出力が得られます。
+--------+ | Number | +--------+ | -10 | | -128 | | 127 | | -1 | | 14 | +--------+ 5 rows in set (0.00 sec)
まとめ
MySQLで負の数を格納するには、符号付きTINYINT型が有効です。扱える範囲は-128〜127で、この範囲を超える値を挿入するとエラーになる点に注意しましょう。より大きな範囲の数値が必要な場合は、SMALLINTやINTなどのデータ型を検討してください。また、カラム定義にUNSIGNEDキーワードを付けると0〜255の正の値のみを格納できるようになり、負の数は扱えなくなる点にも留意が必要です。
-
MySQLでバイナリデータが正しく表示されないときは?適切なデータ型「BIT型」の使い方
MySQLでバイナリデータを扱うならBIT型を使うMySQLでバイナリデータを格納する場合には、BIT型を使用するのが最適です。BIT型を使えばビット列をそのまま保存でき、あとからBIN()関数で2進数として確認することもできます。まず、BIT(5)型のカラムを持つテーブルを作成してみましょう。mysql> create table DemoTable(binaryValue BIT(5));Query OK, 0 rows affected (0.83 sec)INSERTコマンドでレコードを挿入する次に、INSERTコマンドを使ってテーブルにレコードを追加します。mysql>
-
MySQLで長い小数を扱うには?DECIMAL(21,20)の使い方を解説
MySQLで小数点以下の桁数が多い数値(長い小数)を正確に保存したい場合は、DECIMAL(21,20)を使用します。DECIMAL型は固定小数点型であり、FLOATやDOUBLEと異なり丸め誤差が発生しないため、高精度な数値の保存に最適です。DECIMAL(21,20)とはDECIMAL(21,20)は「全体で21桁、うち小数点以下が20桁」という意味です。そのため整数部分は1桁しか表現できません。より多くの整数桁が必要な場合は、DECIMAL(25,20)のように定義を調整しましょう。テーブルの作成まず、以下のようにテーブルを作成します。mysql> create table Dem