Sql-alter-command

提供:Dev Guides
移動先:案内検索

SQL-ALTER TABLEコマンド

SQL ALTER TABLE コマンドを使用して、既存のテーブルの列を追加、削除、または変更します。 また、ALTER TABLEコマンドを使用して、既存のテーブルにさまざまな制約を追加および削除する必要があります。

構文

既存のテーブルに*新しい列*を追加するALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name ADD column_name datatype;

既存のテーブルの DROP COLUMN に対するALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name DROP COLUMN column_name;

テーブルの列の DATA TYPE を変更するALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name MODIFY COLUMN column_name datatype;

テーブルの列に NOT NULL 制約を追加するALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

ALTER TABLEを ADD UNIQUE CONSTRAINT をテーブルに追加する基本的な構文は次のとおりです。

ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);

テーブルに ADD CHECK CONSTRAINT を追加するALTER TABLEコマンドの基本構文は次のとおりです。

ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

テーブルにPRIMARY KEY 制約を ADDするALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

テーブルから DROP CONSTRAINT へのALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name
DROP CONSTRAINT MyUniqueConstraint;

MySQLを使用している場合、コードは次のとおりです-

ALTER TABLE table_name
DROP INDEX MyUniqueConstraint;

テーブルから DROP PRIMARY KEY 制約に対するALTER TABLEコマンドの基本的な構文は次のとおりです。

ALTER TABLE table_name
DROP CONSTRAINT MyPrimaryKey;

MySQLを使用している場合、コードは次のとおりです-

ALTER TABLE table_name
DROP PRIMARY KEY;

次のレコードを持つCUSTOMERS表を考慮してください-

+----+----------+-----+-----------+----------+
| ID | NAME     | AGE | ADDRESS   | SALARY   |
+----+----------+-----+-----------+----------+
|  1 | Ramesh   |  32 | Ahmedabad |  2000.00 |
|  2 | Khilan   |  25 | Delhi     |  1500.00 |
|  3 | kaushik  |  23 | Kota      |  2000.00 |
|  4 | Chaitali |  25 | Mumbai    |  6500.00 |
|  5 | Hardik   |  27 | Bhopal    |  8500.00 |
|  6 | Komal    |  22 | MP        |  4500.00 |
|  7 | Muffy    |  24 | Indore    | 10000.00 |
+----+----------+-----+-----------+----------+

以下は、既存のテーブルに*新しい列*を追加する例です-

ALTER TABLE CUSTOMERS ADD SEX char(1);

これで、CUSTOMERSテーブルが変更され、SELECTステートメントから次が出力されます。

+----+---------+-----+-----------+----------+------+
| ID | NAME    | AGE | ADDRESS   | SALARY   | SEX  |
+----+---------+-----+-----------+----------+------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 | NULL |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 | NULL |
|  3 | kaushik |  23 | Kota      |  2000.00 | NULL |
|  4 | kaushik |  25 | Mumbai    |  6500.00 | NULL |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 | NULL |
|  6 | Komal   |  22 | MP        |  4500.00 | NULL |
|  7 | Muffy   |  24 | Indore    | 10000.00 | NULL |
+----+---------+-----+-----------+----------+------+

以下は、既存のテーブルから性別列を削除する例です。

ALTER TABLE CUSTOMERS DROP SEX;

これで、CUSTOMERSテーブルが変更され、SELECTステートメントからの出力が次のようになります。

+----+---------+-----+-----------+----------+
| ID | NAME    | AGE | ADDRESS   | SALARY   |
+----+---------+-----+-----------+----------+
|  1 | Ramesh  |  32 | Ahmedabad |  2000.00 |
|  2 | Ramesh  |  25 | Delhi     |  1500.00 |
|  3 | kaushik |  23 | Kota      |  2000.00 |
|  4 | kaushik |  25 | Mumbai    |  6500.00 |
|  5 | Hardik  |  27 | Bhopal    |  8500.00 |
|  6 | Komal   |  22 | MP        |  4500.00 |
|  7 | Muffy   |  24 | Indore    | 10000.00 |
+----+---------+-----+-----------+----------+