「DML」の編集履歴(バックアップ)一覧はこちら
DML - (2010/02/21 (日) 23:37:06) の1つ前との変更点
追加された行は緑色になります。
削除された行は赤色になります。
<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 SYNONYM シノニム名 FOR スキーマ名.オブジェクト名</p>
<p> 例)CREATE SYNONYM dept FOR hr.department;</p>
<p> </p>
<p> ②特徴</p>
<p> シノニムは、オブジェクトに対する別名</p>
<p> 長いオブジェクト名を短縮して、容易なアクセスとする</p>
<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>