Учебники

20) Alter Drop Rename

ЧТО ТАКОЕ АЛЬТЕРНАЯ КОМАНДА?

Как говорится, изменение — единственная постоянная

Со временем меняются и бизнес-требования. По мере изменения бизнес-требований дизайн базы данных также должен меняться.

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

Команда alter используется для изменения существующей базы данных, таблицы, представления или других объектов базы данных, которые могут потребоваться изменить в течение жизненного цикла базы данных.

Давайте предположим, что мы завершили разработку нашей базы данных, и она была реализована. Наши пользователи базы данных используют его, и затем они понимают, что некоторая важная информация была оставлена ​​на этапе проектирования. Они не хотят потерять существующие данные, а просто хотят включить новую информацию. Команда alter пригодится в таких ситуациях. Мы можем использовать команду alter, чтобы изменить тип данных поля, скажем, с строки на числовой, изменить имя поля на новое имя или даже добавить новый столбец в таблице.

 

Альтернативный синтаксис

Основной синтаксис, используемый для добавления столбца в уже существующую таблицу, показан ниже

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

 

ВОТ

  • «ALTER TABLE` table_name` » — это команда, которая указывает серверу MySQL изменить таблицу с именем« table_name ».
  • «ADD COLUMN` column_name` `data_type`» — это команда, которая сообщает серверу MySQL добавить новый столбец с именем «column_name» с типом данных «data_type».

Давайте предположим, что Myflix ввел онлайн биллинг и платежи. С этой целью нас попросили добавить поле для номера кредитной карты в нашей таблице участников. Мы можем использовать команду ALTER, чтобы сделать это. Давайте сначала посмотрим на структуру таблицы участников, прежде чем вносить какие-либо изменения. Сценарий, показанный ниже, помогает нам сделать это.

SHOW COLUMNS FROM `members`;

 

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
full_namesvarchar(350)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL

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

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

 

Выполнение вышеупомянутого сценария в MySQL против Myflixdb добавляет новый столбец с именем номер кредитной карты к таблице членов с VARCHAR в качестве типа данных. Выполнение скрипта show columns дает нам следующие результаты.

 

SHOW COLUMNS FROM `members`;

 

 

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
full_namesvarchar(350)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL
credit_card_numbervarchar(25)YES  

Как видно из полученных результатов, номер кредитной карты был добавлен в таблицу участников. Данные, содержащиеся в данных членов, не зависят от добавления нового столбца.

ЧТО ТАКОЕ DROP КОМАНДА?

Команда DROP используется для

  1. Удалить базу данных с сервера MySQL
  2. Удалить объект (например, Таблица, Столбец) из базы данных.

Давайте теперь посмотрим на практические примеры, которые используют команду DROP.

В нашем предыдущем примере с командой Alter мы добавили столбец с именем номера кредитной карты в таблицу участников.

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

Мы можем использовать следующий скрипт

ALTER TABLE `members` DROP COLUMN `credit_card_number`;

При выполнении вышеуказанного скрипта столбец credit_card_number удаляется из таблицы members

 Давайте теперь посмотрим на столбцы в таблице членов, чтобы подтвердить, был ли удален наш столбец.

SHOW COLUMNS FROM `members`;

Выполнение вышеуказанного скрипта в MySQL Workbench против myflixdb дает нам следующие результаты.

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
full_namesvarchar(350)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL

Обратите внимание, что номер кредитной карты был удален из списка полей.

DROP TABLE

Синтаксис DROP для таблицы из базы данных следующий:

DROP TABLE `sample_table`;

 

Давайте посмотрим на пример

DROP TABLE `categories_archive`;

Выполнение вышеупомянутого сценария удаляет таблицу с именем `ateg_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 дает нам следующие результаты.

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
full_namesvarchar(150)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL

Предположим, мы хотим

  1. Измените имя поля с «full_names» на «fullname
  2. Измените его на тип данных char с шириной 250
  3. Добавьте ограничение NOT NULL

 Мы можем сделать это, используя команду изменения следующим образом:

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

 

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

 

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
fullnameschar(250)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL

 

MODIFY KEYWORD

 

Ключевое слово MODIFY позволяет вам

  1. Изменить тип данных столбца
  2. Изменить ограничения столбца

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

Скрипт ниже меняет ширину поля «полное имя» с 250 на 50.

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

 

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

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
fullnameschar(50)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(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, приведенного выше, дает следующие результаты, показанные ниже.

FieldTypeNullKeyDefaultExtra
membership_numberint(11)NOPRINULLauto_increment
fullnameschar(50)NO NULL
gendervarchar(6)YES NULL
date_of_birthdateYES NULL
date_of_registrationdateYES NULL
physical_addressvarchar(255)YES NULL
postal_addressvarchar(255)YES NULL
contact_numbervarchar(75)YES NULL
emailvarchar(255)YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Резюме

  • The alter command is used when we want to modify a database or any object contained in the database.
  • The drop command is used to delete databases from MySQL server or objects within a database.
  • The rename command is used to change the name of a table to a new table name.
  • The Change keyword allows you to change a column name , data type and constraints
  • The Modify Keyword allows you to modify a column data type and constraints
  • The After keyword is used to specify position of a column in a table