テーブル、インデックススクリプト
※コピーすると改行が抜ける場合はソースをダブルクリックして強調表示を外してからコピーしてください
--テーブル作成(詳細)
CREATE TABLE TAB1
(COL1 NUMBER(6),
COL2 VARCHAR2(10),
COL3 VARCHAR2(5),
CONSTRAINT "PK_TAB1" PRIMARY KEY(COL1)
USING INDEX
TABLESPACE "USERS"
PCTFREE 10 --最低限ブロックで確保する空き領域
INITRANS 2 --9i以降は最低値2
MAXTRANS 255 --10G以降廃止(一律255)
COMPUTE STATISTICS --10G以降のデフォルト
STORAGE(
INITIAL 64K --LOCAL管理の場合は1エクステントとは限らない
NEXT 64K --LOCAL管理の場合無視
MINEXTENTS 1 --
MAXEXTENTS 10 --LOCAL管理の場合は無視
PCTINCREASE 0 --LOCAL管理の場合は無視
FREELISTS 1 --ASSM表領域の場合は無視
FREELIST GROUPS 1 --ASSM表領域の場合は無視
BUFFER_POOL DEFAULT) --
ENABLE)
PCTFREE 10 --最低限ブロック内で確保する空き領域(%)
PCTUSED 40 --ブロック内の領域が再利用される閾値(%)(ASSMが有効の場合無視)
TABLESPACE USERS
NOCOMPRESS
LOGGING
STORAGE(
INITIAL 64K --LOCAL管理の場合MINEXTENTSのサイズとあわせて調整される
NEXT 64K --LOCAL管理の場合は無視
PCTINCREASE 0 --LOCAL管理の場合は無視
MINEXTENTS 5 --
MAXEXTENTS 100 --LOCAL管理の場合は無視
FREELISTS 1 --ASSM表領域の場合は無視
FREELIST GROUPS 1 --ASSM表領域の場合は無視
BUFFER_POOL DEFAULT) --その他、KEEPやRECYCLE等
;
--プライマリキーの指定
--例1
CREATE TABLE TAB1
(COL1 NUMBER(6) PRIMAEY KEY,
COL2 VARCHAR2(10));
--例2
CREATE TABLE TAB1
(COL1 NUMBER(6) ,
COL2 VARCHAR2(10),
PRIMARY KEY (COL1));
--例3
CREATE TABLE TAB1
(COL1 NUMBER(6) ,
COL2 VARCHAR2(10),
CONSTRAINT PK_TAB1 PRIMARY KEY (COL1));
--例4(制約と索引は別の名前にすることもできるが、制約削除の挙動が変わるので推奨しない)
CREATE TABLE TAB1
(COL1 NUMBER(6) ,
COL2 VARCHAR2(10),
CONSTRAINT PK_TAB1 PRIMARY KEY (COL1)
USING INDEX(CREATE UNIQUE INDEX PK_TAB1 ON TAB1(COL1)) );
--コメント
COMMENT ON TABLE TAB1 IS 'コメント';
--列追加
ALTER TABLE TAB1 ADD COL2 VARCHAR2(20);
--列定義変更
ALTER TABLE TAB1 MODIFY(COL2 VARCHAR2(100));
--NOT NULL制約追加
ALTER TABLE TAB1 MODIFY(COL1 NOT NULL);
--外部参照表
CREATE TABLE TAB1 (COL1 NUMBER PRIMARY KEY);
CREATE TABLE TAB2 (COL1 NUMBER , CONSTRAINTS COL1_FK FOREIGN KEY(COL1) REFERENCES TAB1(COL1));
--ファンクションインデックス
CREATE INDEX I_F_COL1 ON TAB1(TO_CHAR(COL1));
--テーブルにエクステントを手動で割り当てる
ALTER TABLE TAB1 ALLOCATE EXTENT;
--表領域移動
ALTER TABLE TAB1 MOVE TABLESPACE USERS;
--ASSM環境のセグメント縮小(HWMの引き下げ)(10g~)
ALTER TABLE TAB1 ENABLE ROW MOVEMENT;
ALTER TABLE TAB1 SHRINK SPACE COMPACT CASCADE;
ALTER TABLE TAB1 DISABLE ROW MOVEMENT;
--INDEX作成
CREATE INDEX TAB1_IDX ON TAB1(COL1) TABLESPACE INDX;
--UNUQUE INDEX作成
CREATE UNIQUE INDEX IDX_TAB1 ON TAB1(COL1) TABLESPACE INDX;
--PRIMARY KEY追加
ALTER TABLE TAB1 ADD CONSTRAINT PK_TAB1 PRIMARY KEY(COL1);
--INDEX無効化(REBUILDすると有効化する)
ALTER INDEX TAB1_IDX UNUSABLE;
--INDEXリビルド
ALTER INDEX TAB1_IDX REBUILD;
--INDEXオンラインリビルド(EE専用)
ALTER INDEX TAB1_IDX REBUILD ONLINE;
--関連ディクショナリ
SELECT * FROM DBA_TABLES;
SELECT * FROM DBA_TAB_COLUMNS;
SELECT * FROM DBA_INDEXES;
SELECT * FROM DBA_IND_COLUMNS;
SELECT * FROM DBA_SEGMENTS;
SELECT * FROM DBA_EXTENTS;
マニュアル
一覧(10.2)リファレンス 10g リリース2(10.2)
SQL リファレンス 10g リリース2(10.2)

折りたたみ
展開