Глава 11. Изменение записи в таблице

В запись таблицы planet, посвящённую Меркурию, вкралась досадная опечатка. Диаметр Меркурия не 4780, а 4880 км. Исправим эту ошибку, а заодно заполним поле orbit:

test54=# UPDATE planet SET diameter=4880, orbit=.38 WHERE name='Меркурий';
UPDATE 1
test54=# SELECT * FROM planet;
   name   | token | diameter |    mass    | orbit 
----------+-------+----------+------------+-------
 Венера   | ♀     |  12103.6 |  4.869e+24 |      
 Земля    | ♁     |  12756.3 | 5.9736e+24 |      
 Марс     | ♂     |     6794 | 6.4219e+23 |      
 Юпитер   | ♃     |   142984 |    1.9e+27 |      
 Сатурн   | ♄     |   120536 |   5.68e+26 |      
 Уран     | ♅     |    51118 |  8.683e+25 |      
 Нептун   | ♆     |    49532 | 1.0247e+26 |      
 Меркурий | ☿     |     4880 |    3.3e+23 |  0.38
(8 rows)

Видно, что запись про Меркурий переместилась в конец таблицы. Нет никакого гарантированного способа вернуть её на первоначальное место. База данных располагает записи таблиц в том порядке, который удобен самой БД. Однако в этом нет проблемы, поскольку можно запросить тот или иной порядок выдачи записей командой SELECT. Как это сделать, мы узнаем позже.

Теперь заполним поле orbit для других планет.

test54=# UPDATE planet SET orbit=.72 WHERE name='Венера';
UPDATE 1
test54=# UPDATE planet SET orbit=1.00 WHERE name='Земля';
UPDATE 1
test54=# UPDATE planet SET orbit=1.52 WHERE name='Марс';
UPDATE 1
test54=# UPDATE planet SET orbit=5.20 WHERE name='Юпитер';
UPDATE 1
test54=# UPDATE planet SET orbit=9.54 WHERE name='Сатурн';
UPDATE 1
test54=# UPDATE planet SET orbit=19.218 WHERE name='Уран';
UPDATE 1
test54=# UPDATE planet SET orbit=30.06 WHERE name='Нептун';
UPDATE 1
test54=# SELECT * FROM planet;
   name   | token | diameter |    mass    | orbit  
----------+-------+----------+------------+--------
 Меркурий | ☿     |     4880 |    3.3e+23 |   0.38
 Венера   | ♀     |  12103.6 |  4.869e+24 |   0.72
 Земля    | ♁     |  12756.3 | 5.9736e+24 |      1
 Марс     | ♂     |     6794 | 6.4219e+23 |   1.52
 Юпитер   | ♃     |   142984 |    1.9e+27 |    5.2
 Сатурн   | ♄     |   120536 |   5.68e+26 |   9.54
 Уран     | ♅     |    51118 |  8.683e+25 | 19.218
 Нептун   | ♆     |    49532 | 1.0247e+26 |  30.06
(8 rows)

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

Информатика-54