データベース千夜一夜第7回

データの加工命令(1)~レコードの追加とテーブルの作成 長谷川裕行
有限会社 手國堂

テーブルを作成する命令~CREATE TABLE

INSERT命令は、SELECT命令で既存のテーブルから抽出したレコード群を別のテーブルに追加する(書き写す、転記する)場合によく用いられます。

ここでは、テーブル「商品_mr」から「在庫数が10未満」となった商品のレコードだけを抽出し、それらを「商品在庫減少」というテーブルに保存することにします。そのためには、まず「商品在庫減少」テーブルを作成しなければなりません。


- テーブルの新規作成 -

新たなテーブルを作成するには、CREATE TABLE命令を使います。書式は以下の通りです。

  CREATE TABLE <テーブル名> (<フィールドリスト>)

<フィールドリスト>では、以下のような形式で1個のフィールド名とそのデータ型を示し、それを「,」で区切って列挙します。

  フィールド名 データ型(<桁数>)
          ↑間に半角スペースを挿入

「商品ID、品名、在庫」の3つのフィールド(各フィールドのデータ型は「商品_mr」と同じ)を持つ新規テーブル「商品在庫減少」を作成するなら、SQLは以下のようになります。

  CREATE TABLE 商品在庫減少 (商品ID int, 品名 nvarchar(30), 在庫 int)

1つのデータベースに同じ名前のテーブルを重複して作ることはできないので、この場合も同じSQLを再実行すると、クエリアナライザの「メッセージ」ペインに以下のようなエラーメッセージが表示されます。

   サーバー : メッセージ 2714、レベル 16、状態 6、行 1
   データベースにオブジェクト名 '商品在庫減少' が    既に存在します。



- 作成したら表示を更新 -

SQL ServerのEnterprise Managerでは、新たなテーブルを作成してもその場ですぐに画面に反映されません。左側のペインで[+]をクリックしてデータベースを展開し、「テーブル」を選択してメニューから「操作」→「最新の情報に更新」を選択すれば、右ペインに作成したテーブルが表示されます。

今作成した「商品在庫減少」は、まだレコードが保存されていない空のテーブルです。これを選択して「操作」→「テーブルを開く」→「全行を返す」を選択しても、レコードは表示されません。

CREATE TABLE命令はSELECTやINSERTなど通常のデータ操作命令とは異なる「データ定義命令」に属します。データ定義命令については、別の機会に詳しく説明しましょう。今の段階では、INSERT命令の理解のために新規テーブルを作る方法だけを知っておいてください。





トップページ
データを加工する
レコードの追加~INSERT命令
テーブルを作成する命令~CREATE TABLE
テーブルの新規作成
作成したら表示を更新
SELECTとINSERTの組み合わせ
テーブルを作るもう一つの方法~INTO句
あとがき
Copyright © MESCIUS inc. All rights reserved.