Director articol
Cum se adaugă mai multe câmpuri folosind instrucțiunea `ALTER ALTER ADD` din MySQL ? Explicație detaliată a instrucțiunii `MODIUS CLOSED`.
MySQL Comanda ALTER
Când trebuie să modificăm numele tabelului de date sau să modificăm câmpurile tabelului de date, trebuie să folosim comanda MySQL ALTER.
Înainte de a începe acest tutorial, să creăm un tabel numit: 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)
Ștergeți, adăugați sau modificați câmpurile din tabel
Următoarea comandă folosește comanda ALTER cu clauza DROP pentru a elimina coloana i a tabelului creat mai sus:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP nu poate fi folosit pentru a șterge un câmp dacă mai există un singur câmp în tabelul de date.
Clauza ADD este folosită în MySQL pentru a adăuga coloane la tabelul de date. Următorul exemplu adaugă câmpul i la tabelul testalter_tbl și definește tipul de date:
mysql> ALTER TABLE testalter_tbl ADD i INT;
După executarea comenzii de mai sus, câmpul i este adăugat automat la sfârșitul câmpurilor tabelului de date.
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)
Dacă trebuie să specificați poziția noului câmp, puteți utiliza cuvintele cheie FIRST (setat la prima coloană) și AFTER field_name (setat să fie după un anumit câmp) furnizate de MySQL .
Încercați următoarea instrucțiune ALTER TABLE și, după executarea cu succes, utilizați SHOW COLUMNS pentru a vedea modificările din structura tabelului:
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;
Cuvintele cheie FIRST și AFTER sunt folosite doar în clauza ADD, așa că dacă doriți să resetați poziția unui câmp de tabel de date, trebuie să utilizați DROP pentru a șterge câmpul și apoi folosiți ADD pentru a adăuga câmpul și a seta poziția.
Modificați tipul și numele câmpului
Dacă trebuie să modificați tipul și numele câmpului, puteți utiliza clauza MODIFY sau CHANGE din comanda ALTER.
De exemplu, pentru a schimba tipul câmpului c de la CHAR(1) la CHAR(10), executați următoarea comandă:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Cu clauza CHANGE, sintaxa este foarte diferită.Imediat după cuvântul cheie CHANGE este numele câmpului pe care doriți să îl modificați, apoi specificați noul nume și tipul câmpului.Încercați următorul exemplu:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efectul ALTER TABLE asupra valorilor nule și implicite
Când modificați un câmp, puteți specifica dacă să includeți numai sau dacă să setați o valoare implicită.
Următorul exemplu specifică că câmpul j NU este NULL și valoarea implicită este 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Dacă nu setați o valoare implicită, MySQL va seta automat câmpul la NULL în mod implicit.
Modificați valoarea implicită a câmpului
Puteți folosi ALTER pentru a modifica valoarea implicită a unui câmp, încercați următoarele exemple:
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)
De asemenea, puteți utiliza comanda ALTER cu clauza DROP pentru a elimina valoarea implicită a unui câmp, ca în exemplul următor:
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:
Modificarea tipului tabelului de date se poate face folosind comanda ALTER și clauza TYPE.Încercați următorul exemplu, în care schimbăm tipul tabelului testalter_tbl în MYISAM:
Notă: Puteți utiliza instrucțiunea SHOW TABLE STATUS pentru a verifica tipul tabelului.
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)
Modificați numele tabelului
Dacă trebuie să modificați numele tabelului de date, puteți utiliza clauza RENAME din instrucțiunea ALTER TABLE pentru a face acest lucru.
Încercați următorul exemplu pentru a redenumi tabelul de date testalter_tbl în alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Comanda ALTER poate fi folosită și pentru a crea și șterge indecși pe tabelele de date MySQL, pe care îi vom prezenta în capitolele următoare.
modificarea altor utilizări
Modificați motorul de stocare: modificați-l în myisam
alter table tableName engine=myisam;
Eliminați constrângerea cheii străine: keyName este un alias de cheie străină
alter table tableName drop foreign key keyName;
Poziția relativă a câmpului modificat: aici nume1 este câmpul pe care doriți să îl modificați, tipul1 este tipul original al câmpului și puteți alege unul dintre primul și după, care ar trebui să fie evident, primul este plasat primul și după este plasat după câmpul nume2
alter table tableName modify name1 type1 first|after name2;
Sperăm că articolul „Adăugarea mai multor câmpuri în MySQL cu ALTER TABLE? Explicație detaliată a instrucțiunii 'MODIATE COLLECT'” distribuit pe blogul lui Chen Weiliang ( https://www.chenweiliang.com/ ) vă va fi de ajutor.
Nu ezitați să distribuiți linkul acestui articol: https://www.chenweiliang.com/cwl-495.html
