Geek-Side

Resource > SQL

テーブル一覧

/* 接続ユーザーで見れるオブジェクト(表、ビュー) */
SELECT * FROM TAB;
/* 接続ユーザーが作成した表 */
SELECT * FROM USER_TABLES;

カラム一覧

/* 接続ユーザーが作成したカラム */
SELECT * FROM USER_TAB_COLUMNS;

テーブルコメント一覧

/* 接続ユーザーが作成したカラムコメント */
SELECT * FROM USER_TAB_COMMENTS;

カラムコメント一覧

/* 接続ユーザーが作成したカラムコメント */
SELECT * FROM USER_COL_COMMENTS;

制約一覧

user_constraints  制約一覧
user_cons_columns  制約一覧


ROWID

*** 物理ROWID
通常の表やクラスタ化表等に適用
行が削除されない限り、ROWIDは変化しない。
エクスポート/インポートユーティリティにより変更される可能性がある。
いったん削除された行のROWIDが、新たに挿入された行のROWIDとなる場合がある。

SELECT ROWID FROM HOGE;

論理ROWID

索引構成表に適用
表の主キーに基づいたROWID

ROWNUM

Oracleが戻す列の順序
Order by 句が指定されている場合、rownumが振られた後にソートされる。

SELECT * FROM HOGE WHERE ROWNUM < 10;

ユーザの削除

/* ユーザhogeを削除 */
drop user hoge;
/* ユーザhogeとownerがhogeのオブジェクトを削除 */
drop user hoge cascade;

ユーザが接続中だと削除できない。
この場合は接続を切ってもらうったりセッションを強制的に切断したりする。

セッションの切断

/* セッション情報を取得 */
select sid, serial#, username from v$session
/* 上記で取得した情報を元にセッションを切断 */
alter system kill session'[sid],[serial#]' 

ユーザの作成

ユーザを作成し、テーブルスペースを"DATA"とする。
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権限を付与する
GRANT "CONNECT" TO "hoge";

統計関数

select row_number() over (order by hoge) from hoge_table;
row_number() over (order by hoge)
hogeでorder byした時の並び順を表示する