Команда SQL для удаления и обновление данных в базе (DELETE, UPDATE)

В базу данных можно не только добавлять данные, но и удалять их оттуда. Ещё существует возможность обновить данные в базе. Рассмотрим оба случая.

Удаление данных из базы (DELETE)

Удаление из базы данных происходит с помощью команды "DELETE" (переводится с английского как "УДАЛИТЬ"). Функция удаляет не одну строку, а несколько, при этом выбирает для удаления строки по логике функции "SELECT". То есть чтобы удалить данные из базы, необходимо точно определить их. Приведём пример SQL команды для удаления одной строчки:
DELETE FROM `USERS` WHERE `ID` = 2 LIMIT 1;
Благодаря этому запросу из таблицы "USERS" будет удалена одна запись, у которой в столбце "ID" стоит значение "2".
Обратите внимание, что в конце запроса стоит лимит на выборку "LIMIT 1;" размером в 1 строку. Его можно было не ставить, если поле "ID" является "PRIMARY KEY" (первичный ключ, то есть содержит только уникальные значения). Но всё-таки рекомендуем ставить ограничение "LIMIT 1;" в любом случае, если вы намерены удалить только одну строчку.
Теперь попробуем удалить сразу диапазон данных. Для этого достаточно составить запрос, в результате выполнения которого вернётся несколько строк. Все эти строки будут удалены:
DELETE FROM `USERS` WHERE `ID` >= 5;
Этот запрос удалит все строки в таблицы, у которых в столбце "ID" стоит значение меньше 5. Если не поставить никакого условия "WHERE" и лимита "LIMIT", то будут удалены абсолютно все строки в таблице:
DELETE FROM `USERS`;
На некоторых версиях MySQL способ удаления всех строк через "DELETE FROM _;" может работать медленнее, чем "TRUNCATE _;"; Поэтому для очистки всей таблицы лучше всё-таки использовать "TRUNCATE".

Обновление данных в базе (UPDATE)

Функция обновления "UPDATE" (переводится с английского как "ОБНОВИТЬ") довольно часто используется в проектах сайтов. Как и в случае с функцией "DELETE", фкнция обновления не успокоится до тех пор, пока не обновит все поля, которые подходят под условия, если нет лимита на выборку. Поэтому необходимо задавать однозначные условия, чтобы вместо одной строки нечаянно не обновить половину таблицы. Приведём пример использования команды "UPDATE":
UPDATE `USERS` SET `NAME` = 'Мышь' WHERE `ID` = 3 LIMIT 1;
В этом примере, в таблие "USERS" будет установлено значение "Мышь" в столбец "NAME" у строки, в столбце "ID" которой стоит значение "3". Можно обновить сразу несколько столбцов у одной записи, передав значения через запятую. Попробуем обновить не только значение с толбце "NAME", но и значение в столбце "FOOD" используя один запрос:
UPDATE `USERS` SET `NAME` = 'Мышь', `FOOD` = 'Сыр' WHERE `ID` = 3 LIMIT 1;
Если не поставить никаких лимитов LIMIT и условий WHERE, то все записи таблицы будут обновлены без исключений.
MouseDC.ru - хостинг, виртуальный хостинг, покупка доменов, проверка доменов, WHOIS, покупка SSL сертификатов, доработка сайтов, сопровождение сайтов, разработка сайтов, техподдержка сайтов
Была ли эта статья полезна? Есть вопрос?
Cмотрите другие статьи: