MySQL - 列の追加/削除

こんにちは、データベースの愛好家さんたち!今日は、MySQLの列操作のワクワクする世界に飛び込みます。新しい人でも心配しないでください;私がクラスのside by sideでガイドします。このチュートリアルの終わりには、プロのように列を追加や削除ができるようになります!

MySQL - Add/Delete Columns

MySQLテーブルに列を追加する

まずは基本から始めましょう。既存のテーブルに列を追加するのは、スプレッドシートに新しいカテゴリを追加するのと同じです。データベースが成長し進化するにしたがって、よく遭遇する一般的なタスクです。

以下に列を追加する一般的な構文を示します:

ALTER TABLE テーブル名
ADD 列名 データ型;

これを分解すると:

  • ALTER TABLE は、MySQLに既存のテーブルを変更したいと指示します
  • テーブル名 は、変更するテーブルの名前です
  • ADD は、何かを追加することを指定します
  • 列名 は、新しい列を名付けるものです
  • データ型 は、列が保持するデータの種類を定義します

実際の例を示します。students というテーブルがあって、メールアドレスの列を追加したいとします:

ALTER TABLE students
ADD email VARCHAR(100);

この場合、email 列を100文字まで保持できるように追加します。このコマンドを実行した後、テーブルのすべての学生には新しい email フィールドができるが、既存のレコードでは空白(NULL)になります。

デフォルト値を持つ列を追加する

新しい列にデフォルト値を設定したい場合もあります。以下のようにします:

ALTER TABLE students
ADD graduation_year INT DEFAULT 2023;

これは graduation_year 列を追加し、すべての既存および新しいレコードに対して2023をデフォルト値として設定します。

複数の列を追加する

では、複数の列を追加したい場合どうでしょうか?一つずつ追加するよりも効率的に一つのコマンドで行うことができます。

以下の構文を使用します:

ALTER TABLE テーブル名
ADD 列1 データ型,
ADD 列2 データ型,
ADD 列3 データ型;

students テーブルに複数の列を追加してみましょう:

ALTER TABLE students
ADD phone VARCHAR(15),
ADD address VARCHAR(200),
ADD enrollment_date DATE;

このコマンドで phoneaddressenrollment_date の3つの新しい列を一気に追加します。まるで学生テーブルに成長スパートを与えるようなものです!

MySQLテーブルから列を削除する

列を追加するのと同様に、削除することもできます。構文は非常に似ています:

ALTER TABLE テーブル名
DROP COLUMN 列名;

例えば、address 列が也不要になったとします:

ALTER TABLE students
DROP COLUMN address;

パフ!address 列は消えます。しかし、注意してください!この操作は永久的で、その列のすべてのデータが削除されます。列を削除する前に必ず二度確認してください。

複数の列を削除する

複数の列を一つのコマンドで削除することもできます:

ALTER TABLE students
DROP COLUMN phone,
DROP COLUMN enrollment_date;

これで phone 列と enrollment_date 列を一度に削除します。

クライアントプログラムを使用してテーブルの列を追加/削除する

これまで我們は(raw) SQLコマンドを見てきましたが、多くの人々はMySQLと対話するためのクライアントプログラムを使用しています。これらのプログラムは、これらの操作のためのグラフィカルインターフェースを提供しています。

例えば、phpMyAdminでは:

  1. データベースとテーブルを選択します
  2. 「構造」タブをクリックします
  3. 列を追加するには、下部にスクロールして「列を追加」フォームを使用します
  4. 列を削除するには、列名の横の「Drop」リンクをクリックします

覚えておいてください、raw SQLを使用するかクライアントプログラムを使用するか、基本的な操作は同じです。

方法のまとめ

ここで説明した方法の簡単な参照表を示します:

操作 構文
単一列の追加 ALTER TABLE テーブル名 ADD 列名 データ型; ALTER TABLE students ADD email VARCHAR(100);
デフォルト値を持つ列の追加 ALTER TABLE テーブル名 ADD 列名 データ型 DEFAULT 値; ALTER TABLE students ADD graduation_year INT DEFAULT 2023;
複数列の追加 ALTER TABLE テーブル名 ADD 列1 データ型, ADD 列2 データ型; ALTER TABLE students ADD phone VARCHAR(15), ADD address VARCHAR(200);
単一列の削除 ALTER TABLE テーブル名 DROP COLUMN 列名; ALTER TABLE students DROP COLUMN address;
複数列の削除 ALTER TABLE テーブル名 DROP COLUMN 列1, DROP COLUMN 列2; ALTER TABLE students DROP COLUMN phone, DROP COLUMN enrollment_date;

以上です!あなたは今、データベース管理者としてMySQLで列を追加および削除するスキルを身につけました。力には責任が伴います。データベース構造を変更する際は慎重に考え、重要な変更を行う前にデータをバックアップしてください。

このまとめで、私の心に浮かんだのは、間違った列を削除してプロジェクトのデータを失った学生の話です。その学生にはならないように!コマンドとテーブル名を入力する前に必ず二度確認してください。

これらのコマンドを練習し続けると、すぐに第二の自然になるでしょう。誰 knows? SQLで夢を見始めるかもしれません!次回まで、ハッピーコーディング!

Credits: Image by storyset