MYSQL - ALTER, DROP, RENAME, MODIFY

Anonim

КАКВО Е АЛТЕРНАТА ЗАПОВЕД?

Както се казва Промяната е единствената константа

С времето се променят и бизнес изискванията. Тъй като бизнес изискванията се променят, дизайнът на базата данни също трябва да се промени.

MySQL предоставя функцията ALTER, която ни помага да включим промените във вече съществуващия дизайн на базата данни .

Командата alter се използва за модифициране на съществуваща база данни, таблица, изглед или други обекти на база данни, които може да се наложи да се променят по време на жизнения цикъл на база данни.

Да предположим, че сме завършили дизайна на нашата база данни и той е приложен. Потребителите на нашата база данни я използват и след това осъзнават, че част от жизненоважната информация е пропусната във фазата на проектиране. Те не искат да загубят съществуващите данни, а просто искат да включат новата информация. Командата alter е полезна в такива ситуации. Можем да използваме командата alter, за да променим типа данни на дадено поле от кажи низ в числово, да променим името на полето на ново име или дори да добавим нова колона в таблица.

Alter- синтаксис

Основният синтаксис, използван за добавяне на колона към вече съществуваща таблица, е показан по-долу

ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;

ТУК

  • "ALTER TABLE` table_name` " е командата, която казва на MySQL сървъра да модифицира таблицата с име" table_name`.
  • „ДОБАВЯНЕ НА КОЛОНА„ име_на колона “„ тип_данни “ е командата, която казва на MySQL сървъра да добави нова колона с име„ колона_име “с тип данни„ тип на данните “.

Да предположим, че 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
email varchar(255) YES NULL

Можем да използваме скрипта, показан по-долу, за да добавим ново поле към таблицата на членовете.

ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);

Изпълнението на горния скрипт в MySQL срещу Myflixdb добавя нова колона, наречена номер на кредитна карта към таблицата на членовете с VARCHAR като тип данни. Изпълнението на скрипта за показване на колони ни дава следните резултати.

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
email varchar(255) YES NULL
credit_card_number varchar(25) YES

Както можете да видите от върнатите резултати, номерът на кредитната карта е добавен към таблицата на членовете. Данните, съдържащи се в данните на членовете, не се влияят от добавянето на новата колона.

КАКВО Е КОМАНДАТА ЗА КАПАНЕ?

Командата DROP се използва за

  1. Изтрийте база данни от MySQL сървър
  2. Изтрийте обект (като Таблица, Колона) от база данни.

Нека сега разгледаме практически примери, които използват командата DROP.

В предишния ни пример за Alter Command добавихме колона с име на кредитна карта към таблицата на членовете.

Да предположим, че функцията за онлайн фактуриране ще отнеме известно време и ние искаме да ИЗПУСНЕМ колоната на кредитната карта

Можем да използваме следния скрипт

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
email varchar(255) YES NULL

Забележете, че номерът на кредитната карта е отпаднал от списъка с полета.

ТАБЛИЦА ЗА ПАДАНЕ

Синтаксисът за DROP таблица от базата данни е както следва -

DROP TABLE `sample_table`;

Нека разгледаме един пример

DROP TABLE `categories_archive`;

Изпълнението на горния скрипт изтрива таблицата, наречена `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`;

ПРОМЯНА НА КЛЮЧОВАТА ДУМА

Промяна на ключовите думи ви позволява да

  1. Промяна на името на колона
  2. Промяна на типа данни на колона
  3. Промяна на ограниченията на колони

Нека разгледаме един пример. Полето с пълните имена в таблицата на членовете е от тип данни 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
email varchar(255) YES NULL

Да предположим, че искаме

  1. Променете името на полето от "пълни имена" на "пълно име
  2. Променете го на тип данни с ширина 250
  3. Добавете ограничение 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
email varchar(255) YES NULL

ИЗМЕНЕТЕ КЛЮЧОВАТА ДУМА

Ключовата дума MODIFY ви позволява да

  1. Промяна на типа данни на колона
  2. Промяна на ограниченията на колони

В примера CHANGE по-горе трябваше да променим името на полето, както и други подробности. Пропускането на името на полето от израза CHANGE ще генерира грешка. Да предположим, че се интересуваме само от промяна на типа данни и ограниченията в полето, без да се засяга името на полето, можем да използваме ключовата дума MODIFY, за да постигнем това.

Скриптът по-долу променя ширината на полето „fullname“ от 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
email 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
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Обобщение

  • Командата alter се използва, когато искаме да модифицираме база данни или който и да е обект, съдържащ се в базата данни.
  • Командата drop се използва за изтриване на бази данни от MySQL сървър или обекти в базата данни.
  • Командата за преименуване се използва за промяна на името на таблица в ново име на таблица.
  • Ключовата дума Change ви позволява да промените име на колона, тип данни и ограничения
  • Промяна на ключова дума ви позволява да модифицирате тип данни и ограничения на колона
  • Ключовата дума After се използва за задаване на позиция на колона в таблица