Latest web development tutorials

perintah MySQL ALTER

Ketika kita perlu memodifikasi tabel data atau memodifikasi lapangan tabel data, Anda perlu menggunakan perintah MySQL ALTER.

Tutorial sebelum memulai bab ini mari kita membuat tabel, nama tabel: testalter_tbl.

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

Menghapus, menambah atau memodifikasi field tabel

Gunakan perintah berikut ALTER dan DROP klausul menghapus perintah yang dibuat di atas meja i bidang:

mysql> ALTER TABLE testalter_tbl  DROP i;

Jika data dalam tabel hanya tersisa satu bidang Anda tidak dapat menggunakan DROP untuk menghapus lapangan.

MySQL menggunakan klausa ADD untuk menambahkan kolom ingin datasheet, sebagai contoh field dalam tabel menambahkan i testalter_tbl dan menentukan tipe data:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Setelah menjalankan perintah di atas, bidang mereka secara otomatis ditambahkan ke akhir bidang tabel 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 bidang baru, (setelah pengaturan terletak di lapangan) Anda dapat menggunakan MySQL memberikan kata kunci FIRST (set bit pada kolom pertama), setelah nama field.

Coba ALTER TABLE pernyataan berikut, setelah keberhasilan pelaksanaan, KOLOM penggunaan TAMPILKAN melihat struktur perubahan tabel:

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;

PERTAMA dan SETELAH kata kunci hanya untuk ADD klausa, jadi jika Anda ingin mengatur ulang posisi lapangan tabel data pada kebutuhan untuk menggunakan DROP menghapus lapangan dan kemudian menggunakan ADD untuk menambahkan lapangan dan mengatur posisi.


Memodifikasi nama field dan ketik

Jika Anda perlu mengubah jenis lapangan dan nama, Anda dapat menggunakan GANTI atau MENGUBAH klausul perintah ALTER.

Misalnya, jenis lapangan c dari CHAR (1) ke CHAR (10), Anda dapat menjalankan perintah berikut:

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

Gunakan GANTI klausul tata bahasa yang sangat berbeda. Setelah GANTI kata kunci, diikuti dengan nama field yang ingin memodifikasi, dan kemudian tentukan nama field baru dan jenis. Coba contoh berikut:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Pengaruh ALTER TABLE pada nilai-nilai Null dan standar

Ketika Anda mengubah lapangan, Anda dapat menentukan apakah akan menyertakan atau apakah hanya mengatur nilai default.

Contoh berikut, bidang j ditentukan NOT NULL dan nilai default adalah 100.

mysql> ALTER TABLE testalter_tbl 
    -> MODIFY j BIGINT NOT NULL DEFAULT 100;

Jika Anda tidak menetapkan nilai default, MySQL secara otomatis akan mengatur default lapangan untuk NULL.


Memodifikasi nilai bidang standar

Anda dapat menggunakan ALTER mengubah nilai default lapangan, cobalah 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 dapat menggunakan perintah default ALTER dan DROP klausul untuk menghapus lapangan, sebagai contoh:

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:

Memodifikasi jenis tabel data, dapat dicapai dengan menggunakan perintah ALTER dan TYPE klausa. Coba contoh berikut, kita akan memodifikasi jenis tabel testalter_tbl MYISAM:

Catatan: Lihat jenis tabel data dapat menggunakan pernyataan STATUS TAMPILKAN TABLE.

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)

Memodifikasi nama tabel

Jika Anda perlu mengubah nama tabel data, Anda dapat menggunakan klausa RENAME dalam pernyataan ALTER TABLE untuk mencapai.

Coba contoh berikut tabel data testalter_tbl mengubah nama alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Perintah ALTER juga dapat digunakan untuk membuat dan menghapus indeks tabel data MySQL, fitur ini kami akan memperkenalkan pada bab berikutnya.