MySQL ALTER TABLE 文
1. MySQL ALTER TABLE 文の概要
ALTER TABLE ステートメントは、既存のテーブルにおけるカラム(列)の追加、削除、または変更を行うために使用されます。
また、既存のテーブルに対してさまざまな制約(Constraints)を追加したり、削除したりする場合にも ALTER TABLE ステートメントが使用されます。
一般的な ALTER TABLE の操作は以下の通りです:
- カラムの追加 (Add column) - テーブルに新しいカラムを追加する
- カラムの削除 (Drop column) - テーブル内のカラムを削除する
- カラム名の変更 (Rename column) - カラムの名前を変更する
- カラムの変更 (Modify column) - カラムのデータ型、サイズ、または制約を変更する
- 制約の追加 (Add constraint) - 新しい制約を追加する
- テーブル名の変更 (Rename table) - テーブルの名前を変更する
2. ALTER TABLE - カラムの追加 (ADD Column)
テーブルにカラムを追加するには、以下の構文を使用します。
構文
ALTER TABLE table_name
ADD column_name datatype;次の SQL は、"Customers" テーブルに "Email" カラムを追加する例です。
実行例
/* 自分専用の SQL サーバーを取得 */
ALTER TABLE Customers
ADD Email varchar(255);3. ALTER TABLE - カラムの削除 (DROP COLUMN)
テーブル内のカラムを削除するには、以下の構文を使用します。
構文
ALTER TABLE table_name
DROP COLUMN column_name;次の SQL は、"Customers" テーブルから "Email" カラムを削除する例です。
実行例
ALTER TABLE Customers
DROP COLUMN Email;4. ALTER TABLE - カラム名の変更 (RENAME COLUMN)
テーブル内のカラム名を変更するには、以下の構文を使用します。
構文
ALTER TABLE table_name
RENAME COLUMN old_name TO new_name;5. ALTER TABLE - データ型の変更 (MODIFY Datatype)
テーブル内のカラムのデータ型、サイズ、または制約を変更するには、以下の構文を使用します。
構文
ALTER TABLE table_name
MODIFY column_name new_datatype constraint;次の SQL は、"Email" カラムのサイズを varchar(100) に変更し、さらに NOT NULL 制約を追加する例です。
実行例
ALTER TABLE Customers
MODIFY Email varchar(100) NOT NULL;6. ALTER TABLE - 制約の追加 (ADD CONSTRAINT)
既存のテーブルに制約を追加するには、以下の構文を使用します。
構文
ALTER TABLE table_name
ADD CONSTRAINT constraint_name constraint_definition;次の SQL は、"CHK_Age" という名前の CHECK 制約を追加し、"Age" カラムの値が18以上であることを保証する例です。
実行例
ALTER TABLE Members
ADD CONSTRAINT CHK_Age CHECK (Age >= 18);7. ALTER TABLE - テーブル名の変更 (Rename table)
テーブルそのものの名前を変更するには、以下の構文を使用します。
構文
ALTER TABLE table_name
RENAME TO new_table_name;次の SQL は、"Customers" テーブルの名前を "Clients" に変更する例です。
実行例
ALTER TABLE Customers
RENAME TO Clients;8. MySQL ALTER TABLE の具体例
次のような "Persons" テーブルがあると仮定します。
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
ここで、"Persons" テーブルに "DateOfBirth" という名前のカラムを追加したいとします。
その場合、以下の SQL ステートメントを使用します。
実行例
ALTER TABLE Persons
ADD DateOfBirth date;新しいカラム "DateOfBirth" の型は date であり、日付データを保持することに注意してください。データ型は、そのカラムがどのような種類のデータを保持できるかを指定するものです。MySQL で利用可能なすべてのデータ型のリファレンスについては、当サイトの「データ型リファレンス」を参照してください。
これで、"Persons" テーブルは以下のようになります。
| ID | LastName | FirstName | Address | City | DateOfBirth |
|---|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes | |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes | |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
8.1 データ型の変更例
次に、"Persons" テーブルの "DateOfBirth" カラムのデータ型を変更したいとします。
以下の SQL ステートメントを使用します。
実行例
ALTER TABLE Persons
MODIFY COLUMN DateOfBirth year;これで、"DateOfBirth" カラムの型が year になり、2桁または4桁の形式で年を保持するようになります。
8.2 カラム削除の例
次に、"Persons" テーブルから "DateOfBirth" という名前のカラムを削除したいとします。
以下の SQL ステートメントを使用します。
実行例
ALTER TABLE Persons
DROP COLUMN DateOfBirth;"Persons" テーブルは再び以下のようになります。
| ID | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |