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 символов.