MYSQL – ПРОМЯНА, ИЗПУСКАНЕ, ПРЕИМЕНУВАНЕ, ПРОМЕНЯНЕ
Какво представлява командата ALTER?
Както се казва Промяната е единствената константа
С времето бизнес изискванията също се променят. Тъй като бизнес изискванията се променят, дизайнът на базата данни също трябва да се промени.
MySQL осигурява ПРОМЕНИ функция, която ни помага включване на промените във вече съществуващия дизайн на база данни.
Командата alter се използва за модифициране на съществуваща база данни, таблица, изглед или други обекти на база данни, които може да се наложи да се променят по време на жизнения цикъл на база данни.
Да предположим, че сме завършили дизайна на нашата база данни и тя е внедрена. Потребителите на нашата база данни я използват и след това осъзнават, че част от жизненоважната информация е била пропусната във фазата на проектиране. Те не искат да загубят съществуващите данни, а просто искат да включат новата информация. Командата alter е полезна в такива ситуации. Можем да използваме командата alter, за да променим типа данни на поле от да кажем низ на числово, да променим името на полето с ново име или дори да добавим нова колона в таблица.
Alter – синтаксис
Основният синтаксис, използван за добавяне на колона към вече съществуваща таблица, е показан по-долу
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
ТУК
- „ПРОМИНЯВАНЕ НА ТАБЛИЦА `име_на_таблица`” е командата, която казва MySQL сървър, за да модифицира таблицата с име `table_name`.
- „ДОБАВИ КОЛОНА `име_на_колона` `тип_данни`” е командата, която казва MySQL сървър за добавяне на нова колона с име `column_name` с тип данни `data_type'.
Да предположим, че Myflix е въвел онлайн таксуване и плащания. За тази цел бяхме помолени да добавим поле за номера на кредитната карта в нашата таблица с членове. Можем да използваме командата ALTER, за да направим това. Нека първо да разгледаме структурата на таблицата на членовете, преди да направим каквито и да било изменения. Показаният по-долу скрипт ни помага да направим това.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Можем да използваме скрипта, показан по-долу, за да добавим ново поле към таблицата с членове.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Изпълнение на горния скрипт в MySQL срещу Myflixdb добавя нова колона с име номер на кредитна карта към таблицата членове с VARCHAR като тип данни. Изпълнението на скрипта show columns ни дава следните резултати.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
Както можете да видите от върнатите резултати, номерът на кредитната карта е добавен към таблицата с членове. Данните, съдържащи се в данните на членовете, не се засягат от добавянето на новата колона.
КАКВО Е КОМАНДАТА DROP?
Командата DROP се използва за
- Изтриване на база данни от MySQL сървър
- Изтриване на обект (като таблица, колона) от база данни.
Нека сега да разгледаме практически примери, които използват командата DROP.
В предишния ни пример за командата Alter добавихме колона с име номер на кредитна карта към таблицата на членовете.
Да предположим, че функционалността за онлайн таксуване ще отнеме известно време и искаме да ОТПУСНЕМЕ колоната за кредитна карта
Можем да използваме следния скрипт
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Изпълнението на горния скрипт премахва колоната credit_card_number от таблицата членове
Нека сега да разгледаме колоните в таблицата с членове, за да потвърдим дали нашата колона е премахната.
SHOW COLUMNS FROM `members`;
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb ни дава следните резултати.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Забележете, че номерът на кредитната карта е премахнат от списъка с полета.
ИЗПУСКАНЕ МАСА
Синтаксисът за DROP на таблица от базата данни е както следва –
DROP TABLE `sample_table`;
Да разгледаме един пример
DROP TABLE `categories_archive`;
Изпълнението на горния скрипт изтрива таблицата с име „категории_архив“ от нашата база данни.
КАКВО Е КОМАНДАТА ЗА ПРЕИМЕНУВАНЕ?
Командата за преименуване се използва за променете името на съществуващ обект на база данни (като таблица, колона) с ново име.
Преименуването на таблица не води до загуба на данни, съдържащи се в нея.
Синтаксис: -
Командата за преименуване има следния основен синтаксис.
RENAME TABLE `current_table_name` TO `new_table_name`;
Да предположим, че искаме да преименуваме таблицата movierentals на movie_rentals, можем да използваме скрипта, показан по-долу, за да постигнем това.
RENAME TABLE `movierentals` TO `movie_rentals`;
Изпълнението на горния скрипт преименува таблицата `movierentals` на `movie_rentals`.
Сега ще преименуваме таблицата movie_rentals обратно на оригиналното й име.
RENAME TABLE `movie_rentals` TO `movierentals`;
ПРОМЯНА НА КЛЮЧОВАТА ДУМА
Промяната на ключовите думи ви позволява
- Промяна на името на колоната
- Промяна на типа данни на колоната
- Промяна на ограниченията на колоните
Нека разгледаме един пример. Полето за пълни имена в таблицата с членове е от тип данни varchar и има ширина 150.
SHOW COLUMNS FROM `members`;
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb ни дава следните резултати.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Да предположим, че искаме
- Променете името на полето от „full_names“ на „fullname
- Променете го на тип данни char с ширина 250
- Добавете ограничение NOT NULL
Можем да постигнем това с помощта на командата за промяна, както следва –
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb и след това изпълнението на скрипта за показване на колони, даден по-горе, дава следните резултати.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
ПРОМЕНЯНЕ НА КЛЮЧОВАТА ДУМА
Ключовата дума MODIFY ви позволява да
- Промяна на типа данни на колоната
- Промяна на ограниченията на колоните
В примера CHANGE по-горе трябваше да променим името на полето, както и други подробности. Пропускането на името на полето от оператора CHANGE ще генерира грешка. Да предположим, че се интересуваме само от промяна на типа данни и ограниченията на полето, без да засягаме името на полето, можем да използваме ключовата дума MODIFY, за да постигнем това.
Скриптът по-долу променя ширината на полето „пълно име“ от 250 на 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb и след това изпълнението на скрипта за показване на колони, даден по-горе, дава следните резултати, показани по-долу.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
СЛЕД КЛЮЧОВА ДУМА
Да предположим, че искаме да добавим нова колона на определена позиция в таблицата.
Можем да използваме командата alter заедно с ключовата дума AFTER.
Скриптът по-долу добавя „date_of_registration“ точно след датата на раждане в таблицата на членовете.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Изпълнение на горния скрипт в MySQL workbench срещу myflixdb и след това изпълнението на скрипта за показване на колони, даден по-горе, дава следните резултати, показани по-долу.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
Oбобщение
- Командата alter се използва, когато искаме да модифицираме база данни или всеки обект, съдържащ се в базата данни.
- Командата drop се използва за изтриване на бази данни от MySQL сървър или обекти в база данни.
- Командата за преименуване се използва за промяна на името на таблица с ново име на таблица.
- Ключовата дума Change ви позволява да промените име на колона, тип данни и ограничения
- Ключовата дума за промяна ви позволява да променяте тип данни и ограничения на колона
- Ключовата дума After се използва за указване на позицията на колона в таблица