InterBase クイック スタート:Part III - データの挿入

提供: InterBase

InterBase クイック スタート:Part III - データベースの中身の設定 へ戻る

INSERT 文を使用して、1 行または複数行のデータを、既存のテーブルに格納することができます。最も簡単な形式では、構文は次のようになります:

INSERT INTO table_name [(column_name)]
VALUES      (value)

列名を指定しなかった場合、InterBase は指定された値を、列が定義された順に挿入していきます。値は、そのテーブル内の列の数と同数でなければなりません。 列を指定する場合には、名前で指定した順に、列に対して値を用意します。 指定しない列については、(列の定義によって)デフォルト値か NULL 値が割り当てられます。

値は定数としても、または、計算される値としても、指定することができます。組み込み SQL では、値は変数にもなりえます。

この構文の重要はバリエーションでは、あるテーブルに行を追加するのに、他のテーブルから選択した行を使用することができます。 これが機能するには、2 つのテーブルが同じ順番で列を保有していなければなりません。 この形式の構文は次のようになります:

INSERT INTO table_name
            (columns)
SELECT columns
FROM   table_name
WHERE  conditions

INSERT の詳細については、「INSERT」を参照してください。

Image 025.jpg 列の値を使用してデータを挿入する

データを挿入する前に、書き込み権限があることを確認してください: 書き込み権限を設定するには、次のステップに従います:

  1. 対話型 SQL ウィンドウを開きます。
  2. トランザクション > オプション... を選択します。
  3. アクセス モード パネルで、書き込み を選択します。
  4. 分離レベル パネルで、同時処理 を選択します。
  5. デフォルトに設定 にチェックを付け、OK をクリックします。
    InteractiveSQLTransactionEditor.png

以降のステップでは、データをいくつかデータベースに挿入します:

  1. Country テーブルに行を追加するために、次のコードを入力して実行します:
    INSERT INTO Country
                (country,
                 currency)
    VALUES      ('USA',
                 'Dollar')
    
    メモ: 引用符の中に入力するものは、いずれも大文字小文字が区別されます。
  2. Department テーブルに行を追加するために、次のコードを入力して実行します:
    INSERT INTO Department
                (dept_no,
                 department,
                 head_dept,
                 budget,
                 location,
                 phone_no)
    VALUES     ('000',
                'Corporate Headquarters',
                NULL,
                1000000,
                'Monterey',
                '(408) 555-1234')
    
    メモ: 文字列はすべて単一引用符で囲まれ、数値は囲まれていません。 たとえば、部署番号やデフォルトの電話番号などは文字列で、数値ではありません。
  3. Department テーブルに対する次のデータ行は、前に入力したものを同じです。 簡単に入力できるよう、[一つ前の問い合わせ] ボタン(InteractiveSQLPreviousQueryButton.png)をクリックします。 これにより、SQL 文領域に、先程のクエリが表示されます。
  4. 以前のクエリの値を、次のようになるように置き換えます:
     INSERT INTO Department
                (dept_no,
                 department,
                 head_dept,
                 budget,
                 location,
                 phone_no)
    VALUES      ('100',
                 'Sales and Marketing',
                 '000',
                 200000,
                 'San Francisco',
                 '(415) 555-1234')
    
    メモ: head_dept に対する新しい値は文字列で、数値ではありません。
  5. 正常にデータを挿入できたか確認するために、テーブルの内容を検証することができます。次の 2 つの文を入力および実行してください(1 つずつ)。
    SELECT * from Country
    SELECT * from Department
    
    TutorialInsert1.png

対話型 SQL ウィンドウを、文をコミットしないで閉じると、次のメッセージ ダイアログが現れます:

InteractiveSQLCommitPrompt.png

はい を選択しなければなりません。そうでなければ、行った変更(この場合、挿入されたデータ)は、元に戻ってしまいます。

Image 025.jpg スクリプトでデータを挿入する

残りのデータを、CountryJobDepartmentEmployee の各テーブルに挿入するには、SQL スクリプトを使用します:

  1. INSERTS.SQL スクリプトを読み込みます
  2. クエリを実行します
  3. データがデータベース内にあるか確認するには、次の文を、それぞれ実行していきます。
    SELECT * FROM Country
    SELECT * FROM Job 
    SELECT * FROM Employee 
    SELECT * FROM Department
    

    Country テーブルには、エントリが 14 個あるはずです。次の図は、現時点での様子を表しています。

    TutorialInsert2.png

バックアップの時間です

INSERTS.SQL スクリプトを正常に実行できたら、データベースをバックアップするのに良いタイミングでしょう。

次は: