MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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の正の値のみを格納できるようになり、負の数は扱えなくなる点にも留意が必要です。

  1. 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>

  2. 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