Изменение строк: UPDATE
Данные не только прибавляются, но и меняются: клиент переезжает, игра получает новую цену. UPDATE изменяет строки, которые уже есть в таблице. Oscar King переехал из Bristol в London:
UPDATE customers
SET city = 'London'
WHERE id = 10;После UPDATE идёт таблица. После SET — столбец и, после знака равенства, его новое значение. А WHERE говорит, какие строки менять, точно как в запросе: инструкция меняет каждую строку, которую находит условие, и больше никакие. На вкладке «Результаты» будет Изменено строк: 1, а запрос покажет изменение:
SELECT name, city
FROM customers
WHERE city = 'London';| name | city |
|---|---|
| Emma Clark | London |
| Olivia Brown | London |
| Leo Walker | London |
| Oscar King | London |
| Grace Hall | London |
Чтобы изменить сразу несколько столбцов, разделите их запятыми: SET city = 'London', email = 'oscar@king.dev'. В SET знак равенства означает «сохрани это значение», а в WHERE — сравнивает. Так же значение можно очистить: SET city = NULL (а чтобы найти пустые значения, пишут WHERE city IS NULL, как вы знаете).
Чтобы изменить одну конкретную строку, найдите её по первичному ключу, как выше с WHERE id = 10. Имена могут повторяться (двух клиентов могут звать Oscar King), а текст должен совпадать точно, но ID всегда указывает на одну строку.
В WHERE инструкции UPDATE можно использовать всё, что вы знаете: AND, OR, IN, LIKE, BETWEEN, функции и даже подзапросы. UPDATE может изменить одну строку, много строк или ни одной: если условие ничего не находит, это не ошибка, инструкция просто ничего не меняет (Изменено строк: 0).
Типичная ошибка: WHERE, который ничего не находит, например из-за опечатки: WHERE name = 'Oscar Kng'. Ошибки нет, а результат вашего запроса выглядит так, будто ничего не произошло. Если изменения нет, посмотрите на «Изменено строк»: если там 0, WHERE не нашёл ни одной строки.
Задание
- 1
Mia Lewis (ID 7) переехала из Bristol в Manchester, и у неё новый адрес электронной почты:
mia@lewis.me. Измените оба значения однимUPDATE. - 2
Ниже покажите ID, имя, адрес электронной почты и город клиентов из Manchester, отсортировав их по ID:
id name email city 2 Liam Turner liam.t@mail.com Manchester 6 Jack Harris jack@harris.io Manchester 7 Mia Lewis mia@lewis.me Manchester 13 Sophie Adams sophie.adams@mail.com Manchester - 3
У Robot Rebellion (ID 18) наконец появилась дата выхода: игра выйдет 2026-03-20. Задайте её ещё одним
UPDATE, а затем покажите название и дату выхода игр, вышедших 2025-06-01 или позже, отсортировав их по дате выхода:title released Turbo Karts 2025-06-05 Goal Rush 2025-09-26 Knight's Oath 2025-11-14 Robot Rebellion 2026-03-20