mysql alter table how add column table mysql
Научете за командата MySQL ALTER Table за добавяне / пускане на колона, индекс, ограничение, промяна на името на таблицата и др. С примери:
MySQL ALTER команда се използва за модифициране на съществуваща таблица чрез добавяне на нова колона или премахване на съществуваща колона или промяна на типа данни на колоната.
Просто казано, командата ALTER се използва за модифициране на структурата на съществуваща таблица чрез добавяне / премахване / актуализиране на колони, преименуване на таблици и т.н.
Почти невъзможно е всички изисквания за дадена схема да са налични предварително, поради което е наложително да има начин за актуализиране на структурата на таблицата, ако е необходимо.
Какво ще научите:
MySQL ALTER TABLE
СИНТАКСИС:
ALTER TABLE table_name (alter_option1, alter_option2...)
Тук table_name е името на таблицата, върху която искаме да извършим действието alter. Един или повече алтернативни опции могат да бъдат посочени заедно с ALTER TABLE команда.
Нека разгледаме различни широко използвани алтернативни опции, предоставени от MySQL.
Примерни данни и настройка на таблица
С цел разбиране на различни употреби на ВЪЗРАСТ команда, ще използваме 2 примерни таблици - Служител и отдел със структурата, както е споменато по-долу.
Също така добавяме някои фиктивни данни към двете таблици.
Не сме добавили никакви ограничения за ЧУЖДЕСТРАННИ КЛЮЧОВЕ сред тези таблици. Ще се научим да ги добавяме с помощта на командата ALTER в примерите, показани в долните раздели, докато обсъждаме.
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
The MySQL ALTER Командата може да се използва за множество неща като добавяне / пускане на колона, добавяне / пускане на индекс или ограничение и актуализиране на самата таблица. Нека разгледаме различни сценарии с помощта на примери.
ДОБАВЕТЕ КОЛОНА
С горните примерни таблици, нека добавим нова колона с име ‘department_id’ от тип INT в таблицата Служител.
ALTER TABLE employee ADD COLUMN department_id INT
КОЛОНА ЗА ПАДАНЕ
Подобно на добавянето на нова колона, MySQL ALTER команда може да се използва за изпускане на съществуваща колона от таблицата.
Опитайте се да премахнете добавената по-горе колона department_id от таблицата на служителите.
ALTER TABLE employee DROP COLUMN department_id
Моля, обърнете внимание, че докато отпадате КОЛОНА, просто трябва да споменете името на колоната, а не нейния тип данни.
За да проверите дали командата ALTER е успешна, можете да изпълните командата SHOW COLUMNS.
SHOW COLUMNS FROM employee;
Изход:
Поле | Тип | Нула | Ключ | По подразбиране | Екстра |
---|---|---|---|---|---|
име | varchar (100) | ДА | НУЛА | ||
документ за самоличност | инт | ДА | НУЛА | ||
адрес | varchar (100) | ДА | НУЛА |
Вече можете да видите, че в таблицата ‘Служител’ няма колона_отдел.
Добавяне / пускане на ограничения
Нека сега видим как ALTER може да се използва за добавяне на ограничение.
Командата ALTER може да се използва за добавяне или премахване на ограничения за съществуваща таблица. Нека да видим пример за ОГРАНИЧЕНИЕ НА ВЪНШНИ КЛЮЧОВЕ, което трябва да бъде добавено между 2 таблици.
Ще използваме командата ALTER, за да добавим FOREIGN KEY CONSTRAINT в таблицата Employee за таблицата worker_department.
Добавете нова колона с име department_id в таблицата на служителя.
ALTER TABLE employee ADD COLUMN department_id INT
Сега добавете ограничението FOREIGN KEY.
ALTER TABLE employee ADD FOREIGN KEY (department_id) REFERENCES employee_department(id)
За да проверим това ограничение, можем да използваме командата SHOW, за да видим дефиницията на таблицата.
SHOW CREATE TABLE employee;
Таблица | Създаване на таблица |
---|---|
служител | СЪЗДАЙТЕ ТАБЛИЦА `служител` ( `name` varchar (100) ПО подразбиране NULL, `id` int ПО подразбиране NULL, `address` varchar (100) ПО подразбиране NULL, `department_id` int ПО подразбиране NULL, КЛЮЧ 'department_id' ('отдел_id'), ОГРАНИЧАВАНЕ `worker_ibfk_1` ВЪНШЕН КЛЮЧ (` department_id`) РЕФЕРЕНЦИИ `worker_department` (` id`) ) ДВИГАТЕЛ = ИНФОРМАЦИОННА ШАРШЕТКА по подразбиране = utf8mb4 СЪБИРАНЕ = utf8mb4_0900_ai_ci |
Ще откриете, че има ограничение FOREIGN KEY, създадено в колоната department_id.
Нека сега видим как можем да използваме командата ALTER, за да премахнем ограничението FOREIGN KEY, което току-що добавихме.
ALTER TABLE employee DROP CONSTRAINT employee_ibfk_1
Моля, обърнете внимание, че ще трябва да използвате името на създаденото ограничение. Така че в горния изход на командата SHOW можете да видите името на ограничението, което MySQL е създало за ограничението FOREIGN KEY е „ worker_ibfk_1 ’
Изпълнете командата SHOW, за да видите дали ограничението е премахнато, както е показано по-долу:
SHOW CREATE TABLE employee;
Таблица | Създаване на таблица |
---|---|
служител | СЪЗДАЙТЕ ТАБЛИЦА `служител` ( `name` varchar (100) ПО подразбиране NULL, `id` int ПО подразбиране NULL, `address` varchar (100) ПО подразбиране NULL, `department_id` int ПО подразбиране NULL, КЛЮЧ 'отдел_ид' ('отдел_ид') ) ДВИГАТЕЛ = ИНФОРМАЦИОННА ШАРШЕТКА по подразбиране = utf8mb4 СЪБИРАНЕ = utf8mb4_0900_ai_ci |
Индекси за добавяне / пускане
MySQL ALTER Командата table позволява също да създавате или пускате INDEXES спрямо таблица.
Може да има четири различни типа индекси, които могат да бъдат добавени с помощта на командата ALTER TABLE.
# 1) Добавете ОСНОВЕН КЛЮЧ: Тази команда добавя индекс PRIMARY KEY спрямо дадена колона (или колони)
В примера по-долу използвайте таблицата Employee и добавете индекса PRIMARY KEY към колоната ‘Id’.
ALTER TABLE employee ADD PRIMARY KEY (id);
# 2) Добавете УНИКАЛЕН: Добавя или създава уникален индекс спрямо дадена колона (и)
Да предположим, че хипотетично просто искаме уникални имена в таблица. Добавете УНИКАЛЕН индекс в колоната ‘name’ в таблицата на служителя, както е показано по-долу.
ALTER TABLE employee ADD UNIQUE (name);
# 3) Добавяне на ИНДЕКС: Добавете обикновен индекс към която и да е колона.
Добавете нормален индекс в полето „адрес“ в таблицата на служителя.
ALTER TABLE employee ADD INDEX (name);
# 4) Добавяне на индекс FULLTEXT: Това е специален тип индекс, който се използва за търсене на текст.
Ще добавим индекс FULLTEXT върху стойностите на колоната ‘name’ в таблицата Employee.
ALTER TABLE employee ADD FULLTEXT(address);
За всички горни 4 примера можем да стартираме ПОКАЖЕТЕ СЪЗДАВАНЕ НА МАСА команда, за да получите подробности за създадените индекси.
SHOW CREATE TABLE employee;
Таблица | Създаване на таблица |
---|---|
служител | СЪЗДАЙТЕ ТАБЛИЦА `служител` ( `name` varchar (100) ПО подразбиране NULL, `id` int NOT NULL, `address` varchar (100) ПО подразбиране NULL, `department_id` int ПО подразбиране NULL, ОСНОВЕН КЛЮЧ (`id`), УНИКАЛЕН КЛЮЧ `name` (` име`), КЛЮЧ 'name_2' ('име'), ПЪЛНОТЕКСТЕН КЛЮЧ 'адрес' ('адрес') ) ДВИГАТЕЛ = ИНФОРМАЦИОННА ШАРШЕТКА по подразбиране = utf8mb4 СЪБИРАНЕ = utf8mb4_0900_ai_ci |
В горния изход ще забележите, че всички индекси са създадени според стойността в колоната create_table.
Подобно на Създаване на индекси, командата ALTER може да се използва и за изпускане на съществуващите индекси от таблицата.
Пример:
ALTER TABLE employee DROP INDEX address;
Горната команда ще ИЗПАДЕ ПЪЛНИЯТ индекс, който сме добавили за адресното поле.
Забележете името ‘Адрес’. Това трябва да съвпада с името на индекса в изхода на ПОКАЖЕТЕ СЪЗДАВАНЕ НА МАСА команда.
Промяна на стойността по подразбиране на колона
ALTER TABLE Командата може да се използва и за НАСТРОЙКА / Промяна на стойността по подразбиране за съществуваща колона.
е мрежов ключ, същият като парола
Нека да разгледаме пример, при който ще променим стойността по подразбиране на колоната_отдел на '1'. С това всички нови вмъквания в тази таблица ще променят / зададат стойността за колоната department_id на 1
ALTER TABLE employee ALTER department_id SET DEFAULT 1
Добавете нов запис към таблицата на служителите:
INSERT INTO `employee` (`id`,`name`,`address`) VALUES (11,'Saket Sharma','NB 23 Domlur')
А сега нека направим запитване до department_id за този запис и да видим каква е зададената стойност.
SELECT department_id FROM employee where id=11 //Output department_id 1
Актуализиране на името на таблицата
MySQL ALTER Командата table може също да се използва за актуализиране на името на съществуваща таблица. Понякога се изисква да се актуализира структурата на схемата, което може да включва промяна / актуализиране на имената на таблиците.
Пример - Ще преименуваме таблицата `служител` на` служител_подробности`.
ALTER TABLE table_name RENAME TO new_table_name;
често задавани въпроси
В # 1) Как да променя структурата на таблицата в MySQL?
Отговор: MySQL предоставя командата ALTER за промяна на структурата на съществуваща таблица в MySQL. Можете да извършвате различни операции с команда ALTER като,
- Добавяне / отпадане на колона
- Добавяне / премахване на индекс или ограничение
- Преименуване на таблица
В # 2) Командата ALTER заключва ли таблица?
Отговор: Това може да зависи от версии - при по-старите версии на MySQL Заключване на таблица по време на изпълнението на израза ALTER. По принцип заключването ще се случи, т.е. всяко четене и запис по време на ALTER.
Например - Добавянето на нова колона за съществуваща таблица би докоснало всички редове на таблицата, в която се добавя колона и когато таблицата има брой записи в милиони, операцията ALTER може да отнеме известно време за изпълнение. В този случай заключването, което се случва при четене / запис, би било скъпо, тъй като базата данни ще бъде недостъпна и недостъпна.
В # 3) Можем ли да добавим повече от една колона в таблицата ALTER?
Отговор: Да, командата ALTER може да се използва за добавяне на множество колони в рамките на един оператор.
Нека да разгледаме пример, където имаме таблица Служител с колони id, име и адрес и да предположим, че искаме да добавим още 2 колони с име - най-високото_образование (тип varchar) и номер на телефона (тип varchar)
ALTER TABLE employee ADD highest_education VARCHAR(50), ADD phone_number VARCHAR(20);
Нека да разгледаме информацията в таблицата
SHOW COLUMNS FROM employee;
Изход:
Поле | Тип | Нула | Ключ | По подразбиране | Екстра |
---|---|---|---|---|---|
име | varchar (100) | ДА | ОБЕДИНЕНО | НУЛА | |
документ за самоличност | инт | НЕДЕЙ | PRI | НУЛА | |
адрес | varchar (100) | ДА | НУЛА | ||
department_id | инт | ДА | един | ||
най-високото образование | varchar (50) | ДА | НУЛА | ||
телефонен номер | varchar (20) | ДА | НУЛА |
В изхода по-горе можете да видите колоните, са добавени най-високото_образование и телефонният_номер.
Заключение
В този урок научихме за различните употреби на MySQL ALTER Командна таблица. ALTER е важна команда, тъй като може да се използва за множество цели за ALTER структурата на съществуваща таблица в MySQL.
Може да се използва за неща като - добавяне / премахване на колона, добавяне / пускане на индекси или ограничения и може да се използва дори за преименуване на съществуваща таблица.
Всеки, който учи MySQL, трябва да има задълбочено разбиране на командата ALTER таблица, тъй като тя се използва предимно по време на фазите на поддръжка на бази данни, където се изисква да се промени съществуващата схема на таблица.
Препоръчително четене
- MySQL Създаване на урок за таблици с примери
- MySQL Вмъкване в таблица - Вмъкване на изявление Синтаксис и примери
- Типове данни на MySQL | Какви са различните типове данни в MySQL
- Основи на MySQL ОГРАНИЧЕНИЕ НА ВЪНШНИТЕ КЛЮЧОВЕ С ПРИМЕРИ
- Урок за присъединяване на MySQL: Вътрешен, Външен, Кръстосан, Ляв, Десен и Аз
- MySQL Създаване на база данни - Как да създадете база данни в MySQL
- Топ 40 най-добри въпроса и отговори за интервю за MySQL (2021 въпроса)
- Хеш таблица в C ++: Програми за внедряване на хеш таблица и хеш карти