ホームページ  >  記事  >  データベース  >  mysql がテーブル構造を変更するために使用するステートメントは何ですか?

mysql がテーブル構造を変更するために使用するステートメントは何ですか?

青灯夜游
青灯夜游オリジナル
2021-12-01 16:25:1513985ブラウズ

テーブル構造を変更する Mysql ステートメントは「ALTER TABLE」です。このステートメントは、列の追加または削除、元の列タイプの変更、列またはテーブルの名前変更など、元のテーブルの構造を変更できます。 ; 構文形式は「ALTER TABLE [オプションの変更]」です。

mysql がテーブル構造を変更するために使用するステートメントは何ですか?

このチュートリアルの動作環境: Windows7 システム、mysql8 バージョン、Dell G3 コンピューター。

テーブル構造を変更するMysqlステートメントは「ALTER TABLE」です。

ALTER TABLE ステートメントは、列の追加または削除、インデックスの作成またはキャンセル、元の列タイプの変更、列またはテーブルの名前変更など、元のテーブルの構造を変更できます。等。

MySQL は、ALTER TABLE ステートメントを使用してテーブルを変更します。テーブルを変更するために一般的に使用される操作には、テーブル名の変更、フィールドのデータ型またはフィールド名の変更、フィールドの追加と削除、フィールドの配置の変更、テーブルのストレージ エンジンの変更、テーブルの外部キー制約の削除などが含まれます。

一般的に使用される構文形式は次のとおりです:

ALTER TABLE <表名> [修改选项]

オプションを変更するための構文形式は次のとおりです:

{ ADD COLUMN <列名> <类型>
| CHANGE COLUMN <旧列名> <新列名> <新列类型>
| ALTER COLUMN <列名> { SET DEFAULT <默认值> | DROP DEFAULT }
| MODIFY COLUMN <列名> <类型>
| DROP COLUMN <列名>
| RENAME TO <新表名>
| CHARACTER SET <字符集名>
| COLLATE <校对规则名> }

フィールドの追加

ビジネスの変化に伴い、既存のテーブルに新しいフィールドを追加することが必要になる場合があります。完全なフィールドには、フィールド名、データ型、整合性制約が含まれます。フィールドを追加する構文形式は次のとおりです:

ALTER TABLE <表名> ADD <新字段名> <数据类型> [约束条件] [FIRST|AFTER 已存在的字段名];

新しいフィールド名は追加する必要があるフィールドの名前です。FIRST はオプションのパラメータであり、その機能は新しく追加されたフィールドを次のように設定することです。テーブルの最初のフィールド。AFTER はオプションのパラメーターであり、その機能は、指定された既存のフィールド名の後に新しく追加されたフィールドを追加することです。

【例1】ALTER TABLEを使用してテーブルtb_emp1の構造を変更し、テーブルの1列目にint型フィールドcol1を追加する場合の入力SQL文と実行結果は以下のとおりです。

mysql> ALTER TABLE tb_emp1
    -> ADD COLUMN col1 INT FIRST;
Query OK, 0 rows affected (0.94 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float       | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

ヒント: 「FIRST または AFTER 既存のフィールド名」は、テーブル内の新しいフィールドの位置を指定するために使用されます。SQL ステートメントにこれら 2 つのパラメーターがない場合、新しく追加されたフィールドが設定されます。デフォルトでは to データテーブルの最後の列。

[例2] ALTER TABLEを使用してテーブルtb_emp1の構造を変更し、name列の後にint型フィールドcol2を追加する場合の入力SQL文と実行結果は以下のとおりです。

mysql> ALTER TABLE tb_emp1
    -> ADD COLUMN col2 INT AFTER name;
Query OK, 0 rows affected (0.50 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(25) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

ご覧のとおり、col2 という名前のフィールドがテーブル tb_emp1 に追加されました。その位置は、指定された名前フィールドの後ろにあります。フィールドは正常に追加されました。

フィールドのデータ型の変更

フィールドのデータ型の変更とは、フィールドのデータ型を別のデータ型に変換することです。 MySQL でフィールドのデータ型を変更するための構文規則は次のとおりです。

ALTER TABLE <表名> MODIFY <字段名> <数据类型>

このうち、テーブル名は、データ型を変更する必要があるフィールドが配置されているテーブルの名前を指します。は変更する必要があるフィールドを指し、データ型は変更されたフィールドを指します。新しいデータ型。

[例 3] ALTER TABLE を使用してテーブル tb_emp1 の構造を変更し、name フィールドのデータ型を VARCHAR(22) から VARCHAR(30) に変更します。入力した SQL 文と実行結果は次のとおりです。が続きます。

mysql> ALTER TABLE tb_emp1
    -> MODIFY name VARCHAR(30);
Query OK, 0 rows affected (0.15 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| col2   | int(11)     | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

ステートメントの実行後、テーブル tb_emp1 の name フィールドのデータ型が VARCHAR(30) に変更されたことがわかり、変更は成功しました。

フィールドの削除

フィールドの削除とは、データ テーブルのフィールドをテーブルから削除することです。構文形式は次のとおりです。

ALTER TABLE <表名> DROP <字段名>;

このうち、フィールド名はテーブルから削除する必要があるフィールドの名前を指します。

[例 4] ALTER TABLE を使用してテーブル tb_emp1 の構造を変更し、col2 フィールドを削除する 入力した SQL 文と実行結果は以下のとおりです。

mysql> ALTER TABLE tb_emp1
    -> DROP col2;
Query OK, 0 rows affected (0.53 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col1   | int(11)     | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

フィールド名の変更

MySQL でテーブルのフィールド名を変更するための構文規則は次のとおりです。

ALTER TABLE <表名> CHANGE <旧字段名> <新字段名> <新数据类型>;

Among古いフィールド名は変更前のフィールド名を指します。新しいフィールド名は変更されたフィールド名を指します。新しいデータ型は変更されたデータ型を指します。フィールドのデータ型を変更する必要がない場合は、では、新しいデータ型を元のデータ型と同じに設定できますが、データ型を空にすることはできません。

[例5] ALTER TABLEを使用してテーブルtb_emp1の構造を変更し、col1フィールド名をcol3に変更し、データ型をCHAR(30)に変更します。入力したSQL文と実行結果は次のとおりです。 。

mysql> ALTER TABLE tb_emp1
    -> CHANGE col1 col3 CHAR(30);
Query OK, 0 rows affected (0.76 sec)
Records: 0  Duplicates: 0  Warnings: 0
mysql> DESC tb_emp1;
+--------+-------------+------+-----+---------+-------+
| Field  | Type        | Null | Key | Default | Extra |
+--------+-------------+------+-----+---------+-------+
| col3   | char(30)    | YES  |     | NULL    |       |
| id     | int(11)     | YES  |     | NULL    |       |
| name   | varchar(30) | YES  |     | NULL    |       |
| deptId | int(11)     | YES  |     | NULL    |       |
| salary | float        | YES  |     | NULL    |       |
+--------+-------------+------+-----+---------+-------+
5 rows in set (0.01 sec)

CHANGE も MODIFY と同じ効果を得るためにデータ型を変更することしかできません。その方法は、SQL ステートメント内の「新しいフィールド名」と「古いフィールド名」を同じ名前に設定することです。 「データ型」のみを変更します。

ヒント: さまざまな種類のデータはさまざまな方法と長さでマシンに保存されるため、データ タイプを変更すると、データ テーブル内の既存のデータ レコードに影響を与える可能性があります。したがって、データ テーブルにすでにデータがある場合は、 、データ型を簡単に変更しないでください。

テーブル名の変更

MySQL は ALTER TABLE ステートメントを使用してテーブル名を変更します。構文規則は次のとおりです:

ALTER TABLE <旧表名> RENAME [TO] <新表名>;

このうち、TO はオプションのパラメータであり、使用してもしなくても結果には影響しません。

[例6] ALTER TABLEを使用してデータテーブルの名前をtb_emp1からtb_emp2に変更する 入力したSQL文と実行結果は以下のとおりです。

mysql> ALTER TABLE tb_emp1
    -> RENAME TO tb_emp2;
mysql> SHOW TABLES;
+--------------------+
| Tables_in_test_db  |
+--------------------+
| tb_emp2            |
+--------------------+
1 rows in set (0.00 sec)

提示:用户可以在修改表名称时使用 DESC 命令查看修改后两个表的结构,修改表名并不修改表的结构,因此修改名称后的表和修改名称前的表的结构是相同的。

【相关推荐:mysql视频教程

以上がmysql がテーブル構造を変更するために使用するステートメントは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。