表
オブジェクト
表
データを格納する
ビュー
1つ以上の表からのデータのサブセット。
データは保持しない。
順序
一意な数値を生成する。
索引
問い合わせのパフォーマンスを向上させる目的で使用する。
シノニム
オブジェクトの別名
命名規則
- 先頭は文字である。
- 長さは30バイト以下
- 英数字、記号($ _ #)が可能
- ORACLEの予約語を使用できない
- 同一のスキーマ内で一意な表名、同一表内で一意な列名でなければならない
- 大文字/小文字の区別はされない
スキーマ
オブジェクトの集合
ユーザは1つのスキーマを所有する
表
データを格納するオブジェクト
表の確認
DESCRIBE ( DESC )
表の作成
CREATE TABLE 表名 (列名, データ型 [ DEFAULT 式] [, 列名 データ型] ...) [ TABLES`ACE 表領域名 ]
DEFAULT式
INSERTをする際に、DEFAULT式を省略するするとNULL値が適用されます。
列にデフォルトの値を指定すると、値がない行を挿入された場合に、デフォルト値が挿入されます。
デフォルト値には、リテラル、式、SYSDATEなどが可能。
他の列名、擬似列(NEXTVAL)などは使用できない。
データ型
CHAR(size)
固定長文字データ
1~2000バイトまで
指定桁数に満たない場合、空白が挿入される。
日本語は1語2バイトで扱われる。
VARCHAR2(size)
可変長文字データ
1~4000バイトまで
文字データのみ格納。
桁数に満たない場合は、領域を確保しない。
LONG
可変長文字データ(2GB)
表に対して1つの列しか使用できない
ORDER BY / GROUP BY を使用できない
整合性や制約、索引に使用することもできない
副問い合わせの結果を使用して表を作成する場合、LONG列の値はコピーされない
NUMBER(p,s)
可変長数値データ
pは最大38桁まで可能
sは小数点以下の桁数を指定
Sを省略するとpの制度の整数として使用可能
DATE
日付と時刻を固定長7バイトの日付データ型
4桁年, 月, 日, 時, 分, 秒を格納する
バイナリ型
RAW(s)
可変長バイナリ型
sは1~2000バイトまで可能
LONG RAW
可変長バイナリ型
最大2GBまで可能。
LONGと同様に表ごとに1つの列しかLONG型を使用できないなどの制約を持つ
LOB
RAWと異なり、複数の列に定義可能。
最大4GB
BLOB
バイナリデータ型
CLOB
文字データ型
BFILE
読取専用のバイナリデータ型
OSにファイルとして保存されているデータにアクセスする
ROWID
表内の行の一意にアドレスを表す。
BASE64文字列
ROWID擬似列からの戻り値を使用
日時および期間型
TIMESTAMP
時刻を1秒未満の単位にとして格納
- TIMESTAMPE [p]
DATA型の拡張
年、月、日、時、分、秒、少数秒値を格納
pは少数秒値は0~9桁の範囲で指定します。デフォルトは6桁です。 - TIMESTAMP WITH TIME ZONE
タイムゾーン変位を含みます。
タイムゾーン変位は、現在時刻と国際標準時(UTC)の差を時間および分で表します。 - TIMESTAMP WITH LOCAL TIME ZONE
タイムゾーン変位を含みます。
タイムゾーンはデータベースのタイムゾーンになります - INTARVAL YEAR[y] TO MONTH
時間間隔(年月)を格納します
yはYEARフィールドの桁数を指定します。
デフォルト値は2桁です。 - INTARVAL DAY [d] TO SECOND[s]
時間間隔(日時分秒)を格納します
dは日時フィールドの0~9桁を格納します。デフォルトは2桁です
sは分秒フィールドの0~9桁を格納します。デフォルトは6桁です
既存表からの表の作成
- 列定義には列名、デフォルト値、制約を含めることができる
- 列を指定する場合、列数を吹く問い合わせのSELECTリストと一致させなければならない
- 表は指定された列名で作成され、副問い合わせによって取り出された行が表に挿入される
- 副問い合わせのSELECTリストに式を指定する場合、列別名をしていする
- NOT NULL 制約とデータ型のみコピーされる
- NOT NULL 以外の制約はコピーされない
CREATE TABLE テーブル名 AS SELECT 列名 AS 列別名 関数(列名) AS 列別名 FROM 参照テーブル GROUP BY 参照列
表構造の変更
- 新規列の追加
- 既存列の削除
- 既存列の有効桁数およびデータ型の変更
- デフォルト値の定義(変更後に追加される行のみ有効)
- 制約の有効化/無効化
- 列名の変更
- 読取専用に変更
ALETE TABLE テーブル名 READ ONLY
ALTER TABLE テーブル名 READ WRITE
表構造の削除
- 表構造が削除される
- 表内のデータも全て削除される
- 表に定義されている索引もすべて削除される
- 表に定義されている制約もすべて削除される
ただし、外部キーの制約を定義している場合、エラーとなる - 表を基にしたビュー、シノニムは削除されない
- 保留中のトランザクションはコミットされる
- 表を削除できるのは、所有者または DROP ANY TABLE権限のユーザのみ
ゴミ箱からの表のリストア
ゴミ箱の確認
DROP TABLEを指定した場合、ゴミ箱に格納される SELECT ORIGINAL_NAME, TYPE, OPRATION FROM RECYCLEBIN;
ゴミ箱からのリストア
FLASHBACK TABLE 表名 TO BEFORE DROP
このページのURL: