どのデータ型を選べばいい?SQL Serverの文字列・数値・日付型の基礎をやさしく解説
SQL Serverでは、テーブルを作成するときにデータ型(Data Type)を指定します。
この型の選び方次第で、データの精度・速度・保存容量・処理結果が変わることもあります。
この記事では、文字列・数値・日付などの基本的なデータ型を初心者向けに整理し、実務での使い分けのポイントをわかりやすく紹介します。
目次
データ型とは?
データ型の役割
データ型(Data Type)とは、その列にどんな種類の値を格納できるかを定義するものです。
たとえば文字列、数値、日付、論理値など、それぞれに専用の型があります。
データ型を適切に選ぶことで、次のようなメリットがあります。
- 不要なデータを防ぎ、整合性を維持できる
- ストレージ容量を最適化できる
- 検索や計算のパフォーマンスが向上する
文字列型の種類と使い分け
主な文字列型一覧
文字列を扱うデータ型には、固定長・可変長・Unicode対応などがあります。
| 型名 | 特徴 | 用途 |
|---|---|---|
| CHAR(n) | 固定長文字列。n文字で常に固定。 | 桁数が一定のコード・郵便番号など |
| VARCHAR(n) | 可変長文字列。長さに応じて容量が変化。 | 名前・住所・メールアドレスなど |
| NCHAR(n) | 固定長Unicode文字列。全角文字対応。 | 多言語対応が必要な場合 |
| NVARCHAR(n) | 可変長Unicode文字列。日本語対応。 | 一般的な文字列データに最適 |
| TEXT / NTEXT | 長文データ。推奨されない(非推奨)。 | 旧バージョンで使用(現行はVARCHAR(MAX)推奨) |
日本語を扱う場合はNVARCHARを選ぶのが基本です。
数値型の種類と特徴
主な数値型一覧
数値データを扱う場合、整数型と小数型に分かれます。
| 型名 | 範囲・桁数 | 用途 |
|---|---|---|
| TINYINT | 0~255 | フラグや小さな数値に最適 |
| INT | -2,147,483,648 ~ 2,147,483,647 | 一般的な整数(IDなど) |
| BIGINT | 非常に大きな整数(約9兆) | 大規模データ・シーケンス値 |
| DECIMAL(p,s) / NUMERIC(p,s) | 精度p、小数点以下s桁 | 金額や精密計算に最適 |
| FLOAT / REAL | 浮動小数点型(誤差あり) | 科学計算や概算値 |
整数値ならINT、小数を扱う場合はDECIMALを選ぶのが基本です。
日付・時刻型の種類と使いどころ
主な日付型一覧
日付や時刻を扱うデータ型は次のように分かれます。
| 型名 | 範囲・精度 | 用途 |
|---|---|---|
| DATE | 日付のみ(0001-01-01~9999-12-31) | 誕生日・登録日など |
| TIME | 時刻のみ(精度7桁まで) | 営業時間など |
| DATETIME | 日付+時刻(精度3桁) | 一般的な日時記録(旧来型) |
| DATETIME2 | より広範・高精度(精度7桁) | 推奨の現行型 |
| SMALLDATETIME | 精度1分単位 | 粗い時間管理 |
現在はDATETIME2が推奨されており、将来の互換性・精度・範囲の面でも優れています。
その他の代表的なデータ型
BIT型(論理値)
BIT型は、0または1を格納する論理型です。
IsActive BIT DEFAULT 1
真偽フラグや削除フラグに便利です。
UNIQUEIDENTIFIER型(GUID)
UNIQUEIDENTIFIERは、GUID(グローバル一意識別子)を保持するための型です。
主キーをグローバルに一意にしたい場合に使用します。
CustomerID UNIQUEIDENTIFIER DEFAULT NEWID()
ただし、サイズが大きくインデックス効率が低下するため、大規模テーブルでは注意が必要です。
VARBINARY / IMAGE型(バイナリデータ)
ファイルや画像データを直接格納する場合に使用されますが、通常はファイルパスや外部ストレージに保存する方が効率的です。
データ型選定のポイント
- 整数値:範囲に応じて TINYINT / INT / BIGINT を選ぶ。
- 小数値:誤差を避けたい場合は DECIMAL、概算なら FLOAT。
- 文字列:日本語を扱うなら NVARCHAR。
- 日付:精度と互換性を考慮して DATETIME2 を選ぶ。
- フラグ:BIT型で省メモリ・高速処理。
テーブル設計時にデータ型を正しく選ぶことは、パフォーマンスと信頼性を左右する非常に重要な工程です。
まとめと次のステップ
学んだ内容の整理
- データ型は「どんなデータをどの形式で保存するか」を決める重要な要素。
- 文字列は NVARCHAR、数値は INT・DECIMAL、日付は DATETIME2 が基本。
- 用途に合わせた型選択が性能と整合性を左右する。
参考リンク

0 件のコメント:
コメントを投稿