アットウィキロゴ

DML

「DML」の編集履歴(バックアップ)一覧に戻る

DML - (2010/02/21 (日) 23:37:06) のソース

<p>●ビュー</p>
<p> ①構文</p>
<p>   CREATE OR REPLACE VIEW VIEW名 (ビュー列名1、・・)</p>
<p>   AS SELECT XXX [WITH CHECK OPTION]  ※</p>
<p>                                           [WITH READ ONLY]</p>
<p> </p>
<p>   ※select句のwhere条件にあわないものはINSERT、UPDATEできない</p>
<p>            以下の場合、salaryが2000以外の場合は、INSERT/UPDATE出来ない</p>
<p> </p>
<p>    CREATE OR REPLACE VIEW emp_v</p>
<p>              SELECT * FROM emp</p>
<p>               where salary = 2000</p>
<p>               WITH CHECK OPTION;</p>
<p> </p>
<p> ②制限</p>
<p>  ・INSERT : ビュー定義に含まれない表の列にNOT NULL制限が無い場合</p>
<p>  ・UPDATE : SELECT句で式や関数を利用していない場合</p>
<p>  ・DELETE : ビューを作成するSELECT文にGROUP関数やGROUP BY、DISTINCTを利用していない場合</p>
<p> </p>
<p> ③削除</p>
<p>  ・DROP VIEW VIEW名で削除する</p>
<p>  ・VIEWを削除しても、元の表は削除されない</p>
<p>   表を削除してもビューは削除されないが、アクセスできない</p>
<p>  ・DROP ANY VIEW権限を持つユーザのみ削除できる</p>
<p> </p>
<p>●sequence</p>
<p> ①構文</p>
<p>  CREATE SEQUENCE SEQUENCE名</p>
<p>  [INCREMENT BY 増分値]             デフォルト:1</p>
<p>  [START WITH 値]                  デフォルト:1</p>
<p>  [MAXVALUE値 |
NOMAXVALUE]       デフォルト:INCREMENT BYが正の場合は、NOMAXVAL。負の場合は-1</p>
<p>  [MINVALUE 値 |
NOMINVALUE]        デフォルト:INCREMENT BYが正の場合は、1。負の場合はNOMINVAL</p>
<p>  [CYCLE/NOCYCLE]</p>
<p>  [CACHE n| NOCACHE]</p>
<p> </p>
<p> ②順序の使用</p>
<p>   ・現在の順序を取得</p>
<p>    select 順序名.currval from dual;</p>
<p>       ・次の順序を取得</p>
<p>          select 順序名.nextval from dual;</p>
<p>       ※初めて利用する場合に、currvalを行うとエラーとなる</p>
<p>    nextvalを行い、currvalを行う</p>
<p> </p>
<p> ③特徴</p>
<p>  ・共有オブジェクト</p>
<p>   複数のユーザで利用可能</p>
<p>  ・主キーの値に生成</p>
<p>  ・一意なコードとなるため、アプリを作る必要がない</p>
<p> </p>
<p> ④削除</p>
<p>  ・構文</p>
<p>   DROP SEQUENCE 順序名;</p>
<p>  ・DROP ANY SEQUENCE権限を持つ場合</p>
<p>   ※いつでも削除可能</p>
<p> </p>
<p>●Index(索引)</p>
<p> ①構文</p>
<p>   CREATE INDEX INDEX名 ON 表名(列名1、・・);</p>
<p> </p>
<p>  ②特徴</p>
<p>  ・PRIMARY KEY、UNIQUE制約を定義すると、一意索引が自動で作成される</p>
<p> </p>
<p> ③索引作成ガイドライン</p>
<p>   ・WHERE条件で利用される列</p>
<p>   ・行数の多い表から一部の行を取り出す場合</p>
<p> </p>
<p>  ※索引を作成しないほうが良い場合</p>
<p>   ・WHERE条件に列が含まれない場合</p>
<p>   ・行数の少ない表から複数の行を取り出す場合</p>
<p>   ・表が頻繁に更新される</p>
<p> </p>
<p>●シノニム</p>
<p> ①構文</p>
<p>  CREATE [PUBLIC] SYNONYM シノニム名 FOR スキーマ名.オブジェクト名</p>
<p>  例)CREATE SYNONYM dept FOR hr.department;</p>
<p> </p>
<p>  ②特徴</p>
<p>  シノニムは、オブジェクトに対する別名</p>
<p>  長いオブジェクト名を短縮して、容易なアクセスとする</p>