データベース中級者必見!その6〜テーブルの定義の変更〜

2015/11/02

はじめに

前回は、テーブルを作成する際に列にデフォルト値を設置する方法、自動インクリメントを定義する方法、テーブルの削除の方法を紹介しました。
データベース中級者必見!その5〜デフォルト値の設定、テーブルの削除〜

今回はテーブルの定義を変更する方法について紹介いたします。

今回使用するテーブルを以下となります。テーブル構造書を示します。
table1

テーブル構造書から読み取れる内容を説明します。

テーブル名 = 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]

実行結果
table2
column4がしっかりと追加されています。
テーブルに新たな列を追加するにはALTERテーブル文のADD句を使用します。 ALTER TABLEの後にテーブル名を、ADDの後に列名とデータ型、列制約を記述します。

列を削除する

列を削除する場合にもALTER TABLE文を使います。
先程、追加したcolumn4を削除します。SQLは次のとおりです。

[sql]ALTER TABLE sample DROP column4[/sql]

実行結果
table3
column4を削除することができました。
ALTER TABLE文にDROP句の後に削除したい列名を記述します。
列を削除するときには次の点に注意して下さい。

  • テーブルの最後の一列は削除することができない
  • 外部キーで参照されている親キーの列は削除することができない
  • 列にデータが格納されていても、列を削除することができる

列の定義を変更する

続いては列の定義を変更する方法を紹介いたします。
列の定義を変更するにもALTER TABLE文を使用します。
先ほどまでのsampleテーブルのcolumn2列は、データ型がVARCHAR(30)で制約は何も付加されていません。
この列のデータ型をINTEGER型に変更し、さらにNOT NULL制約を付加させるという変更を行います。

[sql]ALTER TABLE sample MODIFY column2 INETGER NOT NULL[/sql]

実行結果
table4

SQL発行後にはsampleテーブルの定義情報を見ると、データ型がINTEGERに変更され,NOT NULL制約を付加することができました。
このように列定義の変更は、ALTER TABLE文のMODIFY句にて行います。

さいごに

今回は、テーブルの定義の変更についてご紹介しました。
以前書いた初級編を含めて本記事でデータベースについての一連の紹介は今回で終了となります。

次回からはJavaプログラミングについて紹介していきたいと思います。

投稿者情報

パンダマン

パンダマンです。

主にWebシステム開発等を担当しております。
設計・プログラミング。サーバー管理なんでもやります。

今、担当しているプロジェクトではJavaの今まで触れたことのないフレームワークを使うことになり勉強中です。
学生にC言語のプログラミングの基礎を教えたりもしています。
最近「キングダム」にはまっています。

>> パンダマン が執筆した他の記事を読む

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー