アットウィキロゴ

DML

●ビュー

 ①構文

   CREATE OR REPLACE VIEW VIEW名 (ビュー列名1、・・)

   AS SELECT XXX [WITH CHECK OPTION]  ※

                                           [WITH READ ONLY]

 

   ※select句のwhere条件にあわないものはINSERT、UPDATEできない

            以下の場合、salaryが2000以外の場合は、INSERT/UPDATE出来ない

 

    CREATE OR REPLACE VIEW emp_v

              SELECT * FROM emp

               where salary = 2000

               WITH CHECK OPTION;

 

 ②制限

  ・INSERT : ビュー定義に含まれない表の列にNOT NULL制限が無い場合

  ・UPDATE : SELECT句で式や関数を利用していない場合

  ・DELETE : ビューを作成するSELECT文にGROUP関数やGROUP BY、DISTINCTを利用していない場合

 

 ③削除

  ・DROP VIEW VIEW名で削除する

  ・VIEWを削除しても、元の表は削除されない

   表を削除してもビューは削除されないが、アクセスできない

  ・DROP ANY VIEW権限を持つユーザのみ削除できる

 

●sequence

 ①構文

  CREATE SEQUENCE SEQUENCE名

  [INCREMENT BY 増分値]             デフォルト:1

  [START WITH 値]                  デフォルト:1

  [MAXVALUE値 | NOMAXVALUE]       デフォルト:INCREMENT BYが正の場合は、NOMAXVAL。負の場合は-1

  [MINVALUE 値 | NOMINVALUE]        デフォルト:INCREMENT BYが正の場合は、1。負の場合はNOMINVAL

  [CYCLE/NOCYCLE]

  [CACHE n| NOCACHE]

 

 ②順序の使用

   ・現在の順序を取得

    select 順序名.currval from dual;

       ・次の順序を取得

          select 順序名.nextval from dual;

       ※初めて利用する場合に、currvalを行うとエラーとなる

    nextvalを行い、currvalを行う

 

 ③特徴

  ・共有オブジェクト

   複数のユーザで利用可能

  ・主キーの値に生成

  ・一意なコードとなるため、アプリを作る必要がない

 

 ④削除

  ・構文

   DROP SEQUENCE 順序名;

  ・DROP ANY SEQUENCE権限を持つ場合

   ※いつでも削除可能

 

●Index(索引)

 ①構文

   CREATE INDEX INDEX名 ON 表名(列名1、・・);

 

  ②特徴

  ・PRIMARY KEY、UNIQUE制約を定義すると、一意索引が自動で作成される

 

 ③索引作成ガイドライン

   ・WHERE条件で利用される列

   ・行数の多い表から一部の行を取り出す場合

 

  ※索引を作成しないほうが良い場合

   ・WHERE条件に列が含まれない場合

   ・行数の少ない表から複数の行を取り出す場合

   ・表が頻繁に更新される

 

●シノニム

 ①構文

  CREATE [PUBLIC] SYNONYM シノニム名 FOR スキーマ名.オブジェクト名

  例)CREATE SYNONYM dept FOR hr.department;

 

  ②特徴

  シノニムは、オブジェクトに対する別名

  長いオブジェクト名を短縮して、容易なアクセスとする

最終更新:2010年02月21日 23:37