初めに
この記事は、筆者が Oracle Master Silver SQL 2019(1Z0-071) を受験し、1度落ちた経験から、合格のために押さえたほうが良いトピックをまとめたものになります。
試験結果:
1回目:不合格(得点率:62%)
2回目:合格(得点率:87%)
合計学習期間:1.5ヶ月(3週間ずつ)
列別名
二重引用符("")で囲まなくても使用できる特殊記号
・アンダースコア「 _ 」
・ドル記号「 $ 」
・ハッシュ記号「 # 」
➡ただし、先頭は必ず文字。例えば、1EMP、#EMP 等は不可
非等価条件
使用可能な非等価条件(等しくない)一覧
「 != 」
「 ^= 」
「 <> 」
評価順序
AND と OR では AND が優先される
制約
NOT NULL制約
➡これだけ必ず列レベルで指定する必要がある
読取り専用モード(READ ONLY)
読み取り専用モードでも実行可能なDML操作一覧
DROP TABLE test PURGE;
➡表そのものの削除は可能(TRUNCATEによる全行の削除は不可)
ALTER TABLE test DROP UNUSED COLUMNS;
➡UNUSEDマークの付いた列の削除は可能(列をUNUSEDに変更する操作は不可)
ALTER TABLE test READ WRITE;
➡読み書きモードへの変更は可能
TRUNCATE TABLEとDROP TABLE
項目 | TRUNCARTE TABLE | DROP TABLE |
---|---|---|
概要 | 全行を削除する | 表を削除する |
復元 | 不可 | 可能(FLASHBACK) |
表定義、制約、索引 | 保持される | 保持されない |
ビュー、シノニム | 保持される | 保持される |
一時表
一時表という名前ですが、グローバル一時表だけ少し特殊
項目 | グローバル一時表 | プライベート一時表 |
---|---|---|
データの参照 | 作成したセッションのみ可能 | 作成したセッションのみ可能 |
表定義の参照 | すべてのセッションで可能 | 作成したセッションのみ可能 |
表定義の永続化 | あり | なし |
データの永続化 | なし | なし |
なお、それ以外の特性は通常の表とほぼ同じなので、通常の表でできる操作は実行可能(例えば、ロールバック、トリガー/ビュー/索引/シノニム作成等)
VIEW
ビューは実データを含まないので、実表や索引のようにセグメント(データの記憶域)を持たない(ただし、オブジェクトIDはある)
DUAL表
VARCHAR2型のDUMMYという名前の列を持ち、データを1行だけ含む表
SELECT * FROM dual;
D |
---|
X |
MARGE
WHEN MATCHED句では、UPDATE SET文が必ず必要(その後であれば、DELETE分の記載も可)
WHEN NOT MATCHED句では、INSERT文が必ず必要
日付
日付 + 日付 の操作はエラーになる
集合演算
ORDER BY句は最後にしか指定できない(途中の問い合わせで指定するとエラーとなる)
ロール
ロールは特定のユーザーの持ち物(スキーマ内のオブジェクト)にならない
データディクショナリ
SYSユーザーが保有し、SYSTEM表領域に格納されている
索引
一意索引をDROP INDEX文で削除することはできない
➡PRIMARY KEY制約やUNIQUE制約を削除した時に自動的に削除される
外部表
必須項目一覧
・ORGANIZATION EXTERNAL句:外部表として作成を宣言
・DEFAULT DIRECTORY句:ディレクトリ・オブジェクトの名前を指定
・LOCATION:実際のデータ情報が格納されているファイル名をしてい
参考文献、学習に使用した教材