MySQL modifică adăugarea pentru a crește mai multe poziții de câmp? Explicație detaliată a utilizării instrucțiunii de modificare a coloanei

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;

发表 评论

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

Derulaţi în sus