Иллюстрированный самоучитель по SQL для начинающих

Манипуляции данными из базы

Обновление имеющихся данных

Все течет, все изменяется. Если вам не нравится нынешнее положение дел, то надо немного подождать. Через некоторое время существующее положение изменится.

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

В языке SQL для изменения данных, хранящихся в таблице, имеется оператор UPDATE (обновить). С помощью одного такого оператора можно изменить в таблице одну строку, несколько или все ее строки. В операторе UPDATE используется следующий синтаксис:

UPDATE имя_таблицы
SET столбец_1 – выражение_1, столбец_2 = выражение_2,
…, столбец_n = выражение__n
[WHERE предикаты];

Предложение WHERE (где) не является обязательным. Оно указывает, какие строки должны обновляться. Если это предложение не используется, то будут обновляться все строки таблицы. В свою очередь предложение SET (установить) указывает новые значения изменяемых столбцов.

Проанализируйте с помощью табл. 6.1 таблицу CUSTOMER (покупатель), имеющую столбцы Name (имя и фамилия), City (город), Area-Code (телефонный код региона) и Telephone (телефон).

Таблица 6.1. Таблица CUSTOMER.

Name City AreaCode Telephone
Abe Abelson Springfield (714) 555-1111
Bill Bailey Decatur (714) 555-2222
Chuck Wood Philo (714) 555-3333
Don Stetson Philo (714) 555-4444
Dolph Stetson Philo (714) 555-5555

Время от времени списки покупателей изменяются, по мере того как эти люди переезжают, изменяются номера телефонов и т.д. Предположим, что Эйб Эйбелсон (Abe Abelson) переехал из Спрингфилда в Канкаки. Тогда запись этого покупателя, находящуюся в таблице CUSTOMER, можно обновить с помощью следующего оператора UPDATE:

UPDATE CUSTOMER
SET City = 'Kankakee1, Telephone = '666-6666'
WHERE Name = 'Abe Abelson1;

В результате его выполнения в записи произошли изменения, которые показаны в табл. 6.2.

Таблица 6.2. Таблица CUSTOMER после обновления одной строки оператором update.

Name City AreaCode Telephone
Abe Abelson Kankakee (714) 666-6666
Bill Bailey Decatur (714) 555-2222
Chuck Wood Philo (714) 555-3333
Don Stetson Philo (714) 555-4444
Dolph Stetson Philo (714) 555-5555

Похожий оператор можно использовать, чтобы обновить сразу множество строк. Предположим, что город Файло переживает резкий рост населения и ему теперь требуется собственный телефонный код региона. Все строки покупателей, проживающих в этом городе, можно сразу изменить с помощью одного оператора UPDATE:

UPDATE CUSTOMER
SET AreaCode = '(619)'
WHERE City = 'Philo';
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.