SQL【Lesson7】CREATE TABLE文を使ったテーブル作成

SQL Server

前回の【Lesson6】までは、SSMSのGUIでテーブルを作成してきました。
今回はそのGUIを使わず、SQLのCREATE TABLE文を使ってテーブルを作成します。
※【Lesson6】までに作ったTOYONA自動車工業データベースを使います。

テーブルの作成(SQL:CREATE TABLE)

今回の【Lesson7】で習得できること。

  • データベースにテーブルを作成
  • テーブル名の定義
  • 列名の定義
  • 型の定義
  • NULL許容の定義
  • PRIMARY KEY,FOREIGN KEYの制約の定義

CREATE TABLE構文

CREATE TABLE文を作成するときは、カッコ()の中に名称や定義、制約などを記述します。

CREATE TABLE(列名 型 NULL許容 制約)

ここで注意するポイントは、記述する項目間(列名や型など)にスペースを入力するのと、
1列毎にカンマ[,]で区切ることです。

CREATE TABLE
(
列名 型 NULL許容 制約,
列名 型 NULL許容,
列名 型 NULL許容
)

PRIMARY KEY(主キー)制約

CREATE TABLE文のカッコ()の中で、PRIMARY KEYを設定したい列の最後に記述します。

CONSTRAINT 制約名 PRIMARY KEY

FOREIGN KEY(外部キー)制約

CREATE TABLE文のカッコ()の中で、全ての列定義の最後に記述します。

CONSTRAINT 制約名 FOREIGN KEY(列名) REFERENCES 親テーブル名(親列名)

新規クエリ作成

  1. テーブルを追加したいデータベース(TOYONA自動車工業)を右クリックします。
  2. [新しいクエリ(Q)]を選択する。
CREATE-TABLE_新規クエリ
データベース_新しいクエリを選択

CREATE TABLE文(作成・実行)

  1. CREATE TABLE文を記述する。
  2. エラーが出ていない事を確認して、ツールバー左上の[実行(X)]をクリック。
  3. 下部メッセージ欄に完了通知と日時が出ると、無事クエリが実行されています。
CREATE-TABLE_QUERY
CREATE-TABLE_クエリ

CREATE TABLE文で【T_在庫】テーブルを作成しました。
カッコ()の中は、上記で紹介した構文の通りの構成になっています。

カッコ()の中の1行目、’在庫ID’列の定義を抜き出して説明します。

在庫ID int NOT NULL CONSTRAINT PK_T_在庫 PRIMARY KEY,


[在庫ID]

  • 列名です。設定したい列名を定義します。

[int]

  • 型です。今回は数値を扱う列なのでint型を定義します。
    文字を扱いたい場合は、nchar(),nvachar()を使います。

・nchar(2)は、文字数がカッコ()の中の数値に固定されて、指定した
数より多くても少なくてもダメです。全角半角は問いません。

・nvarchar(2)は、最大文字数がカッコ()の中の数値になり、その指定した
数より少なくても扱えます。こちらも全角半角は問いません。

[NOT NULL]

  • NULLを許容するかの定義です。
    NULL許容は、中身が空っぽのデータを扱うか否かの設定です。
    NULLを許容するとアプリケーションでデータベースを扱う際、バグの原因にも
    なりやすいと言われています。
    基本、NULLは許容しない方が良いのでNOT NULLです。

[CONSTRAINT PK_T_在庫 PRIMARY KEY]

  • CONSTRAINT は、’制約’という意味です。
    ‘PK_T_在庫’を制約名として、PRIMARY KEY(主キー)を定義します。

[CONSTRAINT FK_T_在庫_T_車両 FOREIGN KEY(車ID) REFERENCES T_車両(車ID)]

  • ‘FK_T_在庫_T_車両’を制約名として、【T_車両】テーブルの’車ID’との
    FOREIGN KEY(外部キー)制約を定義します。

テーブルを作成した後に制約を追加するには、ALTER TABLE文でないと定義できません。データベースの設計をしっかりと考えてテーブルを作成することが重要です。

CREATE TABLE文の実行確認

CREATE TABLE文によって定義されたテーブルが、データベースに反映されているかを
オブジェクトエクスプローラーを最新の情報に更新(F5)して確認します。

テーブルがデータベースに作成されているか確認
データベース反映の確認

【T_在庫】テーブルの赤丸の部分で、列とキーの定義がデータベースに反映されている
ことが確認できます。列とキーの表示されている内容は下記の通りです。

[列]

  • 列名(制約、型、NULL許容)

[キー]

  • 制約名

CREATE TABLE文の実行後は、自分が定義した通りにデータベースに反映されているか、
確認するようにしましょう。


以上がCREATE TABLE文でした。
簡単にデータベースにテーブルが作れたのではないでしょうか。

次回は、ALTER TABLE文を使って、既存テーブルの中身を変更操作します。
ALTER TABLE文も必要なSQLスキルなので習得しましょう!

次回、SQL【Lesson8】ALTER TABLE文で既存テーブルの編集へつづく。


コメント

タイトルとURLをコピーしました