INSERT文
INSERT INTO 表名 (列名, 列名, 列名) VALUES (値, 値, 値)
-
全項目挿入の場合は列名は省略可能
-
明示的なNULLの挿入の他、文字列型と日付型では、空文字でもNULLが挿入される。
UPDATE文
UPDATE 表名 SET 列名 = 値, 列名 = 値, 列名 = 値
-
UPDATE文での更新時、対象行に対してORACLEは行レベルロックを行う。
-
WHERE句をうっかり忘れると全行更新されるので気を付けよう。マジで。
DELETE文, TRUNCATE文, DROP文
DELETE [FROM] 表名
-
FROM は省略可能だったのか。知らなかった。
-
WHERE句をうっかり忘れると(略
TRUNCATE TABLE 表名
-
データ定義文であり、行の削除をロールバックできない。
-
条件指定できず、全ての行を削除する。
-
表の削除トリガーが実行されない。
-
参照整合性の親表の場合はエラーとなる。
TRUNCATE TABLE 表名
CRUD文と副問い合わせ
INSERT INTO 表名 (副問合せ)
INSERT INTO (副問合せ) VALUSE (副問合せで出来る表に合わせた値)
-
副問合せが単表の場合、その表にINSERTされる模様。これはしっくりこない。。
-
UPDATE文/DELETE文と副問合せ
-
UPDATE文はSET句への値、WHERE句で使用可能。
-
DELETE文はWHERE句で使用可能。
SAVEPOINTについて
SAVEPOINT A;
色々コード書く
ROLLBACK TO A;
-
これでAまで戻る。一度Aまで戻っても、SAVEPOINT AはROLLBACKされない。
-
SAVEPOINT B とかがあった場合は、Aに戻った時に消えてしまう。
-
SAVEPOINT A とか2回使うと、2回目の記述でポイントが上書きされてしまうので注意。
暗黙のコミット
-
発生ケース
-
DDL文を発行した
-
SQL*PLUSE および iSQL*PLUSEを正常に終了した。
暗黙のロールバック
-
発生ケース
-
システム障害
-
SQL*PLUSE および iSQL*PLUSEを異常終了した。
データ型
-
文字列
-
CHAR(s)
説明の必要なし。
-
VARCHAR(s)
説明の必要なし。
-
LONG(s)
---可変長の文字データ型。
-
最大2Gバイトまでデータを格納可能。
-
ひとつの表にひとつしか定義できない。
-
WHERE句、GROUP BY句で使用できない。
-
整合性制約や、索引に使用できない。
-
副問合せを使用して表を作成する場合に、LONG型の列の値はコピーされない。
データディクショナリ
USER_XXX
|
そのユーザーに関する情報を格納する
|
ALL_XXX
|
そのユーザーがアクセス可能なすべての情報を格納する
|
DBA_XXX
|
データベース全体の情報を格納する
|
V$_XXX
|
動的パフォーマンスビューと呼ばれ、データベースのパフォーマンスおよびロックについての情報を格納する
|
-
データディクショナリ全ての実表とビューはSYSユーザーが所有しています。
SYSスキーマに含まれるオブジェクトは変更してはいけません。
USER_OBJECTS
-
USER_OBJECTS
-
USER_TABLES
-
USER_TAB_COLUMNS
-
USER_CONSTRAINTS
-
USER_CONS_COLOMNS
-
USER_VIEWS
-
USER_SEQUENCES
-
USER_SYNONYMS
-
USER_CATALOG
-
ALL_XXX で、XXXが上記と同名のものが存在する。
-
名前はCATALOG以外全て複数形だということは覚えておいた方がいいかも。
最終更新:2011年08月20日 20:44