MySQL mengubah tambah untuk meningkatkan berbilang kedudukan medan? Penjelasan terperinci tentang penggunaan penyataan lajur ubah suai

MySQL ubah tambah untuk meningkatkan berbilang kedudukan medan? Penjelasan terperinci tentang penggunaan penyataan lajur ubah suai

MySQL arahan ALTER

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

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

root@host# mysql -u root -p password;
Enter password:*******
mysql> use chenweiliang;
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

Perintah berikut menggunakan perintah ALTER dengan klausa DROP untuk menggugurkan lajur i jadual yang dibuat di atas:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP tidak boleh digunakan untuk memadam medan jika hanya ada satu medan yang tinggal dalam jadual data.

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

mysql> ALTER TABLE testalter_tbl ADD i INT;

Selepas melaksanakan arahan di atas, 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 yang disediakan oleh MySQL (setKedudukanlajur pertama), nama medan SELEPAS (ditetapkan selepas medan).

Cuba penyataan ALTER TABLE berikut, dan 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;

Kata kunci PERTAMA dan SELEPAS hanya digunakan dalam klausa ADD, jadi jika anda ingin menetapkan semula kedudukan medan jadual data anda perlu menggunakan DROP untuk mengalih keluar medan dan kemudian 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 klausa MODIFY atau CHANGE dalam arahan ALTER.

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

mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);

Dengan klausa CHANGE, sintaksnya sangat berbeza.Sejurus selepas kata kunci TUKAR ialah nama medan yang anda ingin 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 Lalai

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

Contoh berikut menyatakan bahawa medan j adalah 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 secara automatik akan menetapkan medan kepada NULL secara lalai.


Ubah suai nilai lalai medan

Anda boleh menggunakan ALTER untuk menukar 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 arahan ALTER dengan klausa DROP untuk mengalih keluar nilai lalai medan, seperti 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:

Mengubah suai jenis jadual data boleh dilakukan menggunakan arahan ALTER dan klausa TYPE.Cuba contoh berikut, di mana kami menukar jenis jadual testalter_tbl kepada MYISAM:

Nota:Untuk melihat jenis jadual data, anda boleh menggunakan pernyataan SHOW TABLE STATUS.

mysql> ALTER TABLE testalter_tbl ENGINE = 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 klausa RENAME dalam pernyataan ALTER TABLE untuk berbuat demikian.

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 boleh digunakan untuk mencipta dan memadam indeks pada jadual MySQL, yang akan kita bahas dalam bab seterusnya.

mengubah kegunaan lain

Ubah suai enjin storan: ubah suai kepada myisam

alter table tableName engine=myisam;

Alih keluar kekangan kunci asing: keyName ialah alias kunci asing

alter table tableName drop foreign key keyName;

Kedudukan relatif medan yang diubah suai: di sini nama1 ialah medan yang anda mahu ubah suai, jenis1 ialah jenis asal medan, dan anda boleh memilih salah satu daripada pertama dan selepas, yang sepatutnya jelas, pertama diletakkan dahulu, dan selepas adalah diletakkan selepas medan nama2

alter table tableName modify name1 type1 first|after name2;

Blog Harapan Chen Weiliang ( https://www.chenweiliang.com/ ) berkongsi "MySQL alter add untuk meningkatkan berbilang kedudukan medan? Penjelasan Terperinci tentang Penggunaan Pernyataan Lajur Ubahsuai" berguna kepada anda.

Selamat datang untuk berkongsi pautan artikel ini:https://www.chenweiliang.com/cwl-495.html

Selamat datang ke saluran Telegram blog Chen Weiliang untuk mendapatkan kemas kini terkini!

🔔 Jadilah yang pertama untuk mendapatkan "Panduan Penggunaan Alat AI Pemasaran Kandungan ChatGPT" yang berharga dalam direktori teratas saluran! 🌟
📚 Panduan ini mengandungi nilai yang besar, 🌟Ini adalah peluang yang jarang berlaku, jangan lepaskan! ⏰⌛💨
Share dan like jika anda suka!
Perkongsian dan suka anda adalah motivasi berterusan kami!

 

发表 评论

Alamat e-mel anda tidak akan diterbitkan. 必填 项 已 用 * 标注

tatal ke atas