データベースの「型」を学ぼう

こんにちは!
前回は「お小遣い帳」のテーブルを見ながら、データベースの基本を学びましたね。今回は、テーブルの各フィールド(列)が持つ「型」について学びます。

フィールドの「型」とは?

データベースで扱う情報は、いろいろな「型」(データの種類)を持っています。たとえば、数字や日付、文字列などです。型を決めることで、データベースに「どんなデータを入れるか」を教えることができます。

型を指定する理由

お小遣い帳の例で考える「型」

フィールド名 説明 型の例 理由
ID データの識別子 INT 重複しない番号です。
日付 お金をもらった日や使った日 DATE 日付を扱うための専用の型を使うと計算やソートが簡単。
収入/支出 お金をもらったか使ったかの区別 VARCHAR 文字列(例:「収入」「支出」)を保存するため
金額 金額の数値 INT 数字として計算(合計や平均など)ができるようにするため。
使い道 何に使ったか、どこからもらったか VARCHAR 自由に記述できる文字列を保存するため

主なデータ型の説明

1. INT(整数型)

用途例:数量、人数、ID(商品ID,日誌ID、顧客IDなど)、種類、分類など

説明: 数値系(整数)に指定する基本的な型です。
数量や人数をはじめ、種別や分類、ID関係でよく使われます。 INT型はプログラマーとして働くことになった時、何度も目にすることでしょう。

2. VARCHAR(可変長文字列)

用途例:名前、住所、短いメッセージ、コードなど

説明: 文字列に指定する型です。
こちらの型も頻繁に使われます。 名前や住所など、短めの文字列ならこの型を指定しましょう。目安としては255文字以内くらいです。 文字列の長さを指定しながら設定します(例:VARCHAR(50)なら最大50文字まで保存可能)。

3. DATE(日付型)

用途例:入金日、締切日、期限、予約日など

説明: 日付に指定する型です。
2025-01-01のような形式です。 日付同士の計算(例:「2つの日付の差を求める」など)ができます。

4. DATETIME(日時型)

用途例:更新日時、作成日時、投稿日時など

説明: 日時に指定する型です。
2025-01-01 12:01:30のような年月日時分秒の形式になります。

5. DECIMAL(通貨型)

用途例:単価、入金額、支払額など

説明: 数値型の一種ですがお金に特化した型です。 数字系でも金額関係ならINT型でなくDECIMAL型を指定してください。
日本円で最大でも1億円未満の金額しか扱わないと確定しているならDATETIME(9,0)という型指定になります。 米ドルなら(100万ドル未満、小数点2桁)DATETIME(7,2)という感じです。 現場によってはDECIMAL型でなくNUMERIC型を使うこともあります。

6. TEXT(テキスト型)

用途例:記事内容、説明文、備考、メモなど

説明: 数千文字くらいの長い文字列専用の型です。
処理の負担が大きいため、短い文字列ならVARCHARを指定しましょう。

7. FLOAT/DOUBLE(浮動小数点型)

用途例:測定値、計算値、緯度経度、図形の長さ

説明: 少数を含む数値に指定する型です。
高速に処理できますが、桁数が長くなると丸め処理(四捨五入など)が自動で施されるので注意です。厳密な正確さが求めれるお金関係に指定すべきでありません。

8. TINYINT(フラグ型)

用途例:ON/OFF、有効/無効

説明: 整数型の一種ですが、ON/OFFのように1と0しか入力しない場合はTINYINT型が適切です。

その他の型について

大きな数字を扱うBIGINT,時間だけを扱うTIMEなど他にも多数の型が存在しますが、実際の現場に頻出する型は上記の型になります。 その他の型については使用する機会も稀ですので、学習は後回しで良いでしょう。

練習課題

次の項目を含む「商品テーブル」を作成するとしたら、どんな型が合うでしょうか?理由も考えてみましょう!

フィールド名 型の例 理由
ID
商品名
価格
在庫数
カテゴリー

自分で考えた回答をもとに、テーブルを完成させてみてください!