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 の公式ドキュメントを参照してください。
- 上記以外にも、状況によっては他のデータ型が適切な場合があります。