Если с помощью операторов INSERT, UPDATE и REPLACE в MySQL данные добавляются, обновляются и замещаются, то с помощью операторов DELETE и TRUNCATE, MySQL удаляет записи. Оператор DELETE позволяет удалять записи из таблицы и поддерживает использование предложения WHERE для ограниченного удаления только теми записями, которые соответствуют определенному условию. Его синтаксис выглядит следующим образом:
DELETE FROM имя- таблицы WHERE условное- выражение Поэтому в следующей таблице,
Удалить и уничтожить
Помните, что использование оператора DELETE без предложения WHERE может привести к полному удалению всех записей из таблицы. Поскольку эта операция необратима (за исключением использования таблиц InnoDB с отключенным режимом AUTOCOMMIT), перед выполнением операции удаления необходимо убедиться в том, что вы используете оператор SELECT.
Не указав предложение WHERE, можно удалить все записи таблицы. Листинг 9.31.
mysql> DELETE FROM users;
Query OK, 3 rows affected (0.00 sec)
Это же можно сделать с использованием команды TRUNCATE, которая также удаляет все записи из таблицы. Следующая команда аналогична предыдущей.
Листинг 9.32.
mysql> TRUNCATE TABLE users;
Query ОК, О rows affected (0.05 вес)
Если преследуется цель удаления всех записей из таблицы, то использование оператора TRUNCATE целесообразнее, т.к. оператор TRUNCATE удаляет всю таблицу, а затем воссоздает ее вновь, в то время как оператор DELETE удаляет все записи, не пытаясь модифицировать саму таблицу. Это также является причиной того, что при добавлении записей в таблицу, очищенную оператором DELETE, MySQL еще "помнит" созданную прежде последовательность AUTOINCREMENT и продолжает ее использование для полей, объявленных с ключевым словом AUTOINCREMENT. В то же время таблицы, очищенные с помощью команды TRUNCATE, для полей AUTOINCREMENT всегда начинают новый отсчет с 1.
Заметим, что команда TRUNCATE, в отличие от команды DELETE, не применима при транзакциях. Поэтому попытка выполнения операции TRUNCATE с таблицей, которая участвует в транзакции, всегда приводит к ошибке.
Обращение таблиц
Начиная с версии 4.0, MySQL дает возможность операциям обновления и удаления обновлять/удалять сразу несколько таблиц. Вот несколько примеров:
# увеличить сумму счетов всех заказчиков из Массачуссетса на 10% UPDATE invoices, customers SET invoices.amount = invoices.amount + + (invoices.amount * 0.1) WHERE invoices.customerID = customers. customerID AND customers.location = 'MA';
# обновить регистрационное имя пользователя во всех зонах дискуссионного форума
UPDATE profiles, forums, groups SET profiles.username = 'hyde', forums.username = 'hyde', groups.username = 'hyde' WHERE profiles, username = 'jekyll' AND profiles.username = forums.username AND profiles.username = groups.username;
# удалить из системы определенного заказчика и все его инвойсы DELETE FROM invoices, customers USING invoices, customers WHERE invoices.customerID = customers.customerID AND customers.customerID = 8 8;
# удалить из системы всех служащих, одновременно существующих в таблице employees и в таблице departments
DELETE FROM employees, departments USING employees, departments WHERE employees.employeeID = departments.employeeID;
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
Все о MySQL. Удаление записей
28-12-2009
<< Предыдущая статья | Следующая статья >> |
Все о MySQL. Работа с полями, объявленными с ключевым словом NULL | Все о MySQL. Выборка записей |