MySQL ndryshon shtimin për të rritur pozicionet e shumta të fushës? Shpjegim i detajuar i përdorimit të deklaratës së modifikimit të kolonës

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;

发表 评论

您的邮箱地址不会被公开。必填项已用*标注

Scroll to Top