CREATE 文でテーブルを作成する - SQL Server

テーブルは、データベースにデータを格納するための重要なオブジェクトです。
SQL Server では、以下の手順に従って新しいテーブルを作成することができます。

新しいテーブルを作成するためのSQL

新しいテーブルを作成するには、CREATE TABLE文を使用します。例えば、以下のように記述します。

CREATE TABLE dbo.PurchaseOrderDetail (
    PurchaseOrderID bigint NOT NULL,
    LineNumber smallint NOT NULL,
    ProductID int NULL,
    UnitPrice money NULL,
    DueDate datetime NOT NULL
    PRIMARY KEY(PurchaseOrderID, LineNumber)
);

上記の例では、PurchaseOrderDetail という名前の新しいテーブルを作成しています。テーブルには、PurchaseOrderID 列からDueDate 列までの5つの列が含まれます。データ型は、数値型( int )や日付/時刻型(datetime)などを使用します。


テーブル名の前についている「dbo」は、SQL Serverにおけるデフォルトのスキーマです。スキーマは、テーブルやストアドプロシージャなどのオブジェクトに名前空間を提供します。(スキーマは、Windowsでいうところのフォルダに似ています。テーブルを適切なスキーマに登録することで、テーブルをより整理し、見つけやすくすることができます。)

データの有効範囲

int 型は、一般的には4バイトで表現され、-2,147,483,648 から 2,147,483,647 までの範囲の整数を表現できます。つまり、int 型はおおよそ-21億から+21億の範囲の整数を格納することができます。int 型は整数を管理するためにデータベースでよく利用されます。ただし、int 型には範囲に制限があるため、より大きな整数を扱う場合には、bigint 型などのより大きなデータ型を使用する必要があります。また、日付と時刻を扱うためには、date 型やdatetime 型を使用します。

SQL Server で使用できるデータ型については、以下を確認します。
learn.microsoft.com

データベースにテーブルを登録する際には、格納するデータに適した適切なデータ型を使用することが非常に重要です。例えば、数値データを文字列として格納すると、データの検索や比較に問題が生じます。数値型のデータを比較する場合には、データベースエンジンは高速に処理することができますが、文字列型のデータを比較する場合には、より多くの処理が必要になる可能性があります。そのため、適切なデータ型を使用することで、データベースのパフォーマンスを向上させることができます。

主キーの設定

テーブルには、各行を一意に識別するために主キーを設定することができます。
主キーを設定するには、PRIMARY KEY制約を使用します。PRIMARY KEY 制約は、1つのテーブルにつき、1つだけ作成することができます。また、PRIMARY KEY制約で定義する列は、NULLを許容しない(NOT NULL)として定義する必要があります。

通常、主キーは、テーブルの最初の列に設定されます。例えば、先ほどのPurchaseOrderDetailテーブルでは、PurchaseOrderID 列とLineNumber 列が主キーとして設定されています。

まとめ

以上の手順に従って、SQL Server で新しいテーブルを作成することができます。テーブルを作成する際には、テーブル名や列名、制約、データ型などを適切に設定することが重要です。これにより、データの整合性を維持し、データベース内での検索や処理が効率的に行えるようになります。