2010年5月15日土曜日

USING

・usingで指定する列は、表名で修飾するとエラーになる。
・usingで指定する列はselect句で指定する場合も同じで、表名で修飾してはならない。
※これは自然結合でも同じ。結合に使用される列が表名で修飾してはならない。
※もちろん、usingで指定しない列は表名で修飾することができる。

日付の演算

select sysdate + 7 from dual;
現在日時の7日後が表示される。

単一行関数

・ひとつの行に対してひとつの値を返す関数
(※一方、複数の行の値をもとにひとつの値を返すのはグループ関数)

・select,where,およびorder by句で使用できる。

2010年5月5日水曜日

表領域

【表領域とスキーマの関係について】
関連はない。
1つのスキーマに属したオブジェクトを複数の表領域で管理することも可能。

索引

【B*Tree索引について】
null値のデータは含まないため、「is null」による検索では索引を引用しないらしい。
対処法として以下がある。
・nullを特定の値に置き換える。
・ビットマップ索引を使用する。

【表領域について】
表と索引は別の表領域で管理することもできる。
分けることでI/Oの競合を低減させることができる。

ワイルドカード

『%』
0以上の任意の文字の連続
『_』
任意の一文字

※エスケープ方法
e.x
select empno from emp where job like '%sa¥_%' escape '¥';

CASCADE

【DROP時のCASCADE】
・表削除時に参照している別表の外部キー制約を削除することができる。
※子表データの削除ではないことに注意。
E.X.)
drop table テーブル名 cascade constraints

【外部キー生成時のCASCADE】
・on delete cascade
親表の行削除時、子表で外部キーで参照している行も削除される。
・on delete set null
親表名の行削除時、子表で参照している外部キー値がnullにまする。
E.X.)
alter table hoge add constraint fk_col foreign key(col) references parenttbl(col) on delete cascade.

【DELETE時のCASCADE】
ちょっとわからない。調査中