データベース中級者必見!その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型とします。制約は何も付加しません。

ALTER TABLE sample ADD column4 INTEGER

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

列を削除する

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

ALTER TABLE sample DROP column4

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

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

列の定義を変更する

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

ALTER TABLE sample MODIFY column2 INETGER NOT NULL

実行結果
table4

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

さいごに

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

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

投稿者情報

パンダマン

パンダマン

パンダマンです。

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

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

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

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