Глава 2. Создание и заполнение базы данных
реса. Следующее выражение показывает, как заполнить эти столбцы
с помощью выражения
update
:
mysql>
UPDATE person >
SET address = '1225 Tremont St.', >
city = 'Boston', >
state = 'MA', >
country = 'USA', >
postal_code = '02138' >
WHERE person_id = 1; Query OK, 1 row affected (0.04 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Сервер ответил двустрочным сообщением: фраза «Rows matched: 1»
(Подходящих строк: 1) говорит о том, что условия блока
where
соответ
ствуют только одной строке таблицы, а «Changed: 1» (Изменено: 1) оз
начает, что была изменена одна строка таблицы. Поскольку в блоке
where
задан первичный ключ строки Вильяма, именно так и должно
было произойти.
Как видите, одним выражением
update
можно изменять несколько
столбцов. Одним выражением также можно изменять несколько строк
в зависимости от условий блока
where
. Рассмотрим, к примеру, что
произошло бы, если бы блок
where
выглядел следующим образом:
WHERE person_id < 10
Поскольку значение
person_id
и у Вильяма, и у Сьюзен меньше 10, из
менениям подвергнуться обе строки. Если опустить блок
where
совсем,
выражение
update
обновит все строки таблицы.
Удаление данных Похоже, Вильям и Сьюзен не вполне ладят друг с другом, поэтому
один из них должен уйти. Поскольку Вильям был первым, Сьюзен бу
дет вежливо «выставлена» выражением
delete
:
mysql>
DELETE FROM person >
WHERE person_id = 2; Query OK, 1 row affected (0.01 sec)
Опять же для выделения интересующей строки используется первич
ный ключ, поэтому из таблицы удаляется всего одна строка. Как и в слу
чае выражения
update
, можно удалить и несколько строк. Все зависит
от условий, заданных в блоке
where
. Если блок
where
опущен, будут уда
лены все строки.