1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Oracle SQL】テーブル作成後の修正に使えるDDL文

Last updated at Posted at 2019-11-28

メモ用

制約系(UNIQUE, FOREIGH KEY)

チェック制約

外部キー制約


-- ON DELETE CASCADEなしだと
ALTER TABLE テーブル名1
ADD CONSTRAINT 外部キー名
  FOREIGN KEY (列名1-1)
  REFERENCES テーブル名2(列名2-1)
  -- ON DELETE CASCADE; -- 親テーブルの行が削除される場合、参照している子テーブルの該当行も削除される。
  -- ON DELETE SET NULL; -- 親テーブルの行が削除される場合、参照している子テーブルの該当行は null に更新される。
  -- ON 句なし  参照している子テーブルの該当行がある場合、親テーブルの行を削除できない。

主キー制約

一意制約 (UNIQUE)

ALTER TABLE テーブル名 MODIFY (列名 UNIQUE);

ALTER TABLE テーブル名 ADD UNIQUE (列名1, 列名2, 列名3, ...);

リネーム(名前変更)


ALTER TABLE word RENAME COLUMN 作成日 to 作成日時;

-- primary制約を削除
alter table "WORD" drop constraint "WORD_PK";


-- IDをユニークな連番で生成
create sequence word_seq;
ALTER TABLE word ADD (ID NUMBER DEFAULT word_seq.nextval,); 



-- デフォルト値を設定
ALTER TABLE テーブル名 MODIFY (列名 default  SYSTIMESTAMP ) ;

ALTER TABLE dictionary MODIFY ( 作成日 SYSTIMESTAMP ) ;

alter table dictionary alter column 作成日 TIMESTAMP;

ALTER TABLE dictionary MODIFY ( 作成日 default  SYSTIMESTAMP ) ;
ALTER TABLE word MODIFY (作成日時 NOT NULL);
ALTER TABLE word MODIFY (ID PRIMARY KEY);



ALTER TABLE dictionary DROP (作成日) CASCADE CONSTRAINTS;

alter table dictionary add (作成日 TIMESTAMP default SYSTIMESTAMP); 

データ追加


INSERT INTO テーブル名(
    列名1,
    列名2
) VALUES (
  '列名1の値',
  '列名2の値'
);


置換

ある任意の列のデータを一斉に置換することができます。(データ移行などで、文字化け対策などに使ったりします。)


-- GをBに変換する
update <table> set <column> =
replace(<column>, 'G', 'B') where <column>like '%G%

複製

テーブル複製


CREATE TABLE New_Table_name AS SELECT * FROM Existing_table_Name; 

oracle - Creating Duplicate Table From Existing Table - Stack Overflow

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?