はじめに
この記事では、テーブル内のカラムを削除する 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)
name
と created_at
カラムが正常に削除されたことが確認できました。
まとめ
本記事では、テーブル内のカラムを削除する ALTER TABLE
の基本的なSQL文 を紹介しました。
SQLを学ぶ上で、ALTER TABLE
の使い方を正しく理解し、適切に使い分けることが重要です。
今後も、基本的なSQLの知識をしっかりと定着 させていきたいと思います。