MYSQL – 変更、削除、名前変更、変更
ALTERコマンドとは何ですか?
ことわざにあるように 変化は唯一の定数です
時間の経過とともに、ビジネス要件も変化します。 ビジネス要件の変化に応じて、データベースの設計も変更する必要があります。
MySQL 提供する 変更する 私たちを助けてくれる機能 既存のデータベース設計への変更を組み込む.
alter コマンドは、データベースのライフサイクル中に変更が必要になる可能性がある既存のデータベース、テーブル、ビュー、またはその他のデータベース オブジェクトを変更するために使用されます。
データベースの設計が完了し、実装されたと仮定しましょう。 当社のデータベース ユーザーはそれを使用していますが、重要な情報の一部が設計段階で省略されていたことに気づきました。 彼らは既存のデータを失いたくはなく、新しい情報を取り込みたいだけです。 このような状況では、alter コマンドが便利です。 alter コマンドを使用すると、フィールドのデータ型を文字列から数値に変更したり、フィールド名を新しい名前に変更したり、テーブルに新しい列を追加したりすることができます。
変更 - 構文
既存のテーブルに列を追加するために使用される基本的な構文を以下に示します。
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
こちら
- 「ALTER TABLE `テーブル名`」 を伝えるコマンドです MySQL サーバーにアクセスして、「table_name」という名前のテーブルを変更します。
- 「ADD COLUMN `列名` `データ型`」 を伝えるコマンドです MySQL サーバーに、データ型 `data_type' を持つ `column_name` という名前の新しい列を追加します。
Myflix がオンライン請求と支払いを導入したと仮定しましょう。そのために、メンバー テーブルにクレジットカード番号のフィールドを追加するように求められました。これを行うには、ALTER コマンドを使用します。修正を加える前に、まずメンバー テーブルの構造を確認しましょう。以下に示すスクリプトは、これを実行するのに役立ちます。
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
以下に示すスクリプトを使用して、メンバー テーブルに新しいフィールドを追加できます。
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
上記のスクリプトを実行すると、 MySQL Myflixdb に対して、VARCHAR データ型で、メンバー テーブルにクレジットカード番号という新しい列を追加します。show columns スクリプトを実行すると、次の結果が得られます。
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
返された結果からわかるように、クレジット カード番号がメンバー テーブルに追加されています。 メンバーのデータに含まれるデータは、新しい列の追加による影響を受けません。
ドロップコマンドとは何ですか?
DROP コマンドは次の目的で使用されます。
- データベースを削除する MySQL
- データベースからオブジェクト ( Table 、 Column など) を削除します。
次に、DROP コマンドを使用する実際の例を見てみましょう。
Alter コマンドに関する前の例では、クレジット カード番号という名前の列を members テーブルに追加しました。
オンライン請求機能には時間がかかるので、クレジットカードの列を削除したいとします。
次のスクリプトを使用できます
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
上記のスクリプトを実行すると、列 Credit_card_number が members テーブルから削除されます。
次に、members テーブルの列を見て、列が削除されたかどうかを確認してみましょう。
SHOW COLUMNS FROM `members`;
上記のスクリプトを実行すると、 MySQL myflixdb に対する workbench の結果は次のようになります。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
クレジット カード番号がフィールド リストから削除されていることに注目してください。
ドロップテーブル
データベースからテーブルを DROP する構文は次のとおりです。
DROP TABLE `sample_table`;
例を見てみましょう
DROP TABLE `categories_archive`;
上記のスクリプトを実行すると、データベースから `categories_archive` という名前のテーブルが削除されます。
名前変更コマンドとは何ですか?
rename コマンドは次の目的で使用されます。 既存のデータベースオブジェクト(テーブル、列など)の名前を新しい名前に変更します。.
テーブルの名前を変更しても、テーブル内に含まれるデータは失われません。
構文:-
名前変更コマンドの基本構文は次のとおりです。
RENAME TABLE `current_table_name` TO `new_table_name`;
movierentals テーブルの名前を movie_rentals に変更したいとします。これを実現するには、以下に示すスクリプトを使用します。
RENAME TABLE `movierentals` TO `movie_rentals`;
上記のスクリプトを実行すると、テーブル `movierentals` の名前が `movie_rentals` に変更されます。
ここで、movie_rentals テーブルの名前を元の名前に戻します。
RENAME TABLE `movie_rentals` TO `movierentals`;
キーワードを変更する
キーワードを変更すると、次のことが可能になります
- 列名の変更
- 列のデータ型を変更する
- 列の制約を変更する
例を見てみましょう。 メンバー テーブルのフルネーム フィールドは varchar データ型で、幅は 150 です。
SHOW COLUMNS FROM `members`;
上記のスクリプトを実行すると、 MySQL myflixdb に対する workbench の結果は次のようになります。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
したいとします。
- フィールド名を「full_names」から「fullname」に変更します。
- 幅250のcharデータ型に変更します。
- NOT NULL制約を追加する
これは、次のようにchangeコマンドを使用して実現できます。
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
上記のスクリプトを実行すると、 MySQL myflixdb に対して workbench を実行し、上記の列の表示スクリプトを実行すると、次の結果が得られます。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
キーワードの変更
MODIFY キーワードを使用すると、次のことが可能になります。
- 列のデータ型を変更する
- 列制約の変更
上記の変更の例では、フィールド名とその他の詳細を変更する必要がありました。 CHANGE ステートメントからフィールド名を省略すると、エラーが生成されます。 フィールド名には影響せずに、フィールドのデータ型と制約のみを変更したいとします。MODIFY キーワードを使用すると、これを実現できます。
以下のスクリプトは、「フルネーム」フィールドの幅を 250 から 50 に変更します。
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
上記のスクリプトを実行すると、 MySQL myflixdb に対して workbench を実行し、上記の列の表示スクリプトを実行すると、以下に示す結果が得られます。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
キーワードの後
テーブル内の特定の位置に新しい列を追加するとします。
alter コマンドを AFTER キーワードと一緒に使用できます。
以下のスクリプトは、members テーブルの生年月日の直後に「date_of_registration」を追加します。
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
上記のスクリプトを実行すると、 MySQL myflixdb に対して workbench を実行し、上記の列の表示スクリプトを実行すると、以下に示す結果が得られます。
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
まとめ
- alter コマンドは、データベースまたはデータベースに含まれるオブジェクトを変更する場合に使用します。
- drop コマンドは、データベースを削除するために使用されます。 MySQL またはデータベース内のオブジェクト。
- rename コマンドは、テーブルの名前を新しいテーブル名に変更するために使用します。
- Change キーワードを使用すると、列名、データ型、制約を変更できます。
- Modify キーワードを使用すると、列のデータ型と制約を変更できます。
- After キーワードは、テーブル内の列の位置を指定するために使用されます。