MYSQL – ALTER, DROP, RENAME, MODIFY

Що таке команда 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
email 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
email varchar(255) YES NULL
credit_card_number varchar(25) YES

Як ви бачите з отриманих результатів, номер кредитної картки додано до таблиці учасників. Додавання нового стовпця не впливає на дані, які містяться в даних учасників.

ЩО ТАКЕ КОМАНДА СКИДАННЯ?

Команда DROP використовується для

  1. Видалити базу даних із MySQL сервер
  2. Видалити об’єкт (наприклад, таблицю, стовпець) із бази даних.

Давайте тепер розглянемо практичні приклади використання команди 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
email varchar(255) YES NULL

Зверніть увагу, що номер кредитної картки вилучено зі списку полів.

СТОЛ

Синтаксис ВИДАЛЕННЯ таблиці з бази даних такий:

DROP TABLE `sample_table`;

Давайте розглянемо приклад

DROP TABLE `categories_archive`;

Виконання наведеного вище сценарію видаляє таблицю під назвою ` категорій_архів ` з нашої бази даних.

ЩО ТАКЕ КОМАНДА RENAME?

Команда rename використовується для змінити ім’я існуючого об’єкта бази даних (наприклад, Таблиця, Стовпець) на нове ім’я.

Перейменування таблиці не призводить до втрати будь-яких даних, які містяться в ній.

Синтаксис: -

Команда rename має такий базовий синтаксис.

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. Змініть назву поля з «full_names» на «fullname
  2. Змініть його на тип даних char із шириною 250
  3. Додайте обмеження NOT NULL

Ми можемо зробити це за допомогою команди change таким чином:

ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;

Виконання наведеного вище сценарію в MySQL workbench проти myflixdb, а потім виконання наведеного вище сценарію show columns дає такі результати.

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, щоб досягти цього.

Наведений нижче скрипт змінює ширину поля «повне ім’я» з 250 до 50.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Виконання наведеного вище сценарію в MySQL workbench проти myflixdb, а потім виконання наведеного вище сценарію show columns дає такі результати, наведені нижче.

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, а потім виконання наведеного вище сценарію show columns дає такі результати, наведені нижче.

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 сервер або об’єкти в базі даних.
  • Команда rename використовується для зміни назви таблиці на нове ім’я таблиці.
  • Ключове слово Change дозволяє змінювати назву стовпця, тип даних і обмеження
  • Змінити ключове слово дозволяє змінювати тип даних стовпця та обмеження
  • Ключове слово After використовується для визначення положення стовпця в таблиці