MySQL ngarobih tambihan pikeun ningkatkeun sababaraha posisi lapangan? Katerangan lengkep ngeunaan panggunaan pernyataan kolom modifikasi

MySQL Ngarobah nambahkeun pikeun ngaronjatkeun sababaraha posisi widang? Katerangan lengkep ngeunaan panggunaan pernyataan kolom modifikasi

MySQL paréntah ALTER

Nalika urang kedah ngarobih nami tabel data atanapi ngarobih widang tabel data, urang kedah nganggo paréntah MySQL ALTER.

Sateuacan ngawitan tutorial ieu, hayu urang nyieun tabel ngaranna: 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)

Pupus, tambahkeun atanapi modifikasi widang méja

Paréntah di handap ieu nganggo paréntah ALTER sareng klausa DROP pikeun leupaskeun kolom i tabel anu didamel di luhur:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP teu bisa dipaké pikeun mupus hiji widang lamun aya ngan hiji widang ditinggalkeun dina tabel data.

Klausa ADD dianggo dina MySQL pikeun nambihan kolom kana tabel data.Conto di handap ieu nambihan widang i kana tabel testalter_tbl sareng netepkeun jinis data:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Saatos executing paréntah di luhur, i sawah otomatis ditambahkeun kana tungtung widang 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)

Upami anjeun kedah netepkeun lokasi lapangan énggal, anjeun tiasa nganggo kecap konci FIRST anu disayogikeun ku MySQL (setPosisikolom kahiji), AFTER ngaran widang (set sanggeus widang).

Coba pernyataan ALTER TABLE di handap ieu, sareng saatos palaksanaan suksés, paké SHOW COLUMNS pikeun ningali parobihan dina struktur méja:

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;

Kecap konci FIRST sareng SELEPAS ngan ukur dianggo dina klausa ADD, janten upami anjeun hoyong ngareset posisi widang tabel data, anjeun kedah nganggo DROP heula pikeun ngahapus lapangan teras nganggo ADD pikeun nambihan lapangan sareng nyetél posisi.


Robah jenis widang jeung ngaran

Upami anjeun kedah ngarobih jinis lapangan sareng nami, anjeun tiasa nganggo klausa MODIFY atanapi CHANGE dina paréntah ALTER.

Contona, pikeun ngarobah tipe widang c tina CHAR (1) kana CHAR (10), laksanakeun paréntah di handap ieu:

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

Kalayan klausa CHANGE, sintaksisna béda pisan.Langsung saatos kecap konci CHANGE nyaéta nami widang anu anjeun hoyong modifikasi, teras sebatkeun nami sareng jinis lapangan anu énggal.Coba conto di handap ieu:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Pangaruh ALTER TABLE dina Nilai Null sareng Default

Nalika anjeun ngarobih hiji widang, anjeun tiasa netepkeun naha ngan ukur kalebet atanapi netepkeun nilai standar.

Conto di handap ieu netepkeun yén médan j NOT NULL sareng nilai standar nyaéta 100.

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

Upami anjeun henteu netepkeun nilai standar, MySQL bakal otomatis nyetél lapangan ka NULL sacara standar.


Robah nilai standar widang

Anjeun tiasa nganggo ALTER pikeun ngarobih nilai standar lapangan, cobian conto ieu:

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)

Anjeun ogé tiasa nganggo paréntah ALTER sareng klausa DROP pikeun ngahapus nilai standar lapangan, sapertos dina conto ieu:

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:

Ngarobah tipe tabel data bisa dipigawé maké paréntah ALTER jeung klausa TYPE.Coba conto di handap ieu, dimana urang ngarobah tipe tabel testalter_tbl ka MYISAM:

Catetan:Pikeun ningali jinis tabel data, anjeun tiasa nganggo 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)

Ngarobah ngaran tabel

Upami anjeun kedah ngarobih nami tabel data, anjeun tiasa nganggo klausa RENAME dina pernyataan ALTER TABLE pikeun ngalakukeunana.

Coba conto di handap ieu pikeun ngaganti ngaran tabel data testalter_tbl jadi alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Paréntah ALTER ogé tiasa dianggo pikeun nyiptakeun sareng ngahapus indéks dina tabel data MySQL, anu bakal kami kenalkeun dina bab salajengna.

ngarobah kagunaan séjén

Ngaropea mesin gudang: ngaropéa kana myisam

alter table tableName engine=myisam;

Hapus konstrain konci asing: keyName mangrupikeun alias konci asing

alter table tableName drop foreign key keyName;

Posisi relatif widang dirobah: di dieu name1 nyaeta widang nu bakal dirobah, type1 nyaeta tipe aslina tina widang, kahiji jeung sanggeus bisa dipilih, nu kudu atra, kahiji ditempatkeun kahiji, sarta sanggeus disimpen sanggeus name2. sawah

alter table tableName modify name1 type1 first|after name2;

Blog Hope Chen Weiliang ( https://www.chenweiliang.com/ ) dibagikeun "MySQL ngarobah nambahkeun pikeun ngaronjatkeun sababaraha posisi widang? Penjelasan lengkep ngeunaan Pamakéan Pernyataan Kolom Modifikasi" ngabantosan anjeun.

Wilujeng ngabagikeun tautan artikel ieu:https://www.chenweiliang.com/cwl-495.html

Wilujeng sumping di saluran Telegram blog Chen Weiliang pikeun kéngingkeun apdet panganyarna!

🔔 Janten anu pangheulana kéngingkeun "Panduan Penggunaan Alat AI Pemasaran Konten ChatGPT" dina diréktori luhur saluran! 🌟
📚 Pituduh ieu ngandung nilai anu ageung, 🌟Ieu mangrupikeun kasempetan anu jarang, tong kantun! ⏰⌛💨
Bagikeun sareng suka upami anjeun resep!
Bagikeun sareng resep anjeun mangrupikeun motivasi kontinyu kami!

 

koméntar

Alamat email anjeun moal diterbitkeun. Widang anu diperyogikeun dianggo * Labél

gulung ka luhur