プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

Oracle テーブル定義の設定方法

■カラム追加

【基本構文】

ALTER TABLE テーブル名 ADD (カラム名 型);

 

【使用例】 ※TESTテーブルに「AGE」カラムをNUMBER型で追加>

ALTER TABLE TEST ADD (AGE NUMBER);

※複数追加する場合は「カンマ」でつなげる

ALTER TABLE TEST ADD (AGE NUMBER, PASS VARCHAR2(10));

 
 


■カラム名変更

【基本構文】

ALTER TABLE テーブル名 RENAME COLUMN 変更前のカラム名 TO 変更後のカラム名);

 

【使用例】 ※TESTテーブルの「AGE」のカラム名を「ESTIMATED_AGE」に変更>

ALTER TABLE TEST RENAME COLUMN AGE TO ESTIMATED_AGE;

 
 


■カラム削除

【基本構文】

ALTER TABLE テーブル名 DROP (カラム名);

 

【使用例】 ※TESTテーブルの「AGE」カラムを削除>

ALTER TABLE TEST DROP (AGE, PASS);

※複数削除する場合は「カンマ」でつなげる

ALTER TABLE TEST DROP (AGE);

 
 


■カラム定義変更

【基本構文】

ALTER TABLE テーブル名 MODIFY (カラム名 型);

 

【使用例】 ※TESTテーブルの「NAME」カラムのバイト数を100に変更>

ALTER TABLE TEST MODIFY (NAME VARCHAR(100));

 
 


■カラムのNULL制約変更

【基本構文】

ALTER TABLE テーブル名 MODIFY (カラム名 制約);

 

【使用例】 ※TESTテーブルの「ID」カラムを「NOT NULL」に変更>

ALTER TABLE TEST MODIFY (ID NOT NULL);

※逆に「NULL」に変更する場合

ALTER TABLE TEST MODIFY (ID NULL);

 
 


■プライマリーキー設定

【基本構文】

ALTER TABLE TEST2 ADD CONSTRAINT プライマリーキー名 PRIMARY KEY (カラム名);

 

【使用例】 ※TESTテーブルの「ID」カラムに「PRIM_ID」という名称で「ID」にプライマリーキーを設定>

ALTER TABLE TEST2 ADD CONSTRAINT PRIM_ID PRIMARY KEY (ID);

※プライマリーキー名は省略可能
 
 


■シーケンス設定

【基本構文】

CREATE SEQUENCE シーケンス名;
INSERT INTO テーブル名 VALUES (シーケンス名.NEXTVAL;

 

【使用例】 ※シ-ケンスをSEQ_IDという名称で設定

//シーケンス作成
CREATE SEQUENCE SEQ_ID;
//シーケンスをインサート
INSERT INTO TEST VALUES (SEQ_ID.NEXTVAL);
//現在のシーケンスの確認 ※INSERT文等によりシーケンスがセットされていない場合はORA-08002エラーになるので注意
SELECT SEQ_ID.CURRVAL FROM USER_SEQUENCES;
//次のシーケンスに移動 ※ロールバックできないので注意
SELECT SEQ_ID.NEXTVAL FROM USER_SEQUENCES;

 
 


■シーケンスのリセット

【基本構文】

ALTER SEQUENCE シーケンス名 RESTART;

 

【使用例】 ※SEQ_IDという名称のシーケンスをリセット

ALTER SEQUENCE SEQ_ID RESTART;

 
 


■シーケンス削除

【基本構文】

DROP SEQUENCE シーケンス名;

 

【使用例】 ※SEQ_IDという名称のシーケンスを削除

DROP SEQUENCE SEQ_ID;

 
 


■インデックス名の変更

【基本構文】

ALTER INDEX インデックス名 RENAME TO 新しいインデックス名;

 

【使用例】※旧インデックス名:SYS_C007927 新インデックス名:INDEX_ID

ALTER INDEX SYS_C007927 RENAME TO INDEX_ID;

 
 


■インデックス名の確認

【使用例】

SELECT INDEX_NAME FROM USER_INDEXES;