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命令の理解のために新規テーブルを作る方法だけを知っておいてください。
|
|
|