OracleBronze11gSQL落とし穴〜その2〜

【ビュー】
・OR REPLACE区で新規にビューを作成できる。
・ビューで検索は早くならない(レスポンスにはなんの関係もない)。
・OR REPLACE区で新規にビューを置き換えると権限はそのまま作成される。
・ビューの作成時にGROUP BY句とORDER BY句が指定できる。
【 DICTIONARYビューについて 】 

 DICT は、DICTIONARY のシノニムです 
・DICT_COLUMNSビューは、データ・ディクショナリ表およびデータ・ディクショナリ・ビュー内の列の情報。

《参考》 
SQL> DESC DICT 
 Name                                      Null?    Type 
 ----------------------------------------- -------- --------------- 
 TABLE_NAME                                         VARCHAR2(30) 
 COMMENTS                                           VARCHAR2(4000) 

SQL> DESC DICT_COLUMNS 
 Name                                      Null?    Type 
 ----------------------------------------- -------- --------------- 
 TABLE_NAME                                         VARCHAR2(30) 
 COLUMN_NAME                                        VARCHAR2(30) 
 COMMENTS                                           VARCHAR2(400
【 コンソールでSELECTしたら】 

・列見出しは、デフォルトでは、列名を大文字で表示。  
・文字型と日付型は、左詰めで表示。 
・数値型は、右詰めで表示。 
【 シノニムについて 】 

・元表を削除すると、シノニムは、無効となる。
・元表名を変更すると、シノニムは、無効となる。
・シノニムを削除しても、元表は削除されない。 
・存在しないスキーマ・オブジェクト(表とかビューとか)のシノニムも作成できる
・プライベート・シノニム名は、RENAME文で、変更することができる。 
 (プライベート・シノニムは、スキーマ・オブジェクトなので変更できる) 
・パブリック・シノニム名は、RENAME文で、変更することはできない。 
・CREATE SYNONYM文で、OR REPLACE句を指定するとシノニムを書き換えが。
 できる 
【 INTERVAL YEAR TO MONTHの実際の使い方 】 

 INTERVAL '123-4' YEAR(3) TO MONTH  123年と4か月の期間 
 INTERVAL '15-7' YEAR TO MONTH      15年と7か月の期間 
 INTERVAL '123' YEAR(3)            123年と0か月の期間 
 INTERVAL '200' MONTH               200か月の期間 
 INTERVAL '14' YEAR                 14年の期間 
 INTERVAL '20' MONTH                20か月の期間(1年8か月の期間)
【 順序のCYCLE指定で戻る値について 】 

・CYCLE指定をすると最大値を超えた時に、昇順であれば、MINVALUE値 
 に戻り、降順であればMAXVALUE値が戻る 
・MINVALUE値が指定されない場合には、デフォルト値の1になる
【 等価式】 

・ALL条件と比較演算子  
  > ALL ...最大値より大きい
 <> ALL ... NOT INと同じ  
  < ALL ... 最小値より小さい
・ANY条件と比較演算子  
  > ANY ... 最小値より大きい  
  = ANY ... INと同じ  
  < ANY ... 最大値より小さい  

・以下の場合、比較が無効  
  = ALL ... いずれとも等しい(比較対象が複数の時、戻り値なし)  
 <> ANY ... いずれかと違う(比較対象が複数の時、すべての値が戻る)  
【暗黙コミット】 

以下を実行すると暗黙コミットが実行される(ようはDDL実行したら暗黙コミットされる)

 ・CREATE文 (CREATE TABLE,CREATE SEQUENCE,CREATE SYNONYM) 
 ・ALTER文 (ALTER TABLE,ALTER USER) 
 ・DROP文 (DROP TABLE,DROP SEQUENCE,DROP VIEW) 
 ・TRUNCATE文 
 ・RENAME文 
【 索引の変更 】 

・索引を変更する命令は存在しない(ALTER INDEX文は、索引内容を変更するものではない) 。
・索引を変更するには、削除して、再度作成する以外にない。
【 FOREIGN KEY制約 】

・FOREIGN KEY制約(参照整合性制約)は、2つの表の親子関係を規定する 
 もの。1つの表で、親子関係を設定することもできる。 
・外部キーと参照キーは、同じ列名でなくてもよいが、データ型は、 
 同じでなければならない(データ型は、数値の桁数や文字サイズ等が 
 正確に一致していなくても設定できる) 
・複数の列による外部キーの設定ができる 
・表制約定義には、FOREIGN KEY句を指定する
・外部キーで参照されていない親キーは、更新または削除できる 
・外部キーで参照されている親キーは、デフォルトでは、更新または削除できない
・外部キー定義時に、ON DELETE句の指定により参照されている親キーを削除す 
 ることができる 

《参考》ON DELETE句指定による親キー削除時の処理は、以下の通りとなる。
 指定なし............対応する外部キーがある場合、削除できない 。
                     対応する外部キーがない場合、削除できる。
 ON DELETE CASCADE...対応する外部キーの値を削除できる。
 ON DELETE SET NULL..対応する外部キーの値をNULL値にする。 
【 WITH CHECK OPTION句】 

・WITH CHECK OPTION句を指定したビューは、ビューによる操作でビュー 
 定義時の条件を満たすものだけが許可される。
・ビュー定義を満たさない追加、更新処理は、エラーになる。 
・WITH CHECK OPTIONとWITH READ ONLYは、いっしょに指定できない。
 一緒に指定するとエラーになる。
【 順序のオブジェクト権限】 

・順序のSELECT オブジェクト権限又はSELECT ANY SEQUENCEシステム権限が必要。 
【 USER_TAB_COMMENTS 】 

・ビューUSER_TAB_COMMENTSで、自分が所有する表またはビューのコメント 
 情報を調べることができる。 
【 日付の計算 】 

・日付と整数を加減算すると、整数は日数として計算される。 

ほんま普段使わんかったら全くわからんなぁ・・・。
業務と資格に差があるわ。


でも明日受かるだめPG。
たぶん今日はまだ問題点出そう(汗)