MySQL UPDATE с примерами и другие операции по изменению данных


В MySQL UPDATE — одна из команд применяемых чаще всего. В рамках данного материала кратко рассмотрим примеры использования UPDATE.



Продолжим работу с одной из таблиц, созданных при подготовке первых статей цикла по MySQL


Выберем все записи из таблицы REAL_ESTATE LIMIT ограничив вывод пятью первыми строками

select * from REAL_ESTATE LIMIT 5;

+————+—————+————+—————-+————+————+———+
| type | city | floorspace | district | street | rentorsale | PRICE |
+————+—————+————+—————-+————+————+———+
| Appartment | Yekaterinburg | 44 | Akademicheskiy | Shaumana | Rent | 15000 |
| Appartment | Moscow | 56 | Center | Tverskaya | Rent | 50000 |
| House | Tver | 130 | Leninskiy | Zelenaya | Sale | 250000 |
| Appartment | Kemerovo | 52 | Center | Lenina | Rent | 19000 |
+————+—————+————+—————-+————+————+———+
5 rows in set (0.00 sec)



Базовый MySQL UPDATE запрос


Возьмем первую строку в таблице и обновим одно из значений. Увеличим цену аренды квартиры на одну тысячу рублей.

UPDATE REAL_ESTATE SET PRICE = '16000' WHERE type = 'Appartment' and city = 'Yekaterinburg';

Query OK, 2 rows affected (0.01 sec)
Rows matched: 2 Changed: 2 Warnings: 0



Как следует из вывода запрос успешно выполнен, но затронул еще одну запись. Ее мы не увидели поскольку использовали LIMIT.



Проверим верно ли выполнено обновление

select * from REAL_ESTATE LIMIT 1;

+————+—————+————+—————-+———-+————+——-+
| type | city | floorspace | district | street | rentorsale | PRICE |
+————+—————+————+—————-+———-+————+——-+
| Appartment | Yekaterinburg | 44 | Akademicheskiy | Shaumana | Rent | 16000 |
+————+—————+————+—————-+———-+————+——-+
1 row in set (0.00 sec)


Цена увеличена, т.е. ожидаемый результат получен.



На практике в любой таблице обычно существует колонка id, и обращаться к записям проще всего именно по уникальному идентификатору.

Запрос в таком случае упрощается и может выглядеть так:

UPDATE REAL_ESTATE SET PRICE = '16000' WHERE id = '23432';



Структура SELECT запроса


UPDATE REAL_ESTATE  —  сначала указывается имя таблицы, значения которой обновляются

SET PRICE = '16000'  —  затем новое значение с указанием имени колонки

WHERE type = 'Appartment' and city = 'Yekaterinburg';  —  последним обозначается условие выборка записи, для которой обновляется значение



В примере новое значение PRICE установлено только для тех записей таблицы REAL_ESTATE в которых значение колонки type — Appartment, а значение city — Yekaterinburg.



UPDATE запросы нужны для обновления данных, большая же часть запросов на к базам, обеспечивающим работу веб-проектов — запросы на выборку и получение информации. Читайте про MySQL SELECT

Также может оказаться интересен материал про методы очистки таблиц: TRUNCATE, DROP и DELETE.

Сказать спасибо