mysql alter table how add column table mysql
Сазнајте више о наредби МиСКЛ АЛТЕР Табле за додавање / испуштање колоне, индекса, ограничења, промене назива табеле итд. Са примерима:
МиСКЛ АЛТЕР наредба се користи за модификовање постојеће табеле додавањем нове колоне или уклањањем постојеће колоне или променом типа података колоне.
Једноставно речено, команда АЛТЕР се користи за модификовање структуре постојеће табеле додавањем / уклањањем / ажурирањем колона, преименовањем табела итд.
Готово је немогуће да су сви захтеви за одређену шему доступни унапред, стога је неопходно да постоји начин за ажурирање структуре табеле по потреби.
Шта ћете научити:
МиСКЛ АЛТЕР ТАБЛЕ
СИНТАКСА:
ALTER TABLE table_name (alter_option1, alter_option2...)
Овде је име_табеле име табеле на којој желимо да извршимо радњу промене. Једна или више опција алтер_оптионс могу се навести заједно са АЛТЕР ТАБЛЕ команда.
Погледајмо различите најчешће коришћене алтер_оптионс које нуди МиСКЛ.
Узорци података и постављање табеле
У сврху разумевања различитих употреба ДОБА наредба, користићемо 2 узорка табела - Запослени и Одељење који имају структуру као што је поменуто у наставку.
Такође додајемо неке лажне податке у обе табеле.
Међу ове табеле нисмо додали никаква ограничења за СТРАНЕ КЉУЧЕ. Научићемо да их додајемо помоћу наредбе АЛТЕР у примерима приказаним у одељцима испод док разговарамо.
CREATE TABLE IF NOT EXISTS Employee_Department ( id INT, name VARCHAR(100), PRIMARY KEY (id) ); CREATE TABLE IF NOT EXISTS Employee ( name VARCHAR(100), id INT, address VARCHAR(100), department_id INT, PRIMARY KEY (id) ); INSERT INTO `employee_department`(`name`,`id`) VALUES ('Information Technology',1),('HR',2),('Finance',3),('Accounting',4),('Housekeeping',5 ),('Security',6),('Support',7),('Contract Staff',8),('Sales',9),('Management',10); INSERT INTO `employee` (`id`,`name`,`address`) VALUES (1,'Alyssa Villarreal','Ap #558-3012 Nulla Street'),(2,'Vanna Parks','103-986 Cursus Rd.'),(3,'Quyn Byers','770 Nulla Avenue'),(4,'Kristen Hall','Ap #622-9967 Nullam St.'),(5,'Chelsea Stone','6017 Elementum St.'),(6,'Sacha Sweeney','239-7402 Etiam St.'),(7,'Sophia Charles','799 -745 Tellus. Rd.'),(8,'Jennifer Joyner','5803 Ligula. Avenue'),(9,'Mercedes Head','Ap #375-7999 Facilisis Rd.'),(10,'Reagan Holland','P.O. Box 625, 5744 Proin Avenue');
Различити начини употребе наредбе АЛТЕР Табле
Тхе МиСКЛ АЛТЕР Команда се може користити за више ствари попут додавања / испуштања колоне, додавања / испуштања индекса или ограничења и ажурирања саме табеле. Погледајмо различите сценарије уз помоћ примера.
ДОДАЈ КОЛОНУ
Са горњим примерима табела, додајте нову колону под називом ‘департмент_ид’ типа ИНТ у табелу Запослени.
ALTER TABLE employee ADD COLUMN department_id INT
ПУСТИ КОЛОНУ
Слично додавању нове колоне, МиСКЛ АЛТЕР наредба се може користити за испуштање постојеће колоне из табеле.
Покушајте да уклоните горе додану колону департмент_ид из табеле Емплоиее.
ALTER TABLE employee DROP COLUMN department_id
Имајте на уму да, док испуштате КОЛОНУ, само требате споменути име колоне, а не њен тип података.
Да бисте провјерили је ли наредба АЛТЕР успјела, можете покренути наредбу СХОВ ЦОЛУМНС.
SHOW COLUMNS FROM employee;
Излаз:
Поље | Тип | Нула | Кључ | Уобичајено | Ектра |
---|---|---|---|---|---|
име | варцхар (100) | ДА | НУЛА | ||
ид | инт | ДА | НУЛА | ||
адреса | варцхар (100) | ДА | НУЛА |
Сад можете да видите да у табели „Запослени“ нема колоне департмент_ид.
Додавање / испуштање ограничења
Погледајмо сада како се АЛТЕР може користити за додавање ограничења.
Команда АЛТЕР се може користити за додавање или уклањање ограничења за постојећу табелу. Погледајмо пример ОГРАНИЧЕЊА СТРАНОГ КЉУЧА које треба додати између 2 табеле.
Користићемо команду АЛТЕР да додамо СТРАНО ОГРАНИЧЕЊЕ КЉУЧА у табелу Емплоиее за табелу воркер_департмент.
Додајте нову колону под називом департмент_ид у табелу Емплоиее.
ALTER TABLE employee ADD COLUMN department_id INT
Сада додајте ограничење ФОРЕИГН КЕИ.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
Да бисмо потврдили ово ограничење, можемо користити команду СХОВ да бисмо видели дефиницију табеле.
SHOW CREATE TABLE employee;
Сто | Направи табелу |
---|---|
запослени | СТВОРИ ТАБЕЛУ `запосленик` ( `наме` варцхар (100) ДЕФАУЛТ НУЛЛ, `ид` инт ДЕФАУЛТ НУЛЛ, `аддресс` варцхар (100) ДЕФАУЛТ НУЛЛ, `департмент_ид` инт ДЕФАУЛТ НУЛЛ, КЉУЧ `ИД_ одељења` (` ИД_ одељења`), ОГРАНИЧЕЊЕ `воркер_ибфк_1` СТРАНИ КЉУЧ (` департмент_ид`) ЛИТЕРАТУРА `воркер_департмент` (` ид`) ) МОТОР = ИнноДБ ЗАДАТАК ШАРСЕТ = утф8мб4 ЦОЛЛАТЕ = утф8мб4_0900_аи_ци |
Открићете да постоји ограничење СТРАНИХ КЉУЧА створено у колони департмент_ид.
Погледајмо сада како помоћу команде АЛТЕР можемо уклонити ограничење ФОРЕИГН КЕИ које смо управо додали.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Имајте на уму да ћете морати да користите назив ограничења које је креирано. Дакле, у горњем излазу наредбе СХОВ можете видети име ограничења које је МиСКЛ креирао за ограничење ФОРЕИГН КЕИ је „ воркер_ибфк_1 ’
Покрените наредбу СХОВ да бисте видели да ли је ограничење уклоњено како је приказано доле:
SHOW CREATE TABLE employee;
Сто | Направи табелу |
---|---|
запослени | СТВОРИ ТАБЕЛУ `запосленик` ( `наме` варцхар (100) ДЕФАУЛТ НУЛЛ, `ид` инт ДЕФАУЛТ НУЛЛ, `аддресс` варцхар (100) ДЕФАУЛТ НУЛЛ, `департмент_ид` инт ДЕФАУЛТ НУЛЛ, КЉУЧ `ИД_ одељења` (` ИД_ одељења`) ) МОТОР = ИнноДБ ЗАДАТАК ШАРСЕТ = утф8мб4 ЦОЛЛАТЕ = утф8мб4_0900_аи_ци |
Додавање / испуштање индекса
МиСКЛ АЛТЕР наредба табле такође вам омогућава да креирате или испустите ИНДЕКСЕ према табели.
Могу бити четири различите врсте индекса које се могу додати помоћу наредбе АЛТЕР ТАБЛЕ.
# 1) Додајте ПРИМАРНИ КЉУЧ: Ова команда додаје ОСНОВНИ КЉУЧ индекс према датој колони (или колонама)
У доњем примеру користите табелу Запослени и додајте ПРИМАРНИ КЉУЧНИ индекс у колону „Ид“.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Додајте ЈЕДИНСТВЕНО: Додаје или креира јединствени индекс према датим колонама
Претпоставимо хипотетички да само желимо јединствена имена у табели. Додајте УНИКУЕ индекс у колону „име“ у табели Запослени као што је приказано доле.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Додајте ИНДЕКС: Додајте обични индекс према било којој колони.
Додајте нормалан индекс у поље „адреса“ у табели Запослени.
ALTER TABLE employee ADD INDEX (name);
# 4) Додајте ФУЛЛТЕКСТ Индек: Ово је посебна врста индекса која се користи за претраживање текста.
Додаћемо индекс ФУЛЛТЕКСТ на вредности колоне „име“ у табели запослених.
ALTER TABLE employee ADD FULLTEXT(address);
За сва горе наведена 4 примера можемо покренути ПОКАЖИ СТВАРАЊЕ ТАБЕЛЕ наредба да бисте добили детаље о креираним индексима.
SHOW CREATE TABLE employee;
Сто | Направи табелу |
---|---|
запослени | СТВОРИ ТАБЕЛУ `запосленик` ( `наме` варцхар (100) ДЕФАУЛТ НУЛЛ, `ид` инт НИЈЕ НУЛЛ, `аддресс` варцхар (100) ДЕФАУЛТ НУЛЛ, `департмент_ид` инт ДЕФАУЛТ НУЛЛ, ОСНОВНИ КЉУЧ (`ид`), ЈЕДИНСТВЕНИ КЉУЧ `наме` (` име`), КЉУЧ `наме_2` (` име`), ФУЛЛТЕКСТ КЕИ `адреса` (` адреса`) ) МОТОР = ИнноДБ ЗАДАТАК ШАРСЕТ = утф8мб4 ЦОЛЛАТЕ = утф8мб4_0900_аи_ци |
У горњем излазу приметићете да су сви индекси креирани према вредности у колони цреате_табле.
Слично креирању индекса, наредба АЛТЕР такође се може користити за испуштање постојећих индекса из табеле.
Пример:
ALTER TABLE employee DROP INDEX address;
Горња команда ће спустити индекс ФУЛЛТЕКСТ који смо додали за поље адресе.
Обратите пажњу на име 'адреса'. Ово би требало да се подудара са именом индекса у излазу датотеке ПОКАЖИ СТВАРАЊЕ ТАБЕЛЕ команда.
Промена подразумеване вредности колоне
АЛТЕР ТАБЛЕ наредба се такође може користити за ПОСТАВЉАЊЕ / промену ДЕФАУЛТ вредности за постојећу колону.
скл питања и одговори за искусне
Погледајмо пример где ћемо променити подразумевану вредност колоне департмент_ид у „1“. Овим би сви нови уметци у ову табелу променили / поставили вредност за колону департмент_ид на 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Додајте нови запис у табелу запослених:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
А сада потражимо одсек_ид за овај запис и видимо која је вредност постављена.
SELECT department_id FROM employee where id=11 //Output department_id 1
Ажурирање назива табеле
МиСКЛ АЛТЕР Наредба табле такође се може користити за ажурирање имена постојеће табеле. Понекад је потребно ажурирати структуру шеме, што може укључивати промену / ажурирање имена табела.
Пример - Табелу ћемо преименовати у `запослени_детаљи`.
ALTER TABLE table_name RENAME TO new_table_name;
Често постављана питања
П # 1) Како да променим структуру табеле у МиСКЛ-у?
Одговор: МиСКЛ пружа наредбу АЛТЕР за промену структуре постојеће табеле у МиСКЛ-у. Помоћу наредбе АЛТЕР можете изводити разне операције попут,
- Додавање / испуштање колоне
- Додавање / уклањање индекса или ограничења
- Преименовање стола
П # 2) Да ли наредба АЛТЕР закључава сто?
Одговор: То може зависити од верзија - код старијих верзија МиСКЛ закључавање табеле током извршавања израза АЛТЕР. Генерално, закључавање би се догодило, тј. Свако читање и писање током АЛТЕР.
На пример - Додавањем нове колоне за постојећу табелу додирнули би се сви редови табеле у коју се додаје колона, а када табела има број записа у милионима, операцији АЛТЕР може бити потребно неко време да се изврши. У овом случају закључавање читања / писања било би скупо јер би база података била недоступна и неприступачна.
П # 3) Можемо ли додати више колона у табелу АЛТЕР?
Одговор: Да, наредба АЛТЕР се може користити за додавање више колона у оквиру једне изјаве.
Погледајмо пример где имамо табелу Запослени са колонама ид, именом и адресом и претпоставимо да желимо да додамо још 2 колоне са именом - највиша_образовање (тип варцхар) и телефонски број (тип варцхар)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Погледајмо информације у табели
SHOW COLUMNS FROM employee;
Излаз:
Поље | Тип | Нула | Кључ | Уобичајено | Ектра |
---|---|---|---|---|---|
име | варцхар (100) | ДА | УНИТЕД | НУЛА | |
ид | инт | НЕМОЈ | ПРИ | НУЛА | |
адреса | варцхар (100) | ДА | НУЛА | ||
департмент_ид | инт | ДА | 1 | ||
највиша_образованост | варцхар (50) | ДА | НУЛА | ||
Број телефона | варцхар (20) | ДА | НУЛА |
У горњем излазу можете видети колоне, додате су највиша_образовање и број телефона.
Закључак
У овом упутству смо сазнали о различитим начинима употребе МиСКЛ АЛТЕР Команда табеле. АЛТЕР је важна наредба јер се може користити у више сврха да АЛТЕРИРА структуру постојеће табеле у МиСКЛ-у.
Може се користити за ствари попут - додавања / уклањања колоне, додавања / испуштања индекса или ограничења, а може се користити и за преименовање постојеће табеле.
Свако ко учи МиСКЛ треба да има детаљно разумевање наредбе табеле АЛТЕР, јер се она углавном користи током фаза одржавања база података где је потребно изменити постојећу шему табеле.
Препоручено читање
- МиСКЛ Водич за креирање табела са примерима
- МиСКЛ Убаци у табелу - Убаци синтаксу и примере изјаве
- Типови података МиСКЛ | Који су различити типови података у МиСКЛ-у
- Основи МиСКЛ ОГРАНИЧЕЊА СТРАНИХ КЉУЧА СА Примерима
- МиСКЛ ЈОИН Туториал: Унутрашњи, спољашњи, попречни, леви, десни и сопствени
- МиСКЛ Цреате Датабасе - Како створити базу података у МиСКЛ-у
- 40 најбољих питања и одговора за интервју за МиСКЛ (2021 питање)
- Табела хеширања у Ц ++: Програми за примену хеш табела и хеш карата