Update customers

set address = 'ул. Победы д.7, кв.7'

where customerid = 4;

Так, например, состояние таблицы показанное на рис. 3.248 будет приведено к виду представленному на рис 3.262.

 

Рис. 3.262. Результат модификации данных в таблице Customers.

 

Задание 9. Изменение таблиц после создания (ALTER TABLE)

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

 

ALTER TABLE tablename alteration [, alteration ...]

 

В ANSI SQL один оператор ALTER TABLE может осуществить только одно преобразование, а вот в MySQL подобных ограничений нет. Разные конструкции преобразования могут изменять разные аспекты таблицы.

 

Типы преобразования, осуществляемые оператором ALTER TABLE, перечислены в таблице на рис. 3.263.

Синтаксис Описание
ADD [COLUMN] column_description [FIRST | AFTER column ] Добавить столбец в указанное место (если место не указано, столбец добавляется в конец). Обратите внимание, column_description требует имени и типа, точно так же, как при работе с оператором CREATE.
ADD [COLUMN] (column_description,column_description, ...) Добавить один или несколько столбцов в конец таблицы.
ADD INDEX [index] (column, ...)(столбцы) таблицы. Добавить индекс в указанный столбец
ADD PRIMARY KEY (column, ...) Сделать указанный столбец (ы) первичным ключом таблицы.
ADD UNIQUE [index] (column, ...) (столбцы) таблицы. Добавить уникальный индекс в указанный столбец
ALTER [COLUMN] column {SET DEFAULT value \ DROP DEFAULT} Добавить или удалить значение по умолчанию определенного столбца.
CHANGE [COLUMN] column new_column_description Изменить столбец с именем column так, чтобы он получил указанное описание. Это можно использовать для изменения имени столбца, поскольку column_description включает в себя имя.
MODIFY [COLUMN] column_description Похоже на CHANGE. Используется для изменения типов столбцов, но не имен.
DROP [COLUMN] column Удалить указанный столбец.
DROP PRIMARY KEY Удалить первичный индекс (не столбец!).
DROP INDEX index Удалить указанный индекс.
RENAME[AS] new_table_name Переименовать таблицу. в операторе ALTER TABLE

Рис. 3.263. Возможные преобразования оператором ALTER TABLE.

 

Рассмотрим наиболее типичные случаи употребления ALTER TABLE.

Частенько случается так, что Вы вдруг осознаете: какой-то столбец "недостаточно велик", чтобы вместить в себе необходимые данные. Например,в нашей таблице Customers имена и фамилии могут иметь длину до 30 символов. И вскоре может оказаться, что некоторые имена и фамилии слишком длинны и сохраняются в таблице в искаженном виде. Однако это можно исправить, изменив тип данных столбца, после чего он сможет принимать имена и фамилии длиной до 35 символов.