■ はじめに
https://dk521123.hatenablog.com/entry/2010/07/09/201233
の続き。 今回は、テーブル変更するための「ALTER TABLE」を扱う
目次
【1】表名を変更する 【2】表の項目追加 【3】表の項目削除 【4】表の項目のデータ型 / 文字列長の変更 【5】表の項目名変更 【6】制約の追加/変更
制約の追加/変更
* 以下の関連記事を参照のこと。
https://dk521123.hatenablog.com/entry/2016/07/08/234918
【1】表名を変更する
MySQL
* 「ALTER TABLE ~ RENAME TO ~」を使用
構文
ALTER TABLE [対象テーブル名] RENAME TO [変更したいテーブル名];
例
ALTER TABLE tblName RENAME TO tblReName;
参考文献
http://sasuke.main.jp/rename.html
【2】表の項目追加
* 「ALTER TABLE ~ ADD ~」を使用
構文
ALTER TABLE [テーブル名] ADD [項目名] [項目名のデータ型];
例
ALTER TABLE tblName ADD flg NUMBER(1) DEFAULT 1 NOT NULL;
PostgreSQL
* 「ALTER TABLE ~ ADD COLUMN ~」を使用
https://www.postgresql.jp/document/9.4/html/sql-altertable.html
例
-- 追加 ALTER TABLE sample_table ADD COLUMN add_item VARCHAR(50); -- Defult設定 ALTER TABLE sample_table ALTER COLUMN add_item SET DEFAULT NULL;
使用上の注意
* MySQL のように、順番を指定してカラムを追加することができない ⇒ 以下のサイトで2案「テーブル再作成」「列を追加しデータを移動」あるが 正直どちらもいまいち、、、
https://wiki.postgresql.org/wiki/Alter_column_position/ja
* 詳細は、以下の関連記事を参照のこと
https://dk521123.hatenablog.com/entry/2020/06/10/000000
【3】表の項目削除
* 「ALTER TABLE ~ DROP ~」を使用
構文
ALTER TABLE [テーブル名] DROP [項目名];
例
ALTER TABLE tblName ADD flg; # または ALTER TABLE tblName DROP COLUMN flg;
【4】表の項目のデータ型 / 文字列長の変更
Oracle / MySQL
* 「ALTER TABLE ~ MODIFY ~」を使用
構文
ALTER TABLE [テーブル名] MODIFY [項目名] [新しいデータ型];
例
ALTER TABLE tblName MODIFY name NVARCHAR2(40); ALTER TABLE tblName MODIFY name VARCHAR(40);
SQL Server/Access
* 「ALTER TABLE ~ ALTER COLUMN ~」を使用
構文
ALTER TABLE [テーブル名] ALTER COLUMN [新しいデータ型];
例
ALTER TABLE tblName ALTER COLUMN name NVARCHAR2(40);
参考資料
http://programnet.hp.infoseek.co.jp/database/alter.html
MySQL
http://mysql.akarukutanoshiku.com/category5/entry24.html
【5】表の項目名変更
MySQL
* 「ALTER TABLE ~ CHANGE [COLUMN] ~」を使用
構文
ALTER TABLE [テーブル名] CHANGE (COLUMN) [古い項目名] [新しい項目名] [新しいデータ型];
例
ALTER TABLE tblName CHANGE name re_name VARCHAR(40);
参考資料
http://www.dbonline.jp/mysql/table/index19.html
関連記事
ALTER TABLE ~ テーブル制約変更 編 ~
https://dk521123.hatenablog.com/entry/2016/07/08/234918
CREATE TABLE / DROP TABLE ~ テーブル作成・削除 ~
https://dk521123.hatenablog.com/entry/2010/07/09/201233
テーブルに関するコメント文
https://dk521123.hatenablog.com/entry/2011/04/14/005146
【PostgreSQL】順番を指定したテーブルの項目追加
https://dk521123.hatenablog.com/entry/2020/06/10/000000