データの挿入と削除
この章では、以下の項目について説明します。
•
データの挿入および削除の概要
•
値の挿入
•
トランザクションの処理
•
データの削除
•
インデックスの削除
•
列の削除
•
テーブルの削除
•
データベース全体の削除
データの挿入および削除の概要
データ辞書、テーブルおよび列を作成した後、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
』の以下のトピックを参照してください。
•
「
START TRANSACTION
」
•
「
COMMIT
」
•
「
ROLLBACK
」
•
「
SAVEPOINT
」
•
「
RELEASE SAVEPOINT
」
データの削除
DELETE ステートメントには、位置付けと検索の 2 種類があります。
DELETE ステートメントを使用して、テーブルまたは更新可能なビューから 1 つまたは複数の行を削除できます。PSQL で削除する特定の行を指定するには、DELETE ステートメントの WHERE 句を使用します。
DELETE FROM Class
WHERE ID = 005#
位置付け DELETE ステートメントは、開いている SQL カーソルに関連するビューの現在の行を削除します。
DELETE WHERE CURRENT OF mycursor;
詳細については、『
SQL Engine Reference
』の
「
DELETE
」
および
「
DELETE(位置付け)
」
を参照してください。
インデックスの削除
名前付きインデックスが不要になった場合は、DROP INDEX ステートメントを使用して削除します。
DROP INDEX DeptHours#
詳細については、『
SQL Engine Reference
』の
「
DROP INDEX
」
を参照してください。
列の削除
テーブルから列を削除するには、ALTER TABLE ステートメントを使用します。
ALTER TABLE Faculty
DROP Rsch_Grant_Amount#
この例では、Faculty テーブルから Rsch_Grant_Amount 列を削除し、データ辞書から列の定義を削除します。
詳細については、『
SQL Engine Reference
』の
「
ALTER TABLE
」
を参照してください。
メモ:
多数のデータを含むファイルで ALTER TABLE ステートメントを使用する場合は、実行が終了するまでにある程度の時間がかかります。実行中はほかのユーザーはこのファイル内のデータにアクセスできなくなることに注意してください。
テーブルの削除
データベースからテーブルを削除するには、DROP TABLE ステートメントを使用します。
DROP TABLE Student#
この例では、データ辞書から InactiveStudents テーブル定義を削除し、さらに対応するデータ ファイル(INACT.MKD)を削除します。
詳細については、『
SQL Engine Reference
』の
「
DROP TABLE
」
を参照してください。
メモ:
システム テーブルは削除できません。システム テーブルの完全な一覧については、『
SQL Engine Reference
』を参照してください。
データベース全体の削除
特定のデータベースが不要になった場合は、PSQL Control Center の SQL Data Manager を使用してそのデータベースを削除できます。詳細については、『
PSQL User's Guide
』を参照してください。