Perintah MySQL ALTER


Arahan MySQL ALTER

Apabila kita perlu mengubah suai nama jadual data atau mengubah suai medan jadual data, kita perlu menggunakan Pesanan MySQL ALTER.

Sebelum memulakan tutorial ini, mari kita buat jadual bernama: testalter_tbl dahulu.

root@host# mysql -u root -p password;
Enter password:*******
mysql> use php;
Database changed
mysql> create table testalter_tbl
   -> (
   -> i INT,
   -> c CHAR(1)
   -> );
Query OK, 0 rows affected (0.05 sec)
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| i     | int(11) | YES  |     | NULL    |       |
| c     | char(1) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Padam, tambah atau ubah suai medan jadual

Arahan berikut menggunakan perintah ALTER dan klausa DROP untuk memadam Medan i bagi jadual yang dibuat di atas:

mysql> ALTER TABLE testalter_tbl  DROP i;
Jika hanya tinggal satu medan dalam jadual data, DROP tidak boleh digunakan untuk memadam medan.

Klausa ADD digunakan dalam MySQL untuk menambah lajur pada jadual data Contoh berikut menambah medan i pada testalter_tbl jadual dan mentakrifkan jenis data:

mysql> ALTER TABLE testalter_tbl ADD i INT;
melaksanakan perkara di atas Selepas arahan, medan i ditambah secara automatik pada penghujung medan jadual data.
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Jika anda perlu menentukan lokasi medan baharu, anda boleh menggunakan kata kunci FIRST (ditetapkan dalam lajur pertama) yang disediakan oleh MySQL, SELEPAS nama medan (ditetapkan dalam padang selepas).

Cuba pernyataan ALTER TABLE berikut Selepas pelaksanaan berjaya, gunakan SHOW COLUMNS untuk melihat perubahan dalam struktur jadual:

ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT FIRST;
ALTER TABLE testalter_tbl DROP i;
ALTER TABLE testalter_tbl ADD i INT AFTER c;
FIRST dan AFTER kata kunci hanya digunakan dalam Klausa TAMBAH. Jadi, jika anda ingin menetapkan semula kedudukan medan jadual data, anda perlu menggunakan DROP untuk memadam medan dan kemudian menggunakan ADD untuk menambah medan dan menetapkan kedudukan.

Ubah suai jenis dan nama medan

Jika anda perlu mengubah suai jenis dan nama medan, anda boleh menggunakan MODIFY atau CHANGE dalam ALTER klausa arahan.

Sebagai contoh, untuk menukar jenis medan c daripada CHAR(1) kepada CHAR(10), anda boleh melaksanakan arahan berikut:

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
menggunakan klausa CHANGE, sintaks sangat berbeza. Selepas kata kunci TUKAR, ikut nama medan yang anda mahu ubah suai, dan kemudian nyatakan nama dan jenis medan baharu. Cuba contoh berikut:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT

Kesan ALTER TABLE pada nilai Null dan nilai lalai

Apabila anda mengubah suai medan, anda boleh menentukan sama ada untuk memasukkannya atau sama ada untuk menetapkan nilai lalai.

Dalam contoh berikut, medan j yang ditentukan ialah BUKAN NULL dan nilai lalai ialah 100.

mysql> ALTER TABLE testalter_tbl
   -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Jika anda tidak menetapkan nilai lalai, MySQL akan secara automatik menetapkan medan kepada NULL secara lalai.

Ubah suai nilai lalai medan

Anda boleh menggunakan ALTER untuk mengubah suai nilai lalai medan Cuba contoh berikut:

mysql> ALTER TABLE testalter_tbl ALTER i SET DEFAULT 1000;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | 1000    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Anda juga boleh menggunakan perintah ALTER dan klausa DROP untuk memadam nilai lalai medan, seperti yang ditunjukkan dalam contoh berikut:
mysql> ALTER TABLE testalter_tbl ALTER i DROP DEFAULT;
mysql> SHOW COLUMNS FROM testalter_tbl;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| c     | char(1) | YES  |     | NULL    |       |
| i     | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
2 rows in set (0.00 sec)
Changing a Table Type:
Untuk mengubah suai jadual data taip, anda boleh menggunakan perintah ALTER dan klausa TYPE untuk melengkapkan. Cuba contoh berikut, kami menukar jenis jadual testalter_tbl kepada MYISAM:

Nota: Anda boleh menggunakan pernyataan SHOW TABLE STATUS untuk melihat jenis jadual data.

mysql> ALTER TABLE testalter_tbl TYPE = MYISAM;
mysql>  SHOW TABLE STATUS LIKE 'testalter_tbl'\G
*************************** 1. row ****************
          Name: testalter_tbl
          Type: MyISAM
    Row_format: Fixed
          Rows: 0
Avg_row_length: 0
   Data_length: 0
Max_data_length: 25769803775
  Index_length: 1024
     Data_free: 0
Auto_increment: NULL
   Create_time: 2007-06-03 08:04:36
   Update_time: 2007-06-03 08:04:36
    Check_time: NULL
Create_options:
       Comment:
1 row in set (0.00 sec)
Ubah suai nama jadual

Jika anda perlu mengubah suai nama jadual data, anda boleh menggunakan NAMA SEMULA dalam klausa pernyataan ALTER TABLE untuk dicapai.

Cuba contoh berikut untuk menamakan semula jadual data testalter_tbl kepada alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Arahan ALTER juga digunakan Untuk mencipta dan memadam indeks jadual data MySQL, kami akan memperkenalkan fungsi ini dalam bab seterusnya.

Tutorial video berkaitan yang disyorkan: