システム開発 備忘録











システム開発備忘録 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 [表領域名]




Copyright (C) 2009- station-t.com All Rights Reserved , Link Free