MySQL-verandering byvoeg om verskeie veldposisies te verhoog? Gedetailleerde verduideliking van die gebruik van wysig kolomstelling

MySQL verander voeg om veelvuldige veldposisies by te voeg? Gedetailleerde verduideliking van die gebruik van wysig kolomverklaring

MySQL ALTER-opdrag

Wanneer ons die datatabelnaam moet verander of die datatabelvelde moet wysig, moet ons die MySQL ALTER-opdrag gebruik.

Voordat ons hierdie tutoriaal begin, laat ons eers 'n tabel met die naam: 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)

Vee, voeg by of verander tabelvelde

Die volgende opdrag gebruik die ALTER-opdrag en DROP-klousule om die i-veld van die tabel hierbo geskep te verwyder:

mysql> ALTER TABLE testalter_tbl  DROP i;

As daar net een veld in die datatabel oor is, kan DROP nie gebruik word om die veld uit te vee nie.

Die ADD-klousule word in MySQL gebruik om kolomme by die datatabel te voeg. Die volgende voorbeeld voeg die i-veld by die tabel testalter_tbl en definieer die datatipe:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Nadat die bogenoemde opdrag uitgevoer is, sal die i-veld outomaties aan die einde van die datatabelveld gevoeg word.

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)

As jy die ligging van die nuwe veld moet spesifiseer, kan jy die sleutelwoord EERSTE (stelPosisioneringEerste kolom), NA veldnaam (gestel na 'n sekere veld).

Probeer die volgende ALTER TABLE-stelling, en na suksesvolle uitvoering, gebruik WYS KOLOMME om veranderinge in die tabelstruktuur te sien:

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;

Die EERSTE en NA sleutelwoorde word slegs in die ADD-klousule gebruik, so as jy die posisie van 'n datatabelveld wil terugstel, moet jy eers DROP gebruik om die veld uit te vee en dan ADD gebruik om die veld by te voeg en die posisie te stel.


Verander veldtipe en naam

As jy die veldtipe en naam moet wysig, kan jy die MODIFY- of CHANGE-klousule in die ALTER-opdrag gebruik.

Byvoorbeeld, om die tipe veld c van CHAR(1) na CHAR(10) te verander, kan jy die volgende opdrag uitvoer:

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

Met die CHANGE-klousule is die sintaksis heel anders. Na die CHANGE-sleutelwoord, volg die veldnaam wat jy wil wysig, en spesifiseer dan die nuwe veldnaam en tipe. Probeer die volgende voorbeeld:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

Effekte van ALTER TABLE op nulwaardes en verstekwaardes

Wanneer jy 'n veld wysig, kan jy spesifiseer of jy dit insluit en of jy 'n verstekwaarde moet stel.

In die volgende voorbeeld is die gespesifiseerde veld j NIE NULL nie en die verstekwaarde is 100.

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

As jy nie 'n verstekwaarde instel nie, sal MySQL outomaties die veld by verstek op NULL stel.


Verander veld verstek waarde

Jy kan ALTER gebruik om die verstekwaarde van 'n veld te verander. Probeer die volgende voorbeeld:

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)

Jy kan ook die ALTER-opdrag en DROP-klousule gebruik om die verstekwaarde van 'n veld te skrap, soos in die volgende voorbeeld getoon:

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:

Om die datatabeltipe te verander, kan jy die ALTER-opdrag en die TYPE-klousule gebruik. Probeer die volgende voorbeeld, ons verander die tipe tabel testalter_tbl na MYISAM:

Let wel:Om die datatabeltipe te sien, kan jy die WYS TABELSTATUS-stelling gebruik.

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)

Verander tabelnaam

As jy die naam van die datatabel moet wysig, kan jy die RENAME-klousule in die ALTER TABLE-stelling gebruik.

Probeer die volgende voorbeeld om die datatabel testalter_tbl na alter_tbl te hernoem:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Die ALTER-opdrag kan ook gebruik word om indekse op MySQL-datatabelle te skep en uit te vee. Ons sal hierdie funksie in die volgende hoofstuk bekendstel.

ander gebruike te verander

Verander die bergingsenjin: verander dit na myisam

alter table tableName engine=myisam;

Vee vreemde sleutelbeperkings uit: sleutelNaam is 'n vreemde sleutel-alias

alter table tableName drop foreign key keyName;

Verander die relatiewe posisie van die veld: hier is naam1 die veld wat jy wil wysig, tipe1 is die oorspronklike tipe van die veld, kies een van eerste en na, dit moet duidelik wees, eerste word eerste geplaas, en na word geplaas na die naam2 veld

alter table tableName modify name1 type1 first|after name2;

Hoop Chen Weiliang Blog ( https://www.chenweiliang.com/ ) gedeel "MySQL alter voeg by om veelvuldige veldposisies by te voeg?" Gedetailleerde verduideliking van die gebruik van wysig kolomverklaring" sal vir jou nuttig wees.

Welkom om die skakel van hierdie artikel te deel:https://www.chenweiliang.com/cwl-495.html

Welkom by die Telegram-kanaal van Chen Weiliang se blog om die nuutste opdaterings te kry!

🔔 Wees die eerste om die waardevolle "ChatGPT Content Marketing AI Tool Usage Guide" in die kanaal se topgids te kry! 🌟
📚 Hierdie gids bevat groot waarde, 🌟Dit is 'n seldsame geleentheid, moet dit nie misloop nie! ⏰⌛💨
Share en like as jy wil!
Jou deel en laaiks is ons voortdurende motivering!

 

发表 评论

U e-posadres sal nie gepubliseer word nie. Vereiste velde word gebruik * Etiket

blaai na bo