0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人的な備忘録:ALTER TABLE を使用したテーブル内のカラム削除について、記事としてアウトプットしてみた

Last updated at Posted at 2025-01-30

はじめに

この記事では、テーブル内のカラムを削除する ALTER TABLE について、SQL文を検証しながら解説します。

これからSQLの基礎を学びたい方や、簡単に環境を構築して気軽に試したい方に向けた内容です。

また、本記事は個人的な備忘録としてまとめたものです。その点をご理解いただければ幸いです。

書こうと思ったきっかけ

私は、テーブル設計やSQLについて、技術書を読んで体系的に学んだわけではありません。

とにかく手を動かし、試行錯誤しながら基礎を身につけてきました。

この経験を踏まえ、今回は SQLの基本を整理し、体系的に振り返りながら 記事としてアウトプットしていきます。

事前準備

手軽にSQL文を試す方法として、今回は Docker Hub を活用し、SQLコマンドの技術検証を行います。

📌 詳しい手順については、過去の記事にまとめていますので、こちらを参考にしてください。

また、本記事では 事前にデータベースが作成されていることを前提 に進めていきます。まだデータベースを作成していない方は、以下の記事を参考にしてください。

実際にやってみた

テーブル内のカラムを削除する方法

カラムを削除する前に、現在のテーブル構造を確認することが安全 です。

DESC users;

実行結果

mysql> DESC users;
+------------+--------------+------+-----+-------------------+-------------------+
| Field      | Type         | Null | Key | Default           | Extra             |
+------------+--------------+------+-----+-------------------+-------------------+
| id         | int          | NO   | PRI | NULL              | auto_increment    |
| name       | varchar(100) | NO   |     | NULL              |                   |
| email      | varchar(255) | NO   | UNI | NULL              |                   |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+--------------+------+-----+-------------------+-------------------+
4 rows in set (0.02 sec)

カラムを削除するSQL文

テーブル内の 特定のカラム(列) を削除するには、ALTER TABLE コマンドを使用します。

ALTER TABLE users DROP COLUMN email;

解説

  • ALTER TABLE users は、users テーブルの構造を変更するSQLコマンド。
  • DROP COLUMN email は、email カラムを削除。

実行結果

mysql> ALTER TABLE users DROP COLUMN email;
Query OK, 0 rows affected (0.05 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC users;
+------------+--------------+------+-----+-------------------+-------------------+
| Field      | Type         | Null | Key | Default           | Extra             |
+------------+--------------+------+-----+-------------------+-------------------+
| id         | int          | NO   | PRI | NULL              | auto_increment    |
| name       | varchar(100) | NO   |     | NULL              |                   |
| created_at | timestamp    | YES  |     | CURRENT_TIMESTAMP | DEFAULT_GENERATED |
+------------+--------------+------+-----+-------------------+-------------------+
3 rows in set (0.01 sec)

複数のカラムを削除する場合

ALTER TABLE users 
DROP COLUMN name, 
DROP COLUMN created_at;

DROP COLUMN をカンマ区切りで指定することで、複数のカラムを一度に削除 できます。

実行結果

mysql> DESC users;
+-------+------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra          |
+-------+------+------+-----+---------+----------------+
| id    | int  | NO   | PRI | NULL    | auto_increment |
+-------+------+------+-----+---------+----------------+
1 row in set (0.00 sec)

namecreated_at カラムが正常に削除されたことが確認できました。

まとめ

本記事では、テーブル内のカラムを削除する ALTER TABLE の基本的なSQL文 を紹介しました。

SQLを学ぶ上で、ALTER TABLE の使い方を正しく理解し、適切に使い分けることが重要です。

今後も、基本的なSQLの知識をしっかりと定着 させていきたいと思います。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?