MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

MySQLのALTER TABLEでカラムを追加する方法!デフォルト値の設定手順もわかりやすく解説

MySQLでは、ALTER TABLE文を使うことで、既存のテーブルに後から新しいカラムを追加できます。この記事では、基本的な構文から、実際にテーブルを作成してカラムを追加し、デフォルト値がどのように機能するかまでを順番に解説します。

ALTER TABLEでカラムを追加する基本構文

MySQLでalter文を使ってカラムを追加する場合の基本構文は以下の通りです。

ALTER TABLE テーブル名 ADD COLUMN カラム名 データ型 DEFAULT デフォルト値;

このように、ADD COLUMNの後に追加したいカラム名とデータ型を指定します。さらにDEFAULT句を付けることで、値が指定されなかった場合に自動的に設定されるデフォルト値を定義できます。

検証用テーブルの作成

まずは動作確認用のシンプルなテーブルを作成しましょう。ここでは「Id」と「Name」の2つのカラムを持つテーブルを用意します。

mysql> CREATE TABLE alterTableDemo
    -> (
    -> Id int,
    -> Name varchar(10)
    -> );
Query OK, 0 rows affected (0.69 sec)

DESCコマンドでテーブル構造を確認する

次に、DESCコマンドを実行してテーブルの構造を確認します。カラム名(Field)やデータ型(Type)、キー情報などが一覧で表示されます。

mysql> DESC alterTableDemo;

実行結果は以下の通りです。

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
2 rows in set (0.01 sec)

Ageカラムを追加してみる

それでは、デフォルト値「18」を持つ「Age」カラムを追加してみましょう。ユーザーがAgeカラムの値を明示的に指定しなかった場合、MySQLは自動的にデフォルト値の18を適用します。

alterコマンドでカラムを追加するクエリは次のようになります。

mysql> ALTER TABLE alterTableDemo ADD COLUMN Age int DEFAULT 18;
Query OK, 0 rows affected (0.67 sec)
Records: 0 Duplicates: 0 Warnings: 0

追加後、もう一度DESCコマンドでテーブル構造を確認してみます。

mysql> DESC alterTableDemo;

実行結果を見ると、「Age」カラムが追加され、Default列に「18」が設定されていることがわかります。

+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Id    | int(11)     | YES  |     | NULL    |       |
| Name  | varchar(10) | YES  |     | NULL    |       |
| Age   | int(11)     | YES  |     | 18      |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

レコードの挿入とデフォルト値の動作確認

続いて、INSERTコマンドを使ってテーブルにレコードを挿入します。1件目のレコードではすべてのカラムに値を指定し、2件目のレコードでは意図的にAgeカラムの値を省略してみましょう。

使用するクエリは以下の通りです。

mysql> INSERT INTO alterTableDemo(Id, Name, Age) VALUES(100, 'Chris', 24);
Query OK, 1 row affected (0.16 sec)

mysql> INSERT INTO alterTableDemo(Id, Name) VALUES(101, 'Robert');
Query OK, 1 row affected (0.25 sec)

SELECT文ですべてのレコードを表示して結果を確認します。

mysql> SELECT * FROM alterTableDemo;

実行結果は以下の通りです。

+------+--------+------+
| Id   | Name   | Age  |
+------+--------+------+
| 100  | Chris  | 24   |
| 101  | Robert | 18   |
+------+--------+------+
2 rows in set (0.00 sec)

注目すべきポイントは「Robert」の行です。Ageの値を指定しなかったため、DEFAULT句で設定したデフォルト値の18が自動的に登録されています。このように、ALTER TABLEでカラムを追加する際にDEFAULT句を組み合わせれば、値の未入力時に一定の値を保証できるため、実務でも非常に便利な機能です。

  1. phpMyAdminでMySQLデータベースのカラムにAUTO_INCREMENT(自動採番)を追加する方法

    MySQLデータベースのカラムにAUTO_INCREMENT(自動インクリメント)を追加したい場合、ALTERコマンドを使用することで簡単に実現できます。本記事では、SQLコマンドによる方法と、phpMyAdminの画面操作による方法の2つをわかりやすく解説します。ALTERコマンドでAUTO_INCREMENTを追加する基本構文AUTO_INCREMENTを追加するには、以下のような構文を使用します。ALTER TABLE テーブル名 MODIFY カラム名 INT NOT NULL AUTO_INCREMENT;この構文では、既存のカラム定義をMODIFY句で変更し、NOT NULL制約と

  2. PythonでMySQLのカラムにコメントを追加する方法をわかりやすく解説

    コメントとは、コードやデータベースの構造に対して付ける「読み手のための説明文」のことです。プログラム内のコメントは、そのコードが何のために書かれたのかを示す役割を持ち、第三者がコードの意図や用途を理解する助けになります。コメントはコンパイラや実行エンジンによって無視されるため、処理には一切影響しません。しかし、保守性や可読性を高める上で非常に重要な要素です。テーブルのカラムにもコメントを付けられるSQLでは、テーブルの各カラム(列)にもコメントを追加できます。カラムにコメントを付けておくと、「このカラムが何を表しているのか」「どのような用途で使われるのか」がひと目で分かるようになります。特に、