Sql Scholl
Распечатать страницу
Перейти на главную Карта сайта Отправить сообщение

Обновление и удаление данных

Удаление данных

     Для удаления данных из таблицы применяется оператор DELETE.

     Его можно использовать двумя способами:

     •     для удаления из таблицы определенных строк;
     •     для удаления из таблицы всех ее строк.

Не забывайте указывать предложение WHERE

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

Оператор DELETE И безопасность

Для использования оператора delete в СУБД со структурой клиент-сервер могут понадобиться особые права доступа. Прежде чем применять этот оператор, удостоверьтесь в том, что вам предоставлены соответствующие права.

     Рассмотрим каждый из этих способов.

     Как уже говорилось, оператор UPDATE очень прост в использовании. Хорошая (и вместе с тем плохая) новость состоит в том, что оператор DELETE еще проще.

     Следующий оператор удаляет одну строку из таблицы Customers:

DELETE FROM Customers
WHERE cust_id = '1000000006';

     Оператор DELETE FROM требует, чтобы вы указали имя таблицы, из которой должны быть удалены данные. Предложение WHERE фильтрует строки, определяя, какие из них должны быть удалены. В нашем примере должна быть удалена строка, относящаяся к клиенту 1000000006. Если бы предложение WHERE было пропущено, этот оператор удалил бы все столбцы таблицы.

Ключевое слово FROM

В некоторых реализациях SQL за delete может опционально следовать ключевое слово from. Однако хорошим тоном считается всегда указывать это ключевое слово, даже если в нем нет необходимости. Поступая таким образом, вы обеспечите переносимость своего SQL-кода между СУБД.

     Оператор DELETE не принимает имена столбцов или метасимволы. Он удаляет строки целиком, а не отдельные столбцы. Для удаления определенного столбца следует использовать оператор UPDATE.

Содержимое таблиц, но не сами таблицы

Оператор delete удаляет из таблицы отдельные строки или даже все строки за один раз, но он никогда не удаляет саму таблицу.

Более быстрое удаление

Если необходимо удалить значения из всех строк таблицы, не используйте оператор delete. Вместо него нужно применить оператор truncate table, который выполняет то же самое, но делает это намного быстрее (потому что изменения данных не регистрируются).