2025年12月16日火曜日

SQL Server データ型(Data Types)の基礎と選び方|文字列・数値・日付型の違いを理解する

どのデータ型を選べばいい?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 が基本。
  • 用途に合わせた型選択が性能と整合性を左右する。

参考リンク

SQL Server 解説用イメージ

0 件のコメント:

コメントを投稿