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

MySQLのテーブルから列(カラム)を削除する方法をわかりやすく解説

MySQLで列を削除する基本

MySQLでは、ALTER TABLE文を使用することで、既存のテーブルから不要な列(カラム)を簡単に削除できます。テーブルを作成した後に「この列はもう必要ない」という場面はよくあります。そのような場合は、ALTER TABLE文とDROP COLUMN句を組み合わせることで対応可能です。

本記事では、実際にサンプルテーブルを作成し、そこから列を削除する手順を順番に見ていきましょう。

サンプルテーブルの作成

まず、動作確認用として4つの列を持つテーブルを作成します。

mysql> create table DeleteColumnNameDemo
   -> (
   -> Id int,
   -> Name varchar(200),
   -> Age int,
   -> Address varchar(200)
   -> );
Query OK, 0 rows affected (0.59 sec)

上記のコマンドにより、「Id」「Name」「Age」「Address」の4つの列を持つテーブルが作成されました。

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

作成したテーブルの構造は、DESCコマンドで確認できます。

mysql> desc DeleteColumnNameDemo;

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

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

この時点では、テーブルには4つの列が存在しています。

列を削除するための構文

列を削除する際の基本的な構文は以下のとおりです。複数の列を一度に削除することもできます。

alter table テーブル名
drop column 列名1,
drop column 列名2,
.
.
.
drop column 列名N;

実際に列を削除してみる

それでは、「DeleteColumnNameDemo」テーブルから「Age」列と「Address」列を削除してみましょう。先ほどの構文に従い、次のようにクエリを実行します。

mysql> ALTER table DeleteColumnNameDemo
   -> drop column Age,
   -> drop column Address;
Query OK, 0 rows affected (3.11 sec)
Records: 0  Duplicates: 0  Warnings: 0

これで「Age」と「Address」の2つの列がテーブルから削除されました。

削除結果の確認

本当に列が削除されたかどうか、再度DESCコマンドで確認してみます。

mysql> desc DeleteColumnNameDemo;

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

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

出力結果を見ると、以前存在していた「Age」列と「Address」列が表示されていません。これは、両方の列が正しく削除されたことを示しています。

まとめ

MySQLでテーブルから列を削除するには、ALTER TABLE文のDROP COLUMN句を使用します。複数の列をカンマ区切りで指定すれば、1回のクエリでまとめて削除することも可能です。削除後はDESCコマンドでテーブル構造を確認すると、変更が反映されているかどうかを簡単にチェックできます。

なお、DROP COLUMNで削除した列とそのデータは元に戻せないため、実行前には必ずバックアップを取得しておくことをおすすめします。

  1. MySQLで重複レコードを含むテーブルから特定の値を1件だけ削除する方法

    MySQLでテーブル内のレコードを削除するにはDELETE文を使用します。しかし、同じ値の重複レコードが複数存在する場合に、そのうち1件だけを削除したいケースがあります。そんなときは、LIMIT句を組み合わせることで、削除対象の件数を制限できます。基本構文delete from yourTableName where yourColumnName=yourValue limit 1;この構文では、WHERE句で削除対象の条件を指定し、LIMIT 1によって該当するレコードのうち最初の1件のみを削除します。実際にテーブルを作成して確認してみようまず、サンプル用のテーブルを作成します。mysql&

  2. MySQLで予約語「from」を列名として使用する方法

    MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo