MySQL gehitu al duzu eremu anitz posizioak handitzeko? Modificar zutabearen adierazpenaren erabileraren azalpen zehatza

MySQL gehitu gehitu eremu anitz posizioak handitzeko? Zutabea aldatzeko adierazpenaren erabileraren azalpen zehatza

MySQL ALTER komandoa

Datu-taularen izena edo datu-taularen eremuak aldatu behar ditugunean, MySQL ALTER komandoa erabili behar dugu.

Tutorial hau hasi aurretik, sortu dezagun izeneko taula bat: 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)

Taularen eremuak ezabatu, gehitu edo aldatu

Hurrengo komandoak ALTER komandoa erabiltzen du DROP klausularekin goian sortutako taularen i zutabea askatzeko:

mysql> ALTER TABLE testalter_tbl  DROP i;

DROP ezin da eremu bat ezabatzeko erabili datu-taulan eremu bakarra geratzen bada.

ADD klausula MySQL-n erabiltzen da zutabeak gehitzeko datu-taulan. Ondorengo adibidean i eremua gehitzen da testalter_tbl taulan eta datu-mota definitzen du:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Goiko komandoa exekutatu ondoren, i eremua automatikoki gehitzen da datu-taularen eremuen amaieran.

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)

Eremu berriaren kokapena zehaztu behar baduzu, MySQL-k emandako FIRST gako-hitza erabil dezakezu (ezarriPosizionamendualehen zutabea), AFTER eremuaren izena (eremu baten ondoren ezarri).

Saiatu ALTER TABLE instrukzio hau eta exekuzio arrakastatsua egin ondoren, erabili SHOW COLUMNS taularen egiturako aldaketak ikusteko:

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;

FIRST eta AFTER gako-hitzak ADD klausulan soilik erabiltzen dira, beraz, datu-taularen eremu baten posizioa berrezarri nahi baduzu, DROP erabili behar duzu eremua kentzeko eta gero ADD eremua gehitzeko eta posizioa ezartzeko.


Aldatu eremu mota eta izena

Eremu mota eta izena aldatu behar badituzu, ALTER komandoan MODIFY edo CHANGE klausula erabil dezakezu.

Adibidez, c eremu mota CHAR(1)-tik CHAR(10-ra aldatzeko), exekutatu komando hau:

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

CHANGE klausularekin, sintaxia oso ezberdina da.CHANGE hitz-gakoaren ondoren aldatu nahi duzun eremuaren izena dago eta, ondoren, zehaztu eremuaren izena eta mota berria.Saiatu hurrengo adibidea:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLE-ren eragina balio nuluetan eta lehenetsietan

Eremu bat aldatzen duzunean, bakarrik sartu edo balio lehenetsi bat ezarri nahi duzun zehaztu dezakezu.

Ondorengo adibidean j eremua EZ da NULL eta balio lehenetsia 100 dela zehazten du.

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

Ez baduzu balio lehenetsirik ezartzen, MySQL-k automatikoki ezarriko du eremua NULL gisa lehenespenez.


Aldatu eremuaren balio lehenetsia

ALTER erabil dezakezu eremu baten balio lehenetsia aldatzeko, saiatu adibide hauek:

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)

ALTER komandoa DROP klausularekin ere erabil dezakezu eremu baten balio lehenetsia kentzeko, adibide honetan bezala:

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:

Datu-taula mota aldatzea ALTER komandoa eta TYPE klausula erabiliz egin daiteke.Saiatu hurrengo adibidea, non testalter_tbl taula mota aldatzen dugun MYISAM-era:

Oharra:Datu-taula mota ikusteko, SHOW TABLE STATUS instrukzioa erabil dezakezu.

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)

Aldatu taularen izena

Datu-taularen izena aldatu behar baduzu, ALTER TABLE instrukzioko RENAME klausula erabil dezakezu horretarako.

Saiatu hurrengo adibidea datu-taulari testalter_tbl alter_tbl izendatzeko:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ALTER komandoa MySQL tauletan indizeak sortzeko eta ezabatzeko ere erabil daiteke, hurrengo kapituluetan landuko ditugunak.

beste erabilera batzuk aldatzea

Aldatu biltegiratze-motorra: aldatu myisam-era

alter table tableName engine=myisam;

Kendu atzerriko gakoaren muga: keyName atzerriko gako alias bat da

alter table tableName drop foreign key keyName;

Aldatutako eremuaren posizio erlatiboa: hemen name1 da aldatu nahi duzun eremua, type1 eremuaren jatorrizko mota da, eta lehen eta ondoren bat aukeratu dezakezu, begi-bistakoa izan beharko lukeena, lehena lehen jartzen da eta ondoren. name2 eremuaren ondoren jarrita

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang bloga ( https://www.chenweiliang.com/ ) partekatu du "MySQL aldatzeko gehitu eremu anitz posizioak handitzeko? Aldatu zutabearen adierazpenaren erabileraren azalpen zehatza" lagungarria zaizu.

Ongi etorri artikulu honen esteka partekatzera:https://www.chenweiliang.com/cwl-495.html

Ongi etorri Chen Weiliang-en blogeko Telegram kanalera azken eguneraketak jasotzeko!

🔔 Izan zaitez kanalaren goiko direktorioan "ChatGPT Content Marketing AI Tool Erabilera Gida" baliotsua lortzen lehena! 🌟
📚 Gida honek balio handia du, 🌟Aukera arraroa da hau, ez galdu! ⏰⌛💨
Partekatu eta gustatzen bazaizu!
Zure partekatzea eta gustukoak dira gure etengabeko motibazioa!

 

发表 评论

Zure helbide elektronikoa ez da argitaratuko. 必填 项 已 用 * 标注

joan goian