MariaDBで数値データを扱う!初心者でもわかるデータ型と使い分け


整数型

整数型は、符号付きまたは符号なしの整数を格納するために使用されます。符号付き整数型は正の値、負の値、および0を格納できます。一方、符号なし整数型は正の値と0のみを格納できます。

  • BIGINT
    64ビットの整数値を格納し、-9,223,372,036,854,775,808から9,223,372,036,854,775,807までの範囲の値を格納できます。非常に大きな整数を格納する場合に使用されます。
  • INT
    32ビットの整数値を格納し、-2,147,483,648から2,147,483,647までの範囲の値を格納できます。最も一般的に使用される整数型です。
  • MEDIUMINT
    24ビットの整数値を格納し、-8,388,608から8,388,607までの範囲の値を格納できます。SMALLINTよりも大きな整数を格納する場合に使用されます。
  • SMALLINT
    16ビットの整数値を格納し、-32,768から32,767までの範囲の値を格納できます。TINYINTよりも大きな整数を格納する場合に使用されます。
  • TINYINT
    8ビットの整数値を格納し、-128から127までの範囲の値を格納できます。主に、小さな整数を格納する場合に使用されます。

小数点型

小数点型は、小数を含む数値を格納するために使用されます。

  • DOUBLE
    64ビット浮動小数点値を格納し、約 -1.797693e+308 から +1.797693e+308 までの範囲の値を格納できます。FLOATよりも高い精度と広い範囲が必要な場合に使用されます。
  • FLOAT
    32ビット浮動小数点値を格納し、約 -3.402823e+38 から +3.402823e+38 までの範囲の値を格納できます。

固定小数点型

固定小数点型は、小数点以下の桁数を固定して数値を格納するために使用されます。これは、財務データなど、精度が重要となる場合に役立ちます。

  • DECIMAL
    固定精度と固定小数点スケールを持つ数値を格納します。最大10桁の整数部と最大30桁の小数部を持つことができます。

最適なデータ型の選択

使用するデータ型は、格納するデータの種類と必要な精度によって異なります。

  • 固定小数点以下の桁数を固定する必要がある場合は、DECIMAL型を使用します。
  • 高精度と広い範囲が必要な場合は、DOUBLE型を使用します。
  • 小数を含む数値を格納する場合は、FLOAT型またはDOUBLE型を使用します。
  • より大きな整数を格納する場合は、BIGINT型を使用します。
  • 整数のみを格納する場合は、INT型が適切です。
  • MariaDBは、数値データ型以外にも、日付、時刻、およびブール値などの他のデータ型をサポートしています。
  • 各データ型には、符号付きと符号なしの両方があります。符号なし型は、正の値と0のみを格納できます。


列の定義

テーブルを作成する際に、各列のデータ型を定義します。

CREATE TABLE customers (
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(255) NOT NULL,
  age TINYINT NOT NULL,
  balance DECIMAL(10,2) NOT NULL,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

この例では、次の列を定義しています。

  • created_at: 現在の日時をデフォルト値として格納する日時列。DATETIME型を使用します。
  • balance: 10桁の整数部と2桁の小数部を持つ固定小数点数。DECIMAL型を使用します。
  • age: -128から127までの範囲の値を持つ8ビット整数。TINYINT型を使用します。
  • name: 最大255文字の文字列。VARCHAR型を使用します。
  • id: 自動的にインクリメントされる主キー列。INT型を使用します。

データの挿入

INSERT ステートメントを使用して、表にデータを挿入できます。

INSERT INTO customers (name, age, balance)
VALUES ('John Doe', 30, 1000.00);

この例では、次のレコードを customers テーブルに挿入します。

  • 残高: $1,000.00
  • 年齢: 30
  • 名前: John Doe

データの検索

SELECT ステートメントを使用して、表からデータを取得できます。

SELECT id, name, age, balance
FROM customers;

この例では、customers テーブル内のすべてのレコードを選択します。

データの更新

UPDATE ステートメントを使用して、表内のデータを更新できます。

UPDATE customers
SET balance = balance + 100.00
WHERE id = 1;

この例では、customers テーブル内の id が 1 であるレコードの残高を $100.00 増額します。

データの削除

DELETE ステートメントを使用して、表からデータを削除できます。

DELETE FROM customers
WHERE age < 21;

この例では、customers テーブル内の age が 21 未満のすべてのレコードを削除します。

  • これらの例はほんの一例です。MariaDBの数値データ型を使用して、さまざまな操作を実行できます。


文字列型 (VARCHAR, CHAR)

  • 欠点:
    • 数値演算には非効率的です。
    • ストレージ容量が多くなります。
  • 利点:
    • 非常に柔軟で、あらゆる種類の数値を格納できます。
    • 小数点以下の桁数に制限がないため、高精度な数値を格納できます。

ビット型 (BIT)

  • 欠点:
    • 整数のみを格納できます。
    • 負の値を格納できません。
  • 利点:
    • 非常に少量のストレージで済みます。
    • 論理演算に効率的です。

JSON 型

  • 欠点:
    • 数値演算には非効率的です。
    • ストレージ容量が多くなります。
  • 利点:
    • 構造化された数値データを格納できます。
    • 柔軟性が高く、様々な形式の数値データを格納できます。
  • ストレージ容量
  • 演算の効率性
  • 必要な精度
  • 格納するデータの種類
  • 詳細については、MariaDB の公式ドキュメントを参照してください。
  • 上記以外にも、状況によっては他のデータ型が適切な場合があります。