データの挿入と削除
この章では、以下の項目について説明します。
データの挿入および削除の概要
データ辞書、テーブルおよび列を作成した後、SQL Data Manager を使用してデータベースにデータを追加できます。SQL ステートメントを使用すると、以下を行うことができます。
•挿入するリテラル値を指定する。
•ほかのテーブルからデータを選択し、その結果の値を行全体または指定された列に挿入する。
リテラル値を挿入するには、その値が指定された列のデータ型および長さに適合していなければなりません。
データベースから行、インデックス、列またはテーブルを削除(drop)できます。さらに、不要になったデータベース全体を削除することもできます。
値の挿入
INSERT ステートメントで VALUES 句を使用して、データベースに挿入するリテラル値を指定できます。以下の例では、サンプル データベースの Course テーブルに新しい行を挿入しています。
INSERT INTO Course
VALUES ('ART 103', 'Principles of Color', 3, 'Art');
この例では、ステートメントはテーブルの各列の値を順番どおりに挿入するため、列名の Name、Description、Credit_Hours、および Dept_Name を列挙することは任意です。しかし、ステートメントが行全体ではなく選択した行にのみデータを挿入する場合や、テーブルに定義されている順序とは異なる順序で列にデータを挿入する場合は、列のリストが必要になります。
INSERT ステートメントの詳細については、『
SQL Engine Reference』で
INSERT を参照してください。
トランザクションの処理
テーブルにデータを挿入しようとしたとき、そのデータが無効である場合には、PSQL がエラーを返します。エラーが発生する前に挿入されたデータはすべてロールバックされます。この結果、データベースを安定した状態に保つことができます。
PSQL データベースでトランザクション処理を使用して、論理的に関連付けられた一連のステートメントをグループ化することができます。トランザクションの中でセーブポイントを使用すると、トランザクションを効果的にネストさせることができます。あるネスト レベルのステートメントが失敗した場合、そのネスト レベルにある一連のステートメントがセーブポイントにロールバックされます。トランザクション処理とセーブポイントの詳細については、『SQL Engine Reference』の以下のトピックを参照してください。
データの削除
DELETE ステートメントには、位置付けと検索の 2 種類があります。
DELETE ステートメントを使用して、テーブルまたは更新可能なビューから 1 つまたは複数の行を削除できます。PSQL で削除する特定の行を指定するには、DELETE ステートメントの WHERE 句を使用します。
DELETE FROM Class
WHERE ID = 005#
位置付け DELETE ステートメントは、開いている SQL カーソルに関連するビューの現在の行を削除します。
DELETE WHERE CURRENT OF mycursor;
DELETE ステートメントの詳細については、『
SQL Engine Reference』で
DELETE を参照してください。
インデックスの削除
名前付きインデックスが不要になった場合は、DROP INDEX ステートメントを使用して削除します。
DROP INDEX DeptHours#
DROP INDEX ステートメントの詳細については、『
SQL Engine Reference』で
DROP INDEX を参照してください。
列の削除
テーブルから列を削除するには、ALTER TABLE ステートメントを使用します。
ALTER TABLE Faculty
DROP Rsch_Grant_Amount#
この例では、Faculty テーブルから Rsch_Grant_Amount 列を削除し、データ辞書から列の定義を削除します。
ALTER TABLE ステートメントの詳細については、『
SQL Engine Reference』で
ALTER TABLE を参照してください。
メモ: 多数のデータを含むファイルで ALTER TABLE ステートメントを使用する場合は、実行が終了するまでにある程度の時間がかかります。実行中はほかのユーザーはこのファイル内のデータにアクセスできなくなることに注意してください。
テーブルの削除
データベースからテーブルを削除するには、DROP TABLE ステートメントを使用します。
DROP TABLE Student#
この例では、データ辞書から InactiveStudents テーブル定義を削除し、さらに対応するデータ ファイル(INACT.MKD)を削除します。
DROP TABLE ステートメントの詳細については、『
SQL Engine Reference』で
DROP TABLE を参照してください。
メモ: システム テーブルは削除できません。システム テーブルを網羅したリストについては、『SQL Engine Reference』を参照してください。
データベース全体の削除
特定のデータベースが不要になった場合は、PSQL Control Center の SQL Data Manager を使用してそのデータベースを削除できます。詳細については、『PSQL User's Guide』を参照してください。