Иллюстрированный самоучитель по PostgreSQL

Комментарии

Листинг 3.13. Пример запроса SQL.

booktown=# SELECT Id, name FROM states;
id | name
42 | Washington 51 I Oregon
(2 rows)
booktown=#

В табл. 3.8 и 3.9 анализируется другая, более сложная команда SQL. В ней используется действие UPDATE с секциями SET и WHERE, которые определяют соответственно правило изменения записей и критерий их отбора.

Таблица 3.8. Команда UPDATE с секцией SET.

UPDATE states SET id = 51
Ключевое слово Идентификатор Ключевое слово Идентификатор Оператор Целочисленная константа
Команда Имя таблицы Имя секции Имя поля Присваивание Новое значение поля id

Таблица 3.9. Секция WHERE.

WHERE name = 'Oregon'
Ключевое слово Идентификатор Оператор Строковая константа
Имя секции Имя поля Проверка эквивалентности Искомое значение

Приведенная команда просматривает содержимое поля name каждой записи и проверяет, совпадает ли оно с условием секции WHERE (совпадение со строковой константой ' Oregon'). Затем во всех записях, соответствующих этому условию, полю id присваивается значение 51.

Итак, рассмотренная команда UPDATE содержит три ключевых слова, три идентификатора и две константы. Ключевыми словами являются лексемы UPDATE (выполняемое действие), SET (правило обновления записей) и WHERE (критерий отбора обновляемых записей).

Оба оператора представлены знаком =. В секции SET этот знак используется для присваивания (то есть обновления поля существующей записи) – применение, специфическое для секции SET. С другой стороны, в секции WHERE оператор = используется для сравнения двух значений. В данном примере поле name записи сравнивается со строковой константой Oregon.

Наконец, в примере присутствует целочисленная константа 51 (новое значение поля id) и строковая константа Oregon (сравниваемая с полем name в секции WHERE).

Таким образом, команда UPDATE, приведенная в листинге 3.14, обновляет таблицу states, присваивая значение 51 полю Id всех записей, у которых поле name содержит значение Oregon. Результат проверяется следующей командой SELECT.

Листинг 3.14. Обновление таблицы командой UPDATE.

booktown= <strong>#</strong> UPDATE states
booktown – <strong>#</strong> SET id = 51
booktown – <strong>#</strong> WHERE
name = 'Oregon';
UPDATE 1
booktown= <strong>#</strong> SELECT * FROM states
booktown-$ WHERE
name='Oregon':
Id | name | abbreviation
51 | Oregon | OR
(1 row)
booktown= <strong>#</strong>
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.