ТОП-10 популярных


НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...


Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...

Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...

БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...

Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...


Какую только информацию мы не помещаем на компакт-диски: резервные копии важных данных, музыку, фильмы... Многие полагают, что главное - «купить...

Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...

Размер объему не помеха.
С тех пор как компания Fujitsu отказалась от производства жестких дисков для настольных компьютеров, многие пользователи начали забывать о том,...

ПОД ЛИТЕРОЙ «N»
Aтаку LCD-мониторов не остановить, а масштабы этого наступления даже немного пугают. Судите сами — многие пользователи только начинают приглядываться к новому для...

Internet2, или cтарые песни о новом
Когда-то на заре Интернета, тогдаеще военно-научной сетиAPRAnet, были заложены основныепринципы функционирования«Сети сетей». В их числе — использованиепротокола, называемого сейчасIPv4. В...

Все о MySQL. Удаление записей


28-12-2009

Если с помощью операторов 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;

Понравился материал? Поделитесь с друзьями!



<< Предыдущая статьяСледующая статья >>
Все о MySQL. Работа с полями, объявленными с ключевым словом NULL Все о MySQL. Выборка записей