ЧТО ТАКОЕ АЛЬТЕР-КОМАНДА?
Как говорится, изменение - единственная константа
Со временем меняются и требования бизнеса. По мере изменения бизнес-требований дизайн баз данных также нуждается в изменении.
MySQL предоставляет функцию ALTER, которая помогает нам вносить изменения в уже существующую структуру базы данных .
Команда alter используется для изменения существующей базы данных, таблицы, представления или других объектов базы данных, которые могут потребоваться изменить в течение жизненного цикла базы данных.
Предположим, что мы завершили проектирование нашей базы данных, и она реализована. Пользователи нашей базы данных используют его, а затем понимают, что некоторая важная информация была упущена на этапе проектирования. Они не хотят терять существующие данные, а просто хотят включить новую информацию. Команда alter пригодится в таких ситуациях. Мы можем использовать команду alter, чтобы изменить тип данных поля с, скажем, строки на числовой, изменить имя поля на новое имя или даже добавить новый столбец в таблицу.
Альтернативный синтаксис
Базовый синтаксис, используемый для добавления столбца в уже существующую таблицу, показан ниже.
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
ЗДЕСЬ
- ALTER TABLE `table_name` - это команда, которая сообщает серверу MySQL изменить таблицу с именем` table_name`.
- «ДОБАВИТЬ СТОЛБЦУ« имя_столбца »« тип_данных » - это команда, которая сообщает серверу MySQL добавить новый столбец с именем« имя_столбца »с типом данных« тип_данных ».
Предположим, Myflix ввел онлайн-биллинг и платежи. С этой целью нас попросили добавить поле для номера кредитной карты в нашу таблицу участников. Для этого мы можем использовать команду ALTER. Давайте сначала посмотрим на структуру таблицы members, прежде чем вносить какие-либо изменения. Показанный ниже сценарий помогает нам в этом.
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 используется для
- Удалить базу данных с сервера MySQL
- Удалить объект (например, Таблица, Столбец) из базы данных.
Давайте теперь посмотрим на практические примеры, в которых используется команда DROP.
В нашем предыдущем примере с командой Alter мы добавили столбец с именем кредитной карты в таблицу участников.
Предположим, функция онлайн-выставления счетов займет некоторое время, и мы хотим УБИРАТЬ столбец кредитной карты.
Мы можем использовать следующий скрипт
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Выполнение вышеуказанного скрипта удаляет столбец credit_card_number из таблицы members
Давайте теперь посмотрим на столбцы в таблице members, чтобы убедиться, что наш столбец был удален.
SHOW COLUMNS FROM `members`;
Выполнение вышеуказанного сценария в рабочей среде MySQL для 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`;
Выполнение приведенного выше сценария удаляет таблицу с именем «category_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 для 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 для 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 для 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 для 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 |
Резюме
- Команда alter используется, когда мы хотим изменить базу данных или любой объект, содержащийся в базе данных.
- Команда drop используется для удаления баз данных с сервера MySQL или объектов в базе данных.
- Команда переименования используется для изменения имени таблицы на новое имя таблицы.
- Ключевое слово Change позволяет изменить имя столбца, тип данных и ограничения.
- Изменить ключевое слово позволяет изменять тип данных столбца и ограничения.
- Ключевое слово After используется для указания позиции столбца в таблице.