OracleのSQLについて
テーブル一覧
1
2
3
4
| /* 接続ユーザーで見れるオブジェクト(表、ビュー) */
SELECT * FROM TAB;
/* 接続ユーザーが作成した表 */
SELECT * FROM USER_TABLES;
|
カラム一覧
1
2
| /* 接続ユーザーが作成したカラム */
SELECT * FROM USER_TAB_COLUMNS;
|
テーブルコメント一覧
1
2
| /* 接続ユーザーが作成したカラムコメント */
SELECT * FROM USER_TAB_COMMENTS;
|
カラムコメント一覧
1
2
| /* 接続ユーザーが作成したカラムコメント */
SELECT * FROM USER_COL_COMMENTS;
|
制約一覧
user_constraints 制約一覧
user_cons_columns 制約一覧
ROWID
物理ROWID
通常の表やクラスタ化表等に適用
行が削除されない限り、ROWIDは変化しない。
エクスポート/インポートユーティリティにより変更される可能性がある。
いったん削除された行のROWIDが、新たに挿入された行のROWIDとなる場合がある。
1
| SELECT ROWID FROM HOGE;
|
論理ROWID
索引構成表に適用
表の主キーに基づいたROWID
ROWNUM
Oracleが戻す列の順序
Order by 句が指定されている場合、rownumが振られた後にソートされる。
1
| SELECT * FROM HOGE WHERE ROWNUM < 10;
|
ユーザの削除
1
2
3
4
| /* ユーザhogeを削除 */
drop user hoge;
/* ユーザhogeとownerがhogeのオブジェクトを削除 */
drop user hoge cascade;
|
ユーザが接続中だと削除できない。
この場合は接続を切ってもらうったりセッションを強制的に切断したりする。
セッションの切断
1
2
3
4
| /* セッション情報を取得 */
select sid, serial#, username from v$session
/* 上記で取得した情報を元にセッションを切断 */
alter system kill session'[sid],[serial#]'
|
ユーザの作成
ユーザを作成し、テーブルスペースを"DATA"とする。
1
2
3
4
5
| CREATE USER hoge PROFILE "DEFAULT"
Identified BY fuga DEFAULT TABLESPACE "DATA"
QUOTA UNLIMITED
ON "DATA"
ACCOUNT UNLOCK;
|
IDENTIFIED BY fuga | パスワードをfugaとする |
---|
QUOTA UNLIMITED | ユーザーに割り当てる表領域のデータを無制限とする |
ACCOUNT UNLOCK | ユーザーのアカウントをUNLOCKしてアクセス可能とする |
権限の付与
ユーザhogeにCONNECT権限を付与する
1
| GRANT "CONNECT" TO "hoge";
|
統計関数
1
| select row_number() over (order by hoge) from hoge_table;
|
row_number() over (order by hoge)
hogeでorder byした時の並び順を表示する