2025年12月23日火曜日

SQL Server CREATE TABLE文の基本構文と使い方|テーブル作成と列定義の基礎

テーブルを新しく作るには?SQL Server CREATE TABLE文の基本と列定義の仕組みを解説

SQL Serverでデータを管理するには、まずテーブル(Table)を作成する必要があります。
テーブルは「データを入れる箱」のようなもので、その構造を定義するのがCREATE TABLE文です。
この記事では、テーブル作成の基本構文から列(カラム)の定義、制約やデータ型の指定方法までを初心者にもわかりやすく紹介します。

目次

CREATE TABLE文の基本構文

基本形

CREATE TABLE文は、新しいテーブルを作成するためのSQL命令です。基本構文は次のようになります。


CREATE TABLE テーブル名 (
  列名1 データ型 [制約],
  列名2 データ型 [制約],
  ...
);

例えば、顧客情報を管理するテーブルを作る場合:


CREATE TABLE Customers (
  CustomerID INT PRIMARY KEY,
  Name NVARCHAR(50),
  City NVARCHAR(50),
  CreatedAt DATETIME DEFAULT GETDATE()
);

これで「Customers」というテーブルが作成され、4つの列が定義されます。

列(カラム)の定義とデータ型

列の定義

各列には「名前」「データ型」「制約(任意)」を指定します。
データ型は、整数なら INT、文字列なら NVARCHAR(50) のように指定します。

主なデータ型の例

カテゴリ 型名 用途
文字列 NVARCHAR(50) 日本語を含む名前・住所など
数値 INT, DECIMAL(10,2) IDや金額など
日付 DATETIME2 登録日時など
論理値 BIT フラグ(0/1)

データ型の選び方は、SQL Server データ型の基礎と選び方を参照してください。

制約(Constraints)の指定

主な制約の種類

制約を設定することで、テーブル内のデータ整合性を自動的に保証できます。

制約名 意味
PRIMARY KEY 主キー(重複・NULL禁止) CustomerID INT PRIMARY KEY
FOREIGN KEY 外部キー(他テーブル参照) FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
CHECK 値の範囲制限 CHECK (Age >= 0)
DEFAULT 初期値設定 CreatedAt DATETIME DEFAULT GETDATE()

制約の詳細は、制約(Constraints)の種類と使い方でも詳しく解説しています。

テーブル作成の実例

顧客管理テーブルを作る例


CREATE TABLE Customers (
  CustomerID INT IDENTITY(1,1) PRIMARY KEY,
  Name NVARCHAR(100) NOT NULL,
  Email NVARCHAR(100),
  City NVARCHAR(50),
  RegisteredAt DATETIME2 DEFAULT SYSDATETIME()
);

この例では、自動採番(IDENTITY)とDEFAULT制約を組み合わせています。

注文テーブルを作る例(外部キー付き)


CREATE TABLE Orders (
  OrderID INT IDENTITY(1,1) PRIMARY KEY,
  CustomerID INT NOT NULL,
  OrderDate DATETIME2 DEFAULT SYSDATETIME(),
  Amount DECIMAL(10,2) CHECK (Amount > 0),
  FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);

このように、他のテーブルとの関連(外部キー)を設定することで整合性を保てます。

テーブルの変更・削除

列を追加・変更する


ALTER TABLE Customers
ADD Phone NVARCHAR(20);

ALTER TABLE Customers
ALTER COLUMN Name NVARCHAR(200);

ALTER TABLEを使うと、列や制約を後から変更できます。

テーブルを削除する


DROP TABLE Orders;

DELETEとは異なり、DROP TABLEはテーブル構造そのものを削除します。元に戻せないため注意が必要です。

実務で気をつけたいポイント

  • 列名やテーブル名は業務上の意味がわかるように付ける。
  • NOT NULLを適切に使って、データ欠損を防ぐ。
  • IDENTITYやDEFAULTで自動化できる部分は自動化する。
  • 外部キーやCHECK制約を活用して整合性を担保する。
  • 変更頻度の高い列はデータ型を余裕をもって設計する。

まとめと次のステップ

学んだ内容の整理

  • CREATE TABLE文はテーブル構造を定義する基本コマンド。
  • 各列にデータ型や制約を設定して整合性を維持する。
  • ALTER TABLEで変更、DROP TABLEで削除が可能。
  • 設計段階で制約とデータ型を正しく選ぶことが重要。

参考リンク

SQL Server 解説用イメージ

0 件のコメント:

コメントを投稿