データベース中級者必見!その6〜テーブルの定義の変更〜
2015/11/02
はじめに
前回は、テーブルを作成する際に列にデフォルト値を設置する方法、自動インクリメントを定義する方法、テーブルの削除の方法を紹介しました。
データベース中級者必見!その5〜デフォルト値の設定、テーブルの削除〜
今回はテーブルの定義を変更する方法について紹介いたします。
今回使用するテーブルを以下となります。テーブル構造書を示します。
テーブル構造書から読み取れる内容を説明します。
テーブル名 = sample
colmun1列=INTEGER型、主キー、AUTO_INCREMENT
colmun2列=VARCHAR型、サイズは30
colmun3列=TIME_STAMP型、デフォルト値はCURRENT_TIMESTAMP()
列を追加する
テーブルを作成した後に、「列を一つわすれていた」ということがあるかもしれません。そんな場合のために列を追加するSQL文が用意されています。
テーブルの定義を変更するにはALTER TABLEを使用します。
sampleテーブルにはcolumn4列を追加するには。次のSQL文を発行します。
column4のデータ型はINTEGER型とします。制約は何も付加しません。
[sql]ALTER TABLE sample ADD column4 INTEGER[/sql]
実行結果
column4がしっかりと追加されています。
テーブルに新たな列を追加するにはALTERテーブル文のADD句を使用します。 ALTER TABLEの後にテーブル名を、ADDの後に列名とデータ型、列制約を記述します。
列を削除する
列を削除する場合にもALTER TABLE文を使います。
先程、追加したcolumn4を削除します。SQLは次のとおりです。
[sql]ALTER TABLE sample DROP column4[/sql]
実行結果
column4を削除することができました。
ALTER TABLE文にDROP句の後に削除したい列名を記述します。
列を削除するときには次の点に注意して下さい。
- テーブルの最後の一列は削除することができない
- 外部キーで参照されている親キーの列は削除することができない
- 列にデータが格納されていても、列を削除することができる
列の定義を変更する
続いては列の定義を変更する方法を紹介いたします。
列の定義を変更するにもALTER TABLE文を使用します。
先ほどまでのsampleテーブルのcolumn2列は、データ型がVARCHAR(30)で制約は何も付加されていません。
この列のデータ型をINTEGER型に変更し、さらにNOT NULL制約を付加させるという変更を行います。
[sql]ALTER TABLE sample MODIFY column2 INETGER NOT NULL[/sql]
実行結果
SQL発行後にはsampleテーブルの定義情報を見ると、データ型がINTEGERに変更され,NOT NULL制約を付加することができました。
このように列定義の変更は、ALTER TABLE文のMODIFY句にて行います。
さいごに
今回は、テーブルの定義の変更についてご紹介しました。
以前書いた初級編を含めて本記事でデータベースについての一連の紹介は今回で終了となります。
次回からはJavaプログラミングについて紹介していきたいと思います。