[Ubah suai pilihan]"."/> [Ubah suai pilihan]".">

Rumah  >  Artikel  >  pangkalan data  >  Apakah pernyataan yang mysql gunakan untuk mengubah suai struktur jadual?

Apakah pernyataan yang mysql gunakan untuk mengubah suai struktur jadual?

青灯夜游
青灯夜游asal
2021-12-01 16:25:1513967semak imbas

Pernyataan MySQL untuk mengubah suai struktur jadual ialah "ALTER JADUAL". ; format sintaks ialah "ALTER JADUAL 5189509cd779c6f738e8935611a07b70 [ubah suai pilihan]".

Apakah pernyataan yang mysql gunakan untuk mengubah suai struktur jadual?

Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.

Pernyataan MySQL untuk mengubah suai struktur jadual ialah "ALTER TABLE". Pernyataan

ALTER TABLE boleh menukar struktur jadual asal, seperti menambah atau memadam lajur, mencipta atau membatalkan indeks, menukar jenis lajur asal, menamakan semula lajur atau jadual, dsb.

MySQL menggunakan pernyataan ALTER TABLE untuk mengubah suai jadual. Operasi yang biasa digunakan untuk mengubah suai jadual termasuk mengubah suai nama jadual, mengubah suai jenis data medan atau nama medan, menambah dan memadam medan, mengubah suai susunan medan, menukar enjin storan jadual, memadamkan kekangan kunci asing jadual, dsb.

Format sintaks yang biasa digunakan adalah seperti berikut:

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

Format sintaks untuk mengubah suai pilihan adalah seperti berikut:

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

Tambah medan

Apabila perniagaan berubah, medan baharu mungkin perlu ditambahkan pada jadual sedia ada Medan lengkap termasuk nama medan, jenis data dan kekangan integriti. Format sintaks untuk menambah medan adalah seperti berikut:

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

Nama medan baharu ialah nama medan yang perlu ditambah FIRST ialah parameter pilihan dan fungsinya adalah untuk menetapkan yang baharu medan tambah sebagai medan pertama jadual SELEPAS ialah parameter pilihan, dan fungsinya adalah untuk menambah medan yang baru ditambah pada penghujung nama medan sedia ada yang ditentukan.

[Contoh 1] Gunakan ALTER TABLE untuk mengubah suai struktur jadual tb_emp1 dan tambah medan jenis int col1 pada lajur pertama jadual Input pernyataan SQL dan keputusan berjalan adalah seperti berikut.

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)

Petua: "PERTAMA atau SELEPAS nama medan sedia ada" digunakan untuk menentukan kedudukan medan baharu dalam jadual Jika tiada dua parameter ini dalam pernyataan SQL, medan yang baru ditambah akan digunakan secara lalai. Tetapkan ke lajur terakhir jadual data.

[Contoh 2] Gunakan ALTER TABLE untuk mengubah suai struktur jadual tb_emp1, dan tambah medan jenis int col2 selepas lajur nama Pernyataan SQL input dan hasil yang dijalankan adalah seperti berikut.

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)

Seperti yang anda lihat, medan bernama col2 telah ditambahkan pada jadual tb_emp1 Kedudukannya berada di belakang medan nama yang ditentukan.

Ubah suai jenis data medan

Mengubah suai jenis data medan adalah untuk menukar jenis data medan kepada jenis data lain. Peraturan sintaks untuk mengubah suai jenis data medan dalam MySQL adalah seperti berikut:

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

Antaranya, nama jadual merujuk kepada nama jadual di mana terletaknya medan yang jenis datanya akan diubah suai, nama medan merujuk kepada medan yang perlu diubah suai, dan jenis data merujuk kepada medan yang diubah suai Jenis data baharu untuk medan tersebut.

[Contoh 3] Gunakan ALTER TABLE untuk mengubah suai struktur jadual tb_emp1, dan tukar jenis data medan nama daripada VARCHAR(22) kepada VARCHAR(30). mengikuti.

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)

Selepas penyataan dilaksanakan, didapati jenis data medan nama dalam jadual tb_emp1 telah diubah suai kepada VARCHAR(30), dan pengubahsuaian berjaya.

Padamkan medan

Memadam medan adalah untuk mengalih keluar medan dalam jadual data daripada jadual Format sintaks adalah seperti berikut:

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

Antaranya, nama medan merujuk kepada nama medan yang perlu dipadamkan daripada jadual.

[Contoh 4] Gunakan ALTER TABLE untuk mengubah suai struktur jadual tb_emp1 dan memadam medan col2 Pernyataan SQL input dan keputusan berjalan adalah seperti berikut.

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)

Ubah suai nama medan

Peraturan sintaks untuk mengubah suai nama medan jadual dalam MySQL adalah seperti berikut:

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

Antaranya, nama medan lama merujuk kepada nama medan sebelum pengubahsuaian nama medan baharu merujuk kepada nama medan yang diubah suai merujuk kepada jenis data yang diubah suai daripada medan, anda boleh menetapkan jenis data baharu agar sama dengan yang asal, tetapi jenis data tidak boleh kosong.

[Contoh 5] Gunakan ALTER TABLE untuk mengubah suai struktur jadual tb_emp1, tukar nama medan col1 kepada col3 dan tukar jenis data kepada CHAR(30) Penyataan SQL input dan hasil yang dijalankan adalah seperti berikut .

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)

TUKAR Anda juga boleh mengubah suai hanya jenis data untuk mencapai kesan yang sama seperti MODIFY Kaedahnya adalah untuk menetapkan "nama medan baharu" dan "nama medan lama" dalam pernyataan SQL kepada yang sama nama, dan hanya tukar "jenis data".

Petua: Memandangkan jenis data yang berbeza disimpan dalam cara dan panjang yang berbeza dalam mesin, mengubah suai jenis data boleh menjejaskan rekod data sedia ada dalam jadual data , jangan ubah suai jenis data dengan mudah.

Ubah suai nama jadual

MySQL menggunakan pernyataan ALTER TABLE untuk mengubah suai nama jadual Peraturan sintaks adalah seperti berikut:

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

Antaranya, TO ialah parameter pilihan, dan sama ada ia digunakan atau tidak tidak menjejaskan keputusan.

[Contoh 6] Gunakan ALTER TABLE untuk menamakan semula jadual data tb_emp1 kepada tb_emp2 ​​Input pernyataan SQL dan keputusan yang dijalankan adalah seperti berikut.

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视频教程

Atas ialah kandungan terperinci Apakah pernyataan yang mysql gunakan untuk mengubah suai struktur jadual?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:apa itu mysql indexArtikel seterusnya:apa itu mysql index