データベースに保存されているデータにはデータ型と呼ばれるルールがあり、どのように保存され、処理されるかが決まっている。
テーブルを作成するときにそれぞれの列(カラム)にデータ型を指定しており、その形式のデータしか入力できない。
データ型の選択は、
データの正確さ・保存効率・検索や処理の速度など、システム全体のパフォーマンスに直結する。
SQLの代表的なデータ型
1.数値型
| データ型名 | カテゴリ | 値 | 用途 |
|---|---|---|---|
| INT(INTEGER) | 整数型 | 整数のみ(固定長) | 主キーやIDなど小数点が出ない値 |
| REAL | 浮動小数点型 (単精度) |
約7桁精度 | ほぼFLOATと同じ 計算速度重視 |
| FLOAT | 浮動小数点型 (単精度) |
約7桁精度 | 計算速度重視 |
| DOUBLE型 | 浮動小数点型 (倍精度) |
約15桁精度 | FLOATより高精度な小数計算 |
| DECIMAL | 固定小数点型 | 桁数を指定できる | 正確な数値の計算 |
| NUMERIC | 固定小数点型 | 桁数を指定できる | 正確な数値の計算 |
2.文字列型
| データ型名 | カテゴリ | 値 | 用途 |
|---|---|---|---|
| CHAR | 固定長 | 文字列の長さが常に一定 | 性別 |
| VERCHAR | 可変長 | 文字列の長さが不定 | 住所やメール |
CHAR型(固定長)では、
指定された長さに満たないときは空白で埋められ、常にその長さ分のストレージを消費する。VARCHAR型(可変長)では、
実際に格納される文字列の長さに応じて長さが変わるため、ストレージ効率が高い。
3.日付時刻型
| データ型名 | 値 | 用途 |
|---|---|---|
| TIMESTAMP | YYYY-MM-DD HH:MM:SS | データの作成・更新時刻の自動記録 |
| DATETIME | YYYY-MM-DD HH:MM:SS | 任意の日時データ |
| DATE | YYYY-MM-DD | 年月日のみ |
| TIME | HH:MM:SS | 時刻のみ |
4.論理値型
| データ型名 | 値 | 用途 |
|---|---|---|
| BOOLEAN | 0, 1 | 0(FALSE)か1(TRUE)のみ |
- MySQLでは整数(-128~127)も格納できるため、正確な真偽値ではない。