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

既存のMySQLテーブルに新しいENUM型カラムを追加する方法

既存のMySQLテーブルにENUM型カラムを追加する方法

既存のMySQLテーブルに新しいENUM型(列挙型)のカラムを追加するには、ALTER TABLEコマンドを使用します。基本構文は以下の通りです。

ALTER TABLE テーブル名 ADD カラム名 ENUM('値1','値2',....N) NOT NULL;

サンプルテーブルの作成

まず、動作確認用として以下のようなテーブルを作成します。

mysql> create table DemoTable
(
    StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
    StudentName varchar(200),
    StudentAge int
);
Query OK, 0 rows affected (0.62 sec)

テーブル構造の確認

DESCコマンドを使うと、テーブルの構造を確認できます。

mysql> DESC DemoTable;

実行すると、次のような出力が得られます。

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(200) | YES  |     | NULL    |                |
| StudentAge  | int(11)      | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.01 sec)

ENUM型カラムを追加するクエリ

それでは、既存のテーブルに新しいENUM型カラムを追加してみましょう。ここでは、学生の性別を表す「StudentGender」カラムを追加します。

mysql> ALTER TABLE DemoTable ADD StudentGender ENUM('Male','Female') NOT NULL;
Query OK, 0 rows affected (0.40 sec)
Records: 0 Duplicates: 0 Warnings: 0

追加結果の確認

もう一度テーブル構造を確認してみます。

mysql> desc DemoTable;

以下の出力のように、StudentGenderカラムに設定されたENUMの値も一緒に表示されます。

+---------------+-----------------------+------+-----+---------+----------------+
| Field         | Type                  | Null | Key | Default | Extra          |
+---------------+-----------------------+------+-----+---------+----------------+
| StudentId     | int(11)               | NO   | PRI | NULL    | auto_increment |
| StudentName   | varchar(200)          | YES  |     | NULL    |                |
| StudentAge    | int(11)               | YES  |     | NULL    |                |
| StudentGender | enum('Male','Female') | NO   |     | NULL    |                |
+---------------+-----------------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

上記の出力結果を見ると、StudentGenderカラムのデータ型がENUMとして正しく登録されていることがわかります。

補足ポイント

NOT NULL制約を付けてENUMカラムを追加した場合、すでに存在するレコードには暗黙のデフォルト値(通常は列挙値の最初の要素)が設定されます。既存データを保持しているテーブルにカラムを追加する場合は、DEFAULT 'Male'のようにDEFAULT句を明示的に指定しておくと、意図しないデータが入るのを防げます。

  1. MySQLで列にENUM型を設定する方法

    ```html MySQLでは、テーブルを作成する際に、あらかじめ決められた文字列のリストから値を選ばせたい列に対してENUM型を設定できます。ENUMは、指定した候補値以外のデータが登録されるのを防ぎたい場合に便利なデータ型です。ここでは、実際にテーブルを作成しながら基本的な使い方を見ていきましょう。ENUM型を含むテーブルを作成するまず、学生の点数と合否ステータスを管理するテーブルを作成します。「StudentStatus」列には「First」「Second」「Fail」の3つの値のみを許可するENUM型を設定しています。mysql> create table DemoTable20

  2. Pandasで既存のDataFrameに新しい列を追加する方法

    PandasのDataFrameは2次元のデータ構造で、データが行と列からなる表形式で整然と配置されます。Pythonの辞書(dict)、リスト(list)、Seriesなどを用いて作成できます。この記事では、既存のDataFrameに新しい列を追加する方法を、具体的なコード例とともに解説します。 準備:SeriesからDataFrameを作成する まず、pandasのSeriesを使って基本的なDataFrameを作成しましょう。以下の例では、pandasのSeriesを1列だけのDataFrameに変換し、「Month_No」という列名を付けています。 コード例 import pandas