システム開発備忘録 Oracle
SQL小技
--年月でグループ化する方法
select *
from
(
select (to_char(フィールド名,'yyyy'))as 年,
(to_char(フィールド名,'mm'))as 月
from テーブル名
)
group by 年,月
--副問合せしない場合は
select to_char(フィールド名,'yyyy'),
to_char(フィールド名,'mm')
from テーブル名
group by to_char(フィールド名,'yyyy'),
to_char(フィールド名,'mm')
--ちなみにグループ化だけなら年と月は分ける必要はない
select *
from
(
select (to_char(フィールド名,'yyyymm'))as 年月
from テーブル名
)
group by 年月
オブジェクト表示関連SQL
/*テーブル一覧 接続ユーザーで見れらるオブジェクト(表、ビュー) */
SELECT * FROM TAB
/*テーブル一覧 接続ユーザーが作成した表 */
SELECT * FROM USER_TABLES
/*カラム一覧 接続ユーザーが作成したカラム */
SELECT * FROM USER_TAB_COLUMNS
/*コメント一覧 接続ユーザーが作成したテーブルコメント */
SELECT * FROM USER_TAB_COMMENTS
/*コメント一覧 接続ユーザーが作成したカラムコメント */
SELECT * FROM USER_COL_COMMENTS
/*テーブルのインデックス一覧*/
select * from dba_ind_columns where table_name = 'テーブル名'
/*テーブルのプライマリキーの表示*/
select dba_ind_columns.table_owner as owner
,dba_ind_columns.index_name
,dba_ind_columns.column_name
from dba_ind_columns
,dba_indexes
,dba_constraints
where dba_ind_columns.index_name = dba_indexes.index_name
and dba_ind_columns.table_owner = dba_indexes.table_owner
and dba_ind_columns.index_name = dba_constraints.constraint_name
and dba_constraints.constraint_type= 'P'
and dba_ind_columns.table_owner = dba_constraints.owner
and dba_ind_columns.table_name = upper('テーブル名')
and dba_ind_columns.table_owner = upper('オーナー名')
order by dba_ind_columns.table_owner , dba_ind_columns.index_name
テーブルのテーブルスペース(表領域)移動
--表領域を移動してテーブルを再構築、断片化を解消する
alter table [テーブル名] move tablespace [表領域名]
--テーブルスペースの移動により無効になったインデックスを再構築する
alter index [インデックス名] rebuild tablespace [表領域名]
|