内容 |
構文 |
説明 |
表の作成 |
CREATE TABLE 表名 (
列名 データ型 [列制約構文]
[, 列名 データ型 [列制約構文]]...
[, 表制約構文...])
[TABLESPACE 表領域名]
[記憶領域管理パラメータ];
CREATE TABLE 表名 AS SELECT文;
| TABLESPACEを指定しないとSYSTEM領域に作成される。
副問い合わせで既存表から作成された表にはNOT NULL制約のみコピーされる。
列名の抽出可。
WHERE条件によるデータの取り出し可。
|
表の確認 |
DESC[RIBE] 表名 |
SQL*PLUSコマンド |
表の削除 |
DROP TABLE 表名 [CASCADE CONSTRAINTS]; |
参照整合性制約(FOREIGN KEY制約)が設定されている親表を削除するには、まず、子表を削除しなければエラーになります。
子表を残し、親表のみを削除する場合は、CASCADE CONSTRAINTSオプションを使用して、親表を削除することが出来ます。
この場合、親表と参照整合性制約が削除されます。 |
表データの削除 |
TRUNCATE TABLE 表名 |
表から全ての行を削除し表領域が開放されます。
暗黙のコミットが発生する為、ロールバックはできません。
表データは削除されるが、表定義は残ります。 |
表名の変更 |
RENAME 旧表名 TO 新表名 |
参照制約がある場合は、自動的に新しい表名に参照先が変更されます。 |
列の追加 |
ALTER TABLE 表名
ADD(列名 データ型 [列制約構文]
[, 列名 データ型 [列制約構文]]...); |
既存表の最後に追加されます。
既にデータがある表に追加された場合は、追加させた列のデータはNULLになります。
既存データがある場合はNOT NULL制約はつけられません。
(ただし、DEFAULT値が設定されている場合には、DEFAULT値が入ります。
) |
列の変更 |
ALTER TABLE 表名
MODIFY(列名 データ型 [NOT NULL] [, 列名 データ型 [NOT NULL]]...); |
列名を変更することは出来ません。
データ型を変更することはできません。
列のサイズを大きくする操作は、いつでも可能です。
列のサイズを小さくする、NOT NULL制約の追加操作は、 その表にデータが全くない場合、列の値が全てNULLの場合にのみ可能です。
|
列の削除 |
ALTER TABLE 表名
DROP COLUMN 列名 [CASCADE CONSTRAINS] |
1度に削除できるのは1列までです。
最後の列は削除できません。
一度、削除した列を元に戻すことはできません。
|
未使用列の設定 |
ALTER TABLE 表名
SET UNUSED COLUMN 列名 |
1度未使用を設定した列は元に戻すことはできません。 |
未使用列の削除 |
ALTER TABLE 表名
DROP UNUSED COLUMNS |
|
表にコメントをつける |
COMMENT ON
|TABLE 表名|COLUMN 表名.列名|
IS 'コメント' |
コメントの削除も同じ構文 |