MySQL бир нече талаа позицияларын көбөйтүү үчүн кошууну өзгөртөсүзбү? Өзгөртүү мамычасын колдонуунун кеңири түшүндүрмөсү

MySQL бир нече талаа позицияларын көбөйтүү үчүн кошууну өзгөртүү керекпи? Өзгөртүү мамычасын колдонуунун кеңири түшүндүрмөсү

MySQL ALTER буйругу

Бизге маалымат таблицасынын атын өзгөртүү керек болгондо же маалымат таблицасынын талааларын өзгөртүү керек болгондо, MySQL ALTER буйругун колдонушубуз керек.

Бул окуу куралын баштоодон мурун, келгиле, төмөнкү аталыштагы таблица түзөлү: 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 тилкесин түшүрүү үчүн DROP пункту менен ALTER буйругун колдонот:

mysql> ALTER TABLE testalter_tbl  DROP i;

Маалымат таблицасында бир гана талаа калса, DROP талааны жок кылуу үчүн колдонулбайт.

ADD пункту MySQLде маалыматтар таблицасына мамычаларды кошуу үчүн колдонулат.Төмөнкү мисал i талаасын testalter_tbl таблицасына кошот жана берилиштердин түрүн аныктайт:

mysql> ALTER TABLE testalter_tbl ADD i INT;

Жогорудагы буйрукту аткаргандан кийин i талаасы маалыматтар таблицасынын талааларынын аягына автоматтык түрдө кошулат.

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)

Жаңы талаанын жайгашкан жерин көрсөтүү керек болсо, MySQL тарабынан берилген FIRST ачкыч сөзүн колдонсоңуз болот (коюлганЖайгаштыруубиринчи тилке), AFTER талаа аты (талаадан кийин коюлган).

Төмөнкү ALTER TABLE операторун байкап көрүңүз жана ийгиликтүү аткарылгандан кийин, таблицанын структурасындагы өзгөрүүлөрдү көрүү үчүн КӨРСӨТҮҮ КОМАНДАРЫН колдонуңуз:

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 жана AFTER ачкыч сөздөрү ADD пунктунда гана колдонулат, андыктан эгер сиз маалымат таблицасы талаасынын абалын баштапкы абалга келтиргиңиз келсе, адегенде талааны жок кылуу үчүн DROP, андан кийин талааны кошуу жана позицияны коюу үчүн ADD колдонушуңуз керек.


Талаанын түрүн жана атын өзгөртүү

Эгер талаанын түрүн жана атын өзгөртүү керек болсо, ALTER буйругундагы MODIFY же CHANGE сүйлөмүн колдоно аласыз.

Мисалы, c талаасынын түрүн CHAR(1)ден CHAR(10)га өзгөртүү үчүн төмөнкү буйрукту аткарыңыз:

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

CANGE сүйлөмү менен синтаксис такыр башкача.CHANGE ачкыч сөзүнөн кийин дароо сиз өзгөрткүңүз келген талаанын аты болот, андан кийин жаңы талаа атын жана түрүн көрсөтүңүз.Төмөнкү мисалды колдонуп көрүңүз:

mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;

mysql> ALTER TABLE testalter_tbl CHANGE j j INT;

ALTER TABLEнин нөл жана демейки маанилерге тийгизген таасири

Талааны өзгөрткөндө, сиз гана кошууну же демейки маанини коюуну белгилей аласыз.

Төмөнкү мисал j талаасынын NULL ЭМЕС экенин жана демейки маани 100 экенин көрсөтөт.

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

Эгер сиз демейки маанини койбосоңуз, MySQL автоматтык түрдө талааны демейки боюнча NULL кылып коёт.


Талаанын демейки маанисин өзгөртүү

Сиз талаанын демейки маанисин өзгөртүү үчүн ALTER колдоно аласыз, төмөнкү мисалдарды колдонуп көрүңүз:

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 буйругун DROP пункту менен талаанын демейки маанисин алып салуу үчүн да колдонсоңуз болот:

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:

Маалымат таблицанын түрүн өзгөртүү ALTER буйругун жана TYPE пунктун колдонуу менен жүргүзүлүшү мүмкүн.Төмөнкү мисалды колдонуп көрүңүз, анда testalter_tbl таблицасынын түрүн MYISAM кылып өзгөртөбүз:

Эскертүү:Берилиштер таблицасынын түрүн көрүү үчүн, сиз 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)

Таблица атын өзгөртүү

Эгер маалымат таблицасынын атын өзгөртүү керек болсо, анда ALTER TABLE операторундагы RENAME пунктун колдонсоңуз болот.

Testalter_tbl маалымат таблицасын alter_tbl деп өзгөртүү үчүн төмөнкү мисалды колдонуп көрүңүз:

mysql> ALTER TABLE testalter_tbl RENAME TO alter_tbl;

ALTER буйругун MySQL маалымат таблицаларында индекстерди түзүү жана жок кылуу үчүн да колдонсо болот, биз кийинки бөлүмдөрдө тааныштырабыз.

башка колдонууларды өзгөртүү

Сактоо кыймылдаткычын өзгөртүү: аны myisamга өзгөртүү

alter table tableName engine=myisam;

Чет элдик ачкыч чектөөсүн алып салуу: keyName – бул чет элдик ачкыч лакап аты

alter table tableName drop foreign key keyName;

Өзгөртүлгөн талаанын салыштырмалуу абалы: бул жерде name1 - өзгөртүлүүчү талаа, түрү1 - талаанын түпнуска түрү, биринчи жана кийин тандалышы мүмкүн, ачык-айкын болушу керек, биринчи орунда турат, ал эми кийин аталыш2ден кийин жайгаштырылат. талаа

alter table tableName modify name1 type1 first|after name2;

Hope Chen Weiliang блогу ( https://www.chenweiliang.com/ ) бөлүштү "MySQL бир нече талаа позицияларын көбөйтүү үчүн кошууну өзгөртөсүзбү? Мамычаны өзгөртүү билдирүүсүн колдонуунун деталдуу түшүндүрмөсү" сизге пайдалуу.

Бул макаланын шилтемесин бөлүшүүгө кош келиңиз:https://www.chenweiliang.com/cwl-495.html

Акыркы жаңылыктарды алуу үчүн Чен Вейляндын блогунун Telegram каналына кош келиңиз!

🔔 Каналдын башкы каталогунан баалуу "ChatGPT Content Marketing AI куралын колдонуу боюнча колдонмону" биринчилерден болуп алыңыз! 🌟
📚 Бул колдонмо чоң баалуулуктарды камтыйт, 🌟Бул сейрек кездешүүчү мүмкүнчүлүк, аны өткөрүп жибербеңиз! ⏰⌛💨
Бөлүшүп, жакса лайк!
Сиздин бөлүшүүңүз жана лайктарыңыз биздин үзгүлтүксүз мотивациябыз!

 

发表 评论

Электрондук почта дарегиңиз жарыяланбайт. Милдеттүү талаалар колдонулат * 标注

өйдө сыдырыңыз