Каталог артыкулаў
Як дадаць некалькі палёў з дапамогай аператара MySQL `ALTER ALTER ADD`? Падрабязнае тлумачэнне аператара `MODIUS Column`.
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)
Выдаліць, дадаць або змяніць палі табліцы
Наступная каманда выкарыстоўвае каманду ALTER з пунктам DROP, каб выдаліць слупок i створанай вышэй табліцы:
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)
Калі вам трэба ўказаць пазіцыю новага поля, вы можаце выкарыстоўваць ключавыя словы FIRST (усталёўваецца ў першы слупок) і AFTER field_name (усталёўваецца пасля пэўнага поля), прадстаўленыя MySQL .
Паспрабуйце наступны аператар ALTER TABLE і пасля паспяховага выканання выкарыстоўвайце SHOW COLUMNS для прагляду змяненняў у структуры табліцы:
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, каб дадаць поле і ўсталяваць пазіцыю.
Змяніць тып і імя поля
Калі вам трэба змяніць тып і назву поля, вы можаце выкарыстоўваць пункт MODIFY або CHANGE у камандзе ALTER.
Напрыклад, каб змяніць тып поля c з CHAR(1) на CHAR(10), выканайце наступную каманду:
mysql> ALTER TABLE testalter_tbl MODIFY c CHAR(10);
З пунктам CHANGE сінтаксіс вельмі адрозніваецца.Адразу пасля ключавога слова CHANGE знаходзіцца імя поля, якое вы хочаце змяніць, а затым укажыце імя і тып новага поля.Паспрабуйце наступны прыклад:
mysql> ALTER TABLE testalter_tbl CHANGE i j BIGINT;
mysql> ALTER TABLE testalter_tbl CHANGE j j INT;
Уплыў ALTER TABLE на пустыя значэнні і значэнні па змаўчанні
Калі вы змяняеце поле, вы можаце пазначыць, уключаць толькі яго ці ўсталёўваць значэнне па змаўчанні.
У наступным прыкладзе паказваецца, што поле j НЕ ПУСЛЯВОЕ, а значэнне па змаўчанні роўна 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)
Змяніць імя табліцы
Калі вам трэба змяніць назву табліцы даных, вы можаце выкарыстоўваць для гэтага пункт RENAME у аператары ALTER TABLE.
Паспрабуйце наступны прыклад, каб перайменаваць табліцу даных 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 - гэта поле, якое вы хочаце змяніць, type1 - зыходны тып поля, і вы можаце выбраць адно з first і after, што павінна быць відавочна, first размяшчаецца першым, а after - змяшчаецца пасля поля name2
alter table tableName modify name1 type1 first|after name2;
Спадзяюся, артыкул «Даданне некалькіх палёў у MySQL з дапамогай ALTER TABLE? Падрабязнае тлумачэнне аператара 'MODIATE COLLECT'», апублікаваны ў блогу Чэня Вэйляна ( https://www.chenweiliang.com/ ), будзе вам карысным.
Не саромейцеся падзяліцца спасылкай на гэты артыкул: https://www.chenweiliang.com/cwl-495.html
