MySQL alter pridėti, kad padidintų kelias lauko pozicijas? Išsamus stulpelio modifikavimo teiginio naudojimo paaiškinimas

MySQL pakeisti pridėti, kad padidintumėte kelias lauko pozicijas? Išsamus stulpelio modifikavimo teiginio naudojimo paaiškinimas

MySQL komanda ALTER

Kai mums reikia modifikuoti duomenų lentelės pavadinimą arba modifikuoti duomenų lentelės laukus, turime naudoti komandą MySQL ALTER.

Prieš pradėdami šią mokymo programą, sukurkime lentelę pavadinimu: 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)

Ištrinkite, pridėkite arba keiskite lentelės laukus

Ši komanda naudoja komandą ALTER su sąlyga DROP, kad būtų pašalintas aukščiau sukurtos lentelės stulpelis i:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP negalima naudoti norint ištrinti lauką, jei duomenų lentelėje liko tik vienas laukas.

ADD sąlyga naudojama MySQL stulpeliams įtraukti į duomenų lentelę. Šis pavyzdys prideda i lauką prie lentelės testalter_tbl ir apibrėžia duomenų tipą:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Įvykdžius aukščiau pateiktą komandą, i laukas automatiškai įtraukiamas į duomenų lentelės laukų pabaigą.

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)

Jei reikia nurodyti naujo lauko vietą, galite naudoti MySQL pateiktą raktinį žodį FIRST (setPadėties nustatymaspirmas stulpelis), AFTER lauko pavadinimas (nustatytas po lauko).

Išbandykite šį ALTER TABLE teiginį ir sėkmingai įvykdę naudokite SHOW COLUMNS, kad peržiūrėtumėte lentelės struktūros pakeitimus:

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;

Raktiniai žodžiai FIRST ir AFTER naudojami tik sąlygoje ADD, taigi, jei norite iš naujo nustatyti duomenų lentelės lauko padėtį, turite naudoti DROP, kad ištrintumėte lauką, o tada naudokite ADD, kad pridėtumėte lauką ir nustatytumėte poziciją.


Pakeiskite lauko tipą ir pavadinimą

Jei reikia pakeisti lauko tipą ir pavadinimą, komandoje ALTER galite naudoti sąlygą MODIFY arba CHANGE.

Pavyzdžiui, norėdami pakeisti lauko c tipą iš CHAR(1) į CHAR(10), vykdykite šią komandą:

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

Su sąlyga CHANGE sintaksė labai skiriasi.Iš karto po raktinio žodžio CHANGE yra lauko, kurį norite keisti, pavadinimas, tada nurodykite naują lauko pavadinimą ir tipą.Išbandykite šį pavyzdį:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLE poveikis nulinėms ir numatytosioms reikšmėms

Kai modifikuojate lauką, galite nurodyti, ar įtraukti tik, ar nustatyti numatytąją reikšmę.

Toliau pateiktame pavyzdyje nurodoma, kad laukas j NĖRA NULLIS, o numatytoji reikšmė yra 100.

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

Jei nenustatote numatytosios reikšmės, pagal numatytuosius nustatymus „MySQL“ automatiškai nustatys lauką į NULL.


Keisti lauko numatytąją vertę

Galite naudoti ALTER norėdami pakeisti numatytąją lauko reikšmę, išbandykite šiuos pavyzdžius:

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)

Taip pat galite naudoti komandą ALTER su sąlyga DROP, kad pašalintumėte numatytąją lauko reikšmę, kaip parodyta šiame pavyzdyje:

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:

Modifikuoti duomenų lentelės tipą galima naudojant komandą ALTER ir TYPE sąlygą.Išbandykite šį pavyzdį, kuriame keičiame lentelės testalter_tbl tipą į MYISAM:

Pastaba:Norėdami peržiūrėti duomenų lentelės tipą, galite naudoti teiginį SHOW TABLE STATUS.

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)

Pakeiskite lentelės pavadinimą

Jei reikia modifikuoti duomenų lentelės pavadinimą, galite naudoti sakinį RENAME sakinyje ALTER TABLE.

Išbandykite šį pavyzdį, kad pervadintumėte duomenų lentelę testalter_tbl į alter_tbl:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

Komanda ALTER taip pat gali būti naudojama indeksams kurti ir ištrinti MySQL duomenų lentelėse, kurias pristatysime kituose skyriuose.

pakeisti kitus naudojimo būdus

Modifikuokite saugojimo variklį: pakeiskite jį į myisam

alter table tableName engine=myisam;

Pašalinkite išorinio rakto apribojimą: „keyName“ yra svetimo rakto slapyvardis

alter table tableName drop foreign key keyName;

Santykinė modifikuoto lauko padėtis: čia vardas1 yra laukas, kurį norite modifikuoti, tipas1 yra pradinis lauko tipas, ir jūs galite pasirinkti vieną iš pirmų ir po jų, kurie turėtų būti akivaizdūs, pirmas dedamas pirmas, o po jo dedamas po vardo2 lauko

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang tinklaraštis ( https://www.chenweiliang.com/ ) pasidalino "MySQL alter pridėti, kad padidintumėte kelias lauko pozicijas? Išsamus stulpelio keitimo pareiškimo naudojimo paaiškinimas“ yra jums naudingas.

Kviečiame pasidalinti šio straipsnio nuoroda:https://www.chenweiliang.com/cwl-495.html

Sveiki atvykę į Chen Weiliang tinklaraščio Telegram kanalą, kad gautumėte naujausius atnaujinimus!

🔔 Būkite pirmas, kuris kanalo viršaus kataloge gaus vertingą „ChatGPT turinio rinkodaros AI įrankio naudojimo vadovą“! 🌟
📚 Šis vadovas turi didžiulę vertę, 🌟Tai reta galimybė, nepraleiskite jos! ⏰⌛💨
Dalinkitės ir like jei patiko!
Jūsų dalijimasis ir paspaudimai „Patinka“ yra mūsų nuolatinė motyvacija!

 

发表 评论

Jūsų el. Pašto adresas nebus paskelbtas. Naudojami privalomi laukai * Etiketė

slinkite į viršų