Справочник от Автор24
Найди эксперта для помощи в учебе
Найти эксперта
+2

Команды изменения структуры таблиц

Отличия изменения данных и изменения структуры

Такие запросы как выбор (SELECT), изменение данных (UPDATE), добавление данных (INSERT), удаление (DELETE, TRUNCATE) требуется выполнять очень часто. И почти всегда их приходится генерировать программно из кода приложения. Именно поэтому важно знать синтаксис этих команд. Этот набор команд выполняет чтение и модификацию самих даннх не затрагивая структуру. Изменение структуры таблицы – операция, которая требуется довольно редко, потому что структура таблицы должна быть относительно постоянной. Но иногда меняется сама предметная область, а это влечет за собой изменения структуры некоторых таблиц.

Все изменения структуры производятся с уже созданной и сохраненной таблицей. К операциям измененяющим структуру относятся следующие операции:

  • Добавление или удаление поля;
  • Добавление или удаление индекса;
  • Добавление или удаление первичного ключа;
  • Добавление внешнего ключа с ограничениями;
  • Изменение имени поля;
  • Изменение порядка следования полей;
  • Изменение определения поля (тип, размер, значение по умолчанию, допустимость значения NULL);
  • Изменение имени таблицы.

Операцию изменения структуры таблицы нет необходимости совершать из кода программы, так как она разовая. Структуру таблиц, когда это требуется, меняет администратор баз данных. Это можно сделать либо при помощи менеджера (HeidiSQL, PhpMyadmin и т.д.), либо из командной строки при помощи команды ALTER TABLE.

Синтаксис команды ALTER TABLE

Команда ALTER TABLE имеет следующий синтаксис:

ALTER IGNORE TABLE имя_таблицы изменяемое_свойство1 ,изменяемоесвойство2...;

На месте изменяемого свойства могут быть следующие варианты:

  • ADD COLUMN определение_поля FIRST|AFTERимяполя
  • или ADD COLUMN (определение_поля1, определение_поля2,...)
  • или ADD INDEX имяиндекса (поле1,...)
  • или ADD PRIMARY KEY (поле1,...)
  • или ADD UNIQUE имяиндекса (поле1,...)
  • или ADD FULLTEXT имяиндекса (поле1,...)
  • или ADD CONSTRAINTsymbol FOREIGN KEY имяиндекса (имя_поля1,...) определениессылки
  • или ALTER COLUMN имя_поля {SET DEFAULT значение_по_умолчанию | DROP DEFAULT}
  • или CHANGE COLUMN старое_имя_поля определение_поля FIRST|AFTERимяполя
  • или MODIFY COLUMN определение_поля FIRST|AFTERимяполя
  • или DROP COLUMN имя_поля
  • или DROP PRIMARY KEY
  • или DROP INDEX имя_индекса
  • или DISABLE KEYS
  • или ENABLE KEYS
  • или RENAME TO новое_имя_таблицы
  • или ORDER BY поле1, поле2….
  • или свойства_таблицы;
«Команды изменения структуры таблиц» 👇
Помощь эксперта по теме работы
Найти эксперта
Решение задач от ИИ за 2 минуты
Решить задачу
Помощь с рефератом от нейросети
Написать ИИ

Команда ALTER TABLE создает копию исходной таблицы, где осуществляет все изменения. После этого исходная таблица удаляется, а копии присваивается новое имя.

Инструкция IGNORE меняет реакцию на наличие дубликатов первичных ключей. При отсутствии этой инструкции нахождение дубликата первичного ключа вызывает прерывание команды и сообщение об ошибке. При наличии – уникальное значение первичного ключа присваивается первой записи, а дубликаты удаляются.

Инструкция DISABLE KEYS блокирует обновление неуникальных индексов только для таблиц типа MyISAM, а ENABLE KEYS наоборот создает недостающие индексы.

Рассмотрим ряд примеров на основе таблицы tovar:

Команды изменения структуры таблиц. Автор24 — интернет-биржа заказчиков и авторов

Пример 1

Для изменения имени таблицы tovar на nomenklatura нужно выполнить команду:

ALTER TABLE tovar RENAME nomenklatura;

Пример 2

Для того чтобы изменить тип поля price с float на double и запретить значение NULL нужно выполнить команду:

ALTER TABLE nomenklatura MODIFY price DOUBLE NOT NULL;

Пример 3

В таблицу nomenklatura необходимо добавить поле, где можно отмечать наличие товара на складе. Для добавления нового поля story с типом tinyint длиной 1 и беззнакового нужно выполнить команду:

ALTER TABLE nomenklatura ADD story tinyint(1) UNSIGNED;

Пример 4

Для создания индекса по полю tovar_name нужно выполнить команду:

ALTER TABLE nomenklatura ADD INDEX (tovar_name);

Пример 5

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

ALTER TABLE nomenklatura ADD short_name varchar(10) NOT NULL, ADD INDEX (short_name);

Дата написания статьи: 20.08.2016
Все самое важное и интересное в Telegram

Все сервисы Справочника в твоем телефоне! Просто напиши Боту, что ты ищешь и он быстро найдет нужную статью, лекцию или пособие для тебя!

Перейти в Telegram Bot

Ищешь информацию по теме "Команды изменения структуры таблиц"?

AI Assistant