Drejtoria e artikujve
Si të shtoni fusha të shumta duke përdorur deklaratën `ALTER ALTER ADD` të MySQL ? Një shpjegim i detajuar i deklaratës `MODIUS Column`.
MySQL Komanda ALTER
Kur duhet të modifikojmë emrin e tabelës së të dhënave ose të modifikojmë fushat e tabelës së të dhënave, duhet të përdorim komandën MySQL ALTER.
Përpara se të fillojmë këtë tutorial, le të krijojmë një tabelë me emrin: 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)
Fshini, shtoni ose modifikoni fushat e tabelës
Komanda e mëposhtme përdor komandën ALTER me klauzolën DROP për të hequr kolonën i të tabelës së krijuar më sipër:
mysql> ALTER TABLE testalter_tbl DROP i;
DROP nuk mund të përdoret për të fshirë një fushë nëse ka mbetur vetëm një fushë në tabelën e të dhënave.
Klauzola ADD përdoret në MySQL për të shtuar kolona në tabelën e të dhënave Shembulli i mëposhtëm shton fushën i në tabelën testalter_tbl dhe përcakton llojin e të dhënave:
mysql> ALTER TABLE testalter_tbl ADD i INT;
Pas ekzekutimit të komandës së mësipërme, fusha i shtohet automatikisht në fund të fushave të tabelës së të dhënave.
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)
Nëse duhet të specifikoni pozicionin e fushës së re, mund të përdorni fjalët kyçe FIRST (të vendosura në kolonën e parë) dhe AFTER field_name (të vendosur pas një fushe të caktuar) të ofruara nga MySQL .
Provoni deklaratën e mëposhtme ALTER TABLE dhe pas ekzekutimit të suksesshëm, përdorni SHOW COOLUMNS për të parë ndryshimet në strukturën e tabelës:
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;
Fjalët kyçe FIRST dhe AFTER përdoren vetëm në klauzolën ADD, kështu që nëse dëshironi të rivendosni pozicionin e një fushe të tabelës së të dhënave, duhet të përdorni DROP për të fshirë fushën dhe më pas përdorni ADD për të shtuar fushën dhe për të vendosur pozicionin.
Ndryshoni llojin dhe emrin e fushës
Nëse keni nevojë të modifikoni llojin dhe emrin e fushës, mund të përdorni klauzolën MODIFY ose CHANGE në komandën ALTER.
Për shembull, për të ndryshuar llojin e fushës c nga CHAR(1) në CHAR(10), ekzekutoni komandën e mëposhtme:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
Me klauzolën CHANGE, sintaksa është shumë e ndryshme.Menjëherë pas fjalës kyçe CHANGE është emri i fushës që dëshironi të modifikoni dhe më pas specifikoni emrin dhe llojin e fushës së re.Provoni shembullin e mëposhtëm:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Efekti i ALTER TABLE në vlerat null dhe të paracaktuara
Kur modifikoni një fushë, mund të specifikoni nëse do të përfshini vetëm ose nëse do të vendosni një vlerë të paracaktuar.
Shembulli i mëposhtëm specifikon se fusha j NUK është NULL dhe vlera e paracaktuar është 100.
mysql> ALTER TABLE testalter_tbl -> MODIFY j BIGINT NOT NULL DEFAULT 100;
Nëse nuk vendosni një vlerë të paracaktuar, MySQL do ta vendosë automatikisht fushën në NULL si parazgjedhje.
Ndrysho vlerën e paracaktuar të fushës
Ju mund të përdorni ALTER për të ndryshuar vlerën e paracaktuar të një fushe, provoni shembujt e mëposhtëm:
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)
Ju gjithashtu mund të përdorni komandën ALTER me klauzolën DROP për të hequr vlerën e paracaktuar të një fushe, si në shembullin e mëposhtëm:
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:
Modifikimi i llojit të tabelës së të dhënave mund të bëhet duke përdorur komandën ALTER dhe klauzolën TYPE.Provoni shembullin e mëposhtëm, ku ne ndryshojmë llojin e tabelës testalter_tbl në MYISAM:
Shënim: Mund të përdorni deklaratën SHOW TABLE STATUS për të kontrolluar llojin e tabelës.
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)
Ndrysho emrin e tabelës
Nëse keni nevojë të modifikoni emrin e tabelës së të dhënave, mund të përdorni klauzolën REEMROJ në deklaratën ALTER TABLE për ta bërë këtë.
Provoni shembullin e mëposhtëm për të riemërtuar tabelën e të dhënave testalter_tbl në alter_tbl:
mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;
Komanda ALTER mund të përdoret gjithashtu për të krijuar dhe fshirë indekset në tabelat e të dhënave MySQL, të cilat do t'i prezantojmë në kapitujt e ardhshëm.
ndryshojnë përdorime të tjera
Modifiko motorin e ruajtjes: modifikojeni atë në myisam
alter table tableName engine=myisam;
Hiq kufizimin e çelësit të huaj: emri i çelësit është një pseudonim i çelësit të huaj
alter table tableName drop foreign key keyName;
Pozicioni relativ i fushës së modifikuar: këtu emri1 është fusha që dëshironi të modifikoni, tipi 1 është lloji origjinal i fushës dhe mund të zgjidhni një nga e para dhe pas, e cila duhet të jetë e dukshme, së pari vendoset së pari, dhe pas është vendosur pas fushës emri2
alter table tableName modify name1 type1 first|after name2;
Shpresojmë që artikulli "Shtimi i fushave të shumëfishta në MySQL duke përdorur ALTER TABLE? Shpjegim i detajuar i deklaratës 'MODIATE COLLECT'" i ndarë në blogun e Chen Weiliang ( https://www.chenweiliang.com/ ) do t'ju jetë i dobishëm.
Ndihuni të lirë të ndani lidhjen e këtij artikulli: https://www.chenweiliang.com/cwl-495.html
