目次へ

4. データの入力・変更・削除

4.1. データの入力 <INSERT INTO>

既に表が定義されていて、その表へデータを入力する場合の基本的な構文は次の通りです。

INSERT INTO テーブル名 (列名 , 列名 ,.......)
       VALUES(データ , データ ,.......);

上に示す構文のように INSERT INTO 文を用いてデータを入力します。

INSERT INTO のすぐ後ろのカッコの中には、データを入力する列名を入力する順番に記述します。ここで指定されない列にはデフォルト値が設定されている場合はデフォルト値が、デフォルト値が設定されていない場合は NULL 値が登録されます。デフォルト値が指定されていなくて、NOT NULL が指定されている場合、INSERT INTO 文は失敗します。あらかじめ列制約やテーブル制約により、入力できる値に制限があるような場合は、その制約に従う値を入力しなければなりません。また、全ての列にデータを入力する場合、ここのカッコは省略しても構いません。

VALUES の後ろのカッコには、実際に入力するデータを記述します。INSERT INTO の後ろのカッコ内で指定した列の順番に対応するようにデータは記述されなければなりません。また、それぞれの列のデータ型でなければなりません。

次の例は商品表にデータを入力するものです。商品コード、商品名、単価のデータ型はそれぞれ CHAR(4)、CHAR(16)、INTEGER とします。sample.08-1 では 2つの例を示していますが、どちらも同じ事を意味しています。

表: 商品表
商品コード 商品名 単価
-- sample.08-1 --
/* データの入力 */
  INSERT INTO 商品表 (商品コード , 商品名 , 単価)
         VALUES ('1001','鉛筆',200);

  INSERT INTO 商品表 VALUES ('1001','鉛筆',200); 

クエリを使用すれば、あるテーブルから抽出した値を、INSERT INTO 文を使用して別のテーブルに挿入することができます。詳しい説明は後述しますが、ここでは簡単な例を示しておきます。

例えば、商品表で単価が 10,000 円を超えるものだけを抽出して別の表を作成したい場合には、あらかじめ新しいテーブルを定義しておいて次の例のように SQL を記述します。このとき新しいテーブルの名前を高額商品表とし、表の定義は商品表と同じとします。

表:高額商品表
商品コード 商品名 単価
-- sample.08-2 --
/* データの入力 */
  INSERT INTO 高額商品表
         SELECT *
         FROM 商品表
         WHERE 単価 >= 10000 ;

上の例では WHERE 句で条件を指定して、商品表からデータを抽出し高額商品表にデータを挿入しています。ちなみに商品表にはデータは残ったままになります。商品表からデータを削除するには後に説明する DELETE 文を用います。

(実習課題1)

テーブル employee に次のデータを挿入する SQL 文を記述しなさい。

表 4-2: 挿入するデータ
e_num e_name year gender office
101 Ato Taro 1972 1 10

解答例はこちら

関連記事

↑このページの先頭へ

こちらもチェック!

PR
  • XMLDB.jp