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 добавляет новый столбец с именем credit card number в таблицу members с 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 из таблицы участников.
Давайте теперь посмотрим на столбцы в таблице участников, чтобы убедиться, что наш столбец был удален.
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 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 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 и последующее выполнение скрипта 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 | ||
| varchar(255) | YES | NULL |
ИЗМЕНИТЬ КЛЮЧЕВОЕ СЛОВО
Ключевое слово MODIFY позволяет вам
- Изменить тип данных столбца
- Изменить ограничения столбца
В приведенном выше примере 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 | ||
| 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 | ||
| varchar(255) | YES | NULL |
Резюме
- Команда alter используется, когда мы хотим изменить базу данных или любой объект, содержащийся в базе данных.
- Команда drop используется для удаления баз данных из MySQL сервер или объекты в базе данных.
- Команда переименования используется для изменения имени таблицы на новое имя таблицы.
- Ключевое слово Change позволяет изменить имя столбца, тип данных и ограничения.
- Ключевое слово «Изменить» позволяет изменить тип данных столбца и ограничения.
- Ключевое слово After используется для указания положения столбца в таблице.
