ホームページ  >  記事  >  データベース  >  mysqlにカラム(フィールド)を追加する方法

mysqlにカラム(フィールド)を追加する方法

青灯夜游
青灯夜游オリジナル
2021-12-03 18:21:0952389ブラウズ

mysql では、「ALTER TABLE」ステートメントと ADD キーワードを使用して列 (フィールド) を追加できます。構文は「ALTER TABLE テーブル名 ADD 新しいフィールド名 データ型 [制約];」です。 kind 構文形式では、データ テーブルの最後に列 (フィールド) が追加されます。

mysqlにカラム(フィールド)を追加する方法

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

MySQL データ テーブルは行と列で構成されており、通常、テーブルの「列」はフィールド (Field) と呼ばれ、テーブルの「行」はレコード (Record) と呼ばれます。ビジネスの変化に応じて、既存のテーブルに新しいフィールドを追加することが必要になる場合があります。

mysql では、「ALTER TABLE」ステートメントと ADD キーワードを使用して列 (フィールド) を追加できます。

文法:

ALTER TABLE 表名 ADD 新字段名 数据类型[约束条件];

構文形式は次のように説明されます:

  • テーブル名:データ テーブルの名前;

  • 新しいフィールド名: 追加するフィールドの名前です。

  • データ型 : 追加するフィールドのデータを格納できるデータ型;

  • [制約]: オプションであり、制約するフィールドを追加するために使用されます。

この構文形式では、デフォルトでテーブルの最後の位置 (最後の列の後) に新しいフィールドが追加されます。

例:

学生データ テーブルがあります。DESC を使用して学生テーブルの構造を表示します。

mysql> DESC student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(4)      | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
3 rows in set (0.01 sec)

ALTER TABLE ステートメントを使用して、INT 型フィールド age を追加します。 Student テーブルの構造を見てください

mysql> ALTER TABLE student ADD age INT(4);
Query OK, 0 rows affected (0.16 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| id    | int(4)      | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
| age   | int(4)      | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
4 rows in set (0.00 sec)

年齢フィールドが Student テーブルに追加され、そのフィールドがテーブルの最後の位置にあることがわかります。フィールドは正常に追加されました。

それでは、先頭または途中にフィールドを追加したい場合はどうすればよいでしょうか?

  • 先頭 (最初の列の前) に新しいフィールドを追加する場合は、FIRST キーワード##を使用する必要があります。

  • #中間に新しいフィールドを追加する場合は、

    AFTER キーワードを使用する必要があります

  • ##構文形式は次のとおりです。次のように:
ALTER TABLE 表名 ADD 新字段名 数据类型 [约束条件] FIRST;

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

例:

mysql> ALTER TABLE student ADD stuId INT(4) FIRST;
Query OK, 0 rows affected (0.14 sec)
Records: 0  Duplicates: 0  Warnings: 0

mysql> DESC student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| stuId | int(4)      | YES  |     | NULL    |       |
| id    | int(4)      | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
| age   | int(4)      | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)

A stuId フィールドが Student テーブルに追加され、フィールドはテーブルの最初の位置に配置されます。

mysql> ALTER TABLE student ADD stuno INT(11) AFTER name;
Query OK, 0 rows affected (0.13 sec)
Records: 0  Duplicates: 0  Warnings: 0
 
mysql> DESC student;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| stuId | int(4)      | YES  |     | NULL    |       |
| id    | int(4)      | YES  |     | NULL    |       |
| name  | varchar(20) | YES  |     | NULL    |       |
| stuno | int(11)     | YES  |     | NULL    |       |
| sex   | char(1)     | YES  |     | NULL    |       |
| age   | int(4)      | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+
6 rows in set (0.00 sec)

A stuId フィールドStudent テーブルに追加され、そのフィールドは name フィールドにあります。

[関連する推奨事項:

mysql ビデオ チュートリアル

] の後ろの位置です。

以上がmysqlにカラム(フィールド)を追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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