スキーマとは、データの論理構造の集合である。ひとりのユーザにつき、ひとつのスキーマを所有している。ユーザを作成すると、自動的にユーザ名と同じスキーマ名が割り当てられる。
スキーマに所属するオブジェクトのことをスキーマ・オブジェクトと呼ぶ。スキーマ・オブジェクトの一覧を次に示す。
SQL文中でこれらのスキーマ・オブジェクトを指定する場合、スキーマ名とオブジェクト名をピリオド(ドット)で繋いで指定します。 たとえば、tsukamotoというスキーマのempという表を指定するときにはtsukamoto.empと指定します。
SELECT * FROM tsukamoto.emp
ただし、デフォルトのスキーマ(ユーザー名と同じスキーマ)に所属するスキーマ・オブジェクトの場合は、スキーマ名とピリオド(ドット)を省略することができます。 たとえば、tsukamotoというユーザーがtsukamotoスキーマのempという表を指定するときには、empと指定することができます。
SELECT * FROM emp
ユーザーの所有するスキーマ・オブジェクトを確認するには、次のSQL文を実行します。
SELECT OBJECT_TYPE, OBJECT_NAME FROM USER_OBJECTS
WHERE OBJECT_TYPE = 'TABLE'
ORDER BY OBJECT_TYPE, OBJECT_NAME;
OBJECT_TYPEには、次の値のうちいずれかを指定する。
OBJECT_TYPE | 説明 |
---|---|
DATABASE LINK | データベースリンク |
FUNCTION | ファンクション |
INDEX | インデックス(索引) |
PACKAGE | パッケージ仕様部 |
PACKAGE BODY | パッケージ本体 |
PROCEDURE | プロシージャ |
SEQUENCE | シーケンス |
SYNONYM | シノニム |
TABLE | テーブル(表) |
TRIGGER | トリガ |
VIEW | ビュー |
非スキーマ・オブジェクトとは、データベース・オブジェクトのうち、スキーマに所属しないものである。非スキーマ・オブジェクトには、所有者という概念が無い。
非スキーマ・オブジェクトの一覧を次に示す。
スキーマに関するSQL文には、次のものがある。
スキーマに関するデータ・ディクショナリ・ビューには、次のものがある。