SQL ALTER TABLE:ガイド
SQL ALTER TABLEステートメントは、テーブルの列を追加、変更、または削除します。このステートメントを使用すると、テーブルにレコードが格納されている場合でも、テーブルの作成後にテーブルを変更できます。
SQLテーブルに変更を加える必要があると判断する場合があります。たとえば、列の名前を変更したり、テーブルに新しい列を追加したりできます。これらの変更はすべて、SQLALTERTABLEコマンドで可能です。
SQL ALTER TABLE
ALTER TABLEコマンドを使用すると、次の方法で既存のテーブルを変更できます。
- 列を追加します。
- 制約を追加します。
- 列を削除します。
- データ型の変更。
- 列の名前を変更します。
このチュートリアルでは、例を参照して、SQLALTERTABLEコマンドを使用してテーブルを変更する方法について説明します。
テーブルの設定
このチュートリアルでは、ビジネスのデータベーステーブルを変更します。このデータベースには、ビジネスで働く各従業員に関する情報が格納されています。私たちのテーブルは「従業員」と呼ばれます 」であり、次の値が含まれています:
テーブルを作成した後、その構造を変更したいことに気づきました。これは、SQLALTERTABLEコマンドを使用して行うことができます。
テーブルの作成方法については、SQLCREATETABLEガイドをご覧ください。
SQL ALTER TABLE:テーブルに列を追加する
ALTER TABLEコマンドを使用して、SQLテーブルに列を追加できます。既存のテーブルに新しい列を追加するための構文は次のとおりです。
参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。
平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。
ALTER TABLE table_name ADD column_name data_type constraints;
すべての従業員の電話番号を格納する「employees」テーブルに新しい列を追加するとします。この列は「phone_number」と呼ばれる必要があります。列はVARCHAR()を使用する必要があります 最大長の文字列を格納できるデータ型であり、制約はありません。
この列は、次のステートメントを使用して作成できます。
ALTER TABLE employees ADD phone_number VARCHAR(60);を追加します
このコマンドは、「従業員」データベースのテーブルに新しい列を追加します。ここで、データベースの構造を見ると、「phone_number」という新しい列が1つあります。
フィールド | タイプ | デフォルト |
名前 | varchar(60) | NULL |
タイトル | varchar(60) | NULL |
部門 | varchar(60) | NULL |
employee_number | varchar(60) | NULL |
phone_number | varchar(60) | |
SQLでデータベースに列を追加する方法について詳しく知りたい場合は、SQLの列追加ガイドをご覧ください。
SQL ALTER TABLE:テーブルに制約を追加する
前のセクションでは、テーブルにphone_numberという新しい列を追加しました。しかし、テーブルに制約を追加するのを忘れました。
この例では、これは、データベースに複数の従業員の同じ電話番号が保存される可能性があることを意味しますが、これは実用的ではありません。
これを修正するには、テーブルの「phone_number」列にUNIQUE制約を追加します。 SQLの列に制約を追加するための構文は次のとおりです。
ALTER TABLE table_name ADD UNIQUE (column_name);
このコマンドは、「phone_number」列に制約を追加します:
ALTER TABLE employees ADD UNIQUE (phone_number);を追加します
別の制約を追加したい場合は、「UNIQUE」を別のSQL制約に置き換えることで追加できます。
SQL ALTER TABLE:テーブルから列を削除する
また、ALTER TABLEコマンドを使用して、テーブルから列を削除することもできます。この操作を実行するための構文は次のとおりです。
ALTER TABLE table_name DROP COLUMN column_name;
テーブルから「department」列を削除するとします。後で、従業員の部門を別のテーブルにリンクする新しい列を作成する予定です。次のコマンドを使用して、この列を削除できます。
ALTER TABLE employees DROP COLUMN department;
このコマンドを実行すると、テーブルの「department」列が削除されます。したがって、テーブルの構造は次のようになります。
フィールド | タイプ | デフォルト |
名前 | varchar(60) | NULL |
タイトル | varchar(60) | NULL |
employee_number | varchar(60) | NULL |
phone_number | varchar(60) | |
SQL ALTER TABLE:列のデータ型の変更
ALTER TABLEコマンドを使用して、列のデータ型を変更できます。列のデータ型を変更するための構文は次のとおりです。
ALTER TABLE table_name ALTER COLUMN column_name new_data_type;
このコマンドには、MySQLとOracle(10Gより前)およびOracle10G以降の2つの代替バージョンがあります。これらは次のとおりです。
ALTER TABLE table_name MODIFY COLUMN column_name new_data_type; (MySQL, Oracle pre-10G) ALTER TABLE table_name MODIFY column_name new_data_type; (Oracle 10G+ and later)
最初の「employees」テーブルを作成したときに、「employee_number」フィールドを VARCHAR()に割り当てるのを間違えました。 数字の代わりに。この間違いを修正するには、次のコマンドを使用できます。
ALTER TABLE employees ALTER COLUMN employee_number INT;
このコマンドは、「employee_number」列のタイプをINTに変更します。したがって、データベースの新しい構造は次のとおりです。
フィールド | タイプ | デフォルト |
名前 | varchar(60) | NULL |
タイトル | varchar(60) | NULL |
employee_number | varchar(60) | NULL |
phone_number | int | |
SQL ALTER TABLE:テーブルの名前を変更します
ALTER TABLEコマンドを使用すると、SQLテーブルの名前を変更することもできます。テーブルの名前を変更するための構文は次のとおりです。
ALTER TABLE current_table RENAME new_table;
テーブルの名前を「employees」から「old_employees_2019」に変更するとします。次のコマンドを使用してこれを行うことができます:
ALTER TABLE employees RENAME old_employees_2019;
MySQLのALTERTABLEコマンドを使用してテーブルの名前を変更することはできません。 MySQLでは、ALTER TABLEを使用する代わりに、RENAMEtableコマンドを使用できます。
次のコマンドを使用して、MySQLのテーブルの名前を変更します。
RENAME TABLE employees TO old_employees_2019;
結論
SQL ALTER TABLEコマンドを使用すると、SQLのテーブルの構造を変更できます。データベースにテーブルを追加したり、データベースからテーブルを削除したり、データベース内のテーブルを変更したりできます。さらに、UNIQUEやNOTNULLなどのテーブルに関連付けられた制約を変更できます。
SQLについてもっと知りたいですか? SQLの学習方法ガイドをお読みください。 SQLを学ぶためのヒントを見つけることができます。また、知識の構築に役立つ専門家が厳選した学習リソースのリストもあります。
-
SQLでALTERTABLEスクリプトを生成する方法
SQL 2005では、データベースに新しい列を追加したり、フィールドタイプを変更したりする場合など、ALTERTABLEスクリプトを生成する必要がある状況に遭遇する可能性があります。 CREATE、SELECT、UPDATEなどの特定のSQL関数のスクリプトを生成する場合は、通常、SQL Management Studioでテーブルを右クリックし、[スクリプトテーブル]を選択します。 次に、スクリプトを作成する関数。 ただし、 ALTER To スクリプトテーブルではオプションが無効になっています メニューオプション!では、スクリプトを生成したい場合、どのようにそれを実行します
-
MySQLでテーブル列をVARCHARからNULLに変更します
変更するには、次の構文のようにCHANGEを指定してALTERコマンドを使用します- alter table yourTableName change yourColumnName yourColumnName datatype NULL DEFAULT NULL; まずテーブルを作成しましょう- mysql> create table DemoTable1356 -> ( -> FirstName varchar(30) -> ); Query OK, 0 rows affected