InterBase クイック スタート:Part III - データの挿入
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」を参照してください。
列の値を使用してデータを挿入する
データを挿入する前に、書き込み権限があることを確認してください: 書き込み権限を設定するには、次のステップに従います:
- 対話型 SQL ウィンドウを開きます。
- トランザクション > オプション... を選択します。
- アクセス モード パネルで、書き込み を選択します。
- 分離レベル パネルで、同時処理 を選択します。
- デフォルトに設定 にチェックを付け、OK をクリックします。
以降のステップでは、データをいくつかデータベースに挿入します:
Country
テーブルに行を追加するために、次のコードを入力して実行します:INSERT INTO Country (country, currency) VALUES ('USA', 'Dollar')
- メモ: 引用符の中に入力するものは、いずれも大文字小文字が区別されます。
Department
テーブルに行を追加するために、次のコードを入力して実行します:INSERT INTO Department (dept_no, department, head_dept, budget, location, phone_no) VALUES ('000', 'Corporate Headquarters', NULL, 1000000, 'Monterey', '(408) 555-1234')
- メモ: 文字列はすべて単一引用符で囲まれ、数値は囲まれていません。 たとえば、部署番号やデフォルトの電話番号などは文字列で、数値ではありません。
Department
テーブルに対する次のデータ行は、前に入力したものを同じです。 簡単に入力できるよう、[一つ前の問い合わせ] ボタン()をクリックします。 これにより、SQL 文領域に、先程のクエリが表示されます。- 以前のクエリの値を、次のようになるように置き換えます:
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
に対する新しい値は文字列で、数値ではありません。
- メモ:
- 正常にデータを挿入できたか確認するために、テーブルの内容を検証することができます。次の 2 つの文を入力および実行してください(1 つずつ)。
SELECT * from Country SELECT * from Department
対話型 SQL ウィンドウを、文をコミットしないで閉じると、次のメッセージ ダイアログが現れます:
はい を選択しなければなりません。そうでなければ、行った変更(この場合、挿入されたデータ)は、元に戻ってしまいます。
スクリプトでデータを挿入する
残りのデータを、Country
、Job
、Department
、Employee
の各テーブルに挿入するには、SQL スクリプトを使用します:
INSERTS.SQL
スクリプトを読み込みます。- クエリを実行します。
- データがデータベース内にあるか確認するには、次の文を、それぞれ実行していきます。
SELECT * FROM Country SELECT * FROM Job SELECT * FROM Employee SELECT * FROM Department
Country
テーブルには、エントリが 14 個あるはずです。次の図は、現時点での様子を表しています。
バックアップの時間です
INSERTS.SQL
スクリプトを正常に実行できたら、データベースをバックアップするのに良いタイミングでしょう。