Эта статья в значительной степени или полностью основана на одном источнике . ( сентябрь 2019 г. ) |
В языке структурированных запросов базы данных ( SQL ) оператор DELETE удаляет одну или несколько записей из таблицы . Подмножество может быть определено для удаления с помощью условия, в противном случае удаляются все записи. [1] Некоторые системы управления базами данных (СУБД), такие как MySQL , позволяют удалять строки из нескольких таблиц с помощью одного оператора DELETE (иногда это называется удалением нескольких таблиц).
Примеры [ править ]
Удалите строки из пирогов таблицы, где вкус столбца равен Lemon Meringue :
УДАЛИТЬ ИЗ пирогов, ГДЕ аромат = 'Лимонное безе' ;
Удалять строки в деревьях , если значение высоты меньше 80.
УДАЛИТЬ С деревьев ГДЕ высота < 80 ;
Удалите все строки из mytable :
УДАЛИТЬ ИЗ mytable ;
Удалите строки из mytable с помощью подзапроса в условии where:
УДАЛИТЬ ИЗ mytable WHERE id IN ( ВЫБРАТЬ идентификатор ИЗ mytable2 );
Удалите строки из mytable, используя список значений:
DELETE FROM MyTable WHERE ID IN ( значение1 , значение2 , значение3 , value4 , value5 );
[ править ]
Предположим, есть простая база данных, в которой перечислены люди и адреса. По одному адресу может проживать более одного человека, а один человек может проживать по нескольким адресам (это пример отношения « многие ко многим» ). В базе данных есть только три таблицы, person , address и pa , со следующими данными:
|
|
|
Таблица pa связывает таблицы людей и адресов, показывая, что Джо, Боб и Энн все живут на Мэйн-стрит 2001, но Джо также поселяется на бульваре Пико.
Чтобы удалить joe из базы данных, необходимо выполнить два удаления:
УДАЛИТЬ ОТ человека, ГДЕ pid = 1 ; УДАЛИТЬ ИЗ pa ГДЕ pid = 1 ;
Для сохранения ссылочной целостности записи Джо должны быть удалены как у человека, так и у отца . Средства, с помощью которых поддерживается целостность, могут проявляться по-разному в различных системах управления реляционными базами данных. [ необходима цитата ] Возможно, помимо трех таблиц, база данных также была настроена с помощью триггера, так что всякий раз, когда строка удаляется от человека, любые связанные строки будут удалены из pa . Затем первое утверждение:
УДАЛИТЬ ОТ человека, ГДЕ pid = 1 ;
будет автоматически вызывать второй:
УДАЛИТЬ ИЗ pa ГДЕ pid = 1 ;
Связанные команды [ править ]
Удаление всех строк из таблицы может занять очень много времени. Некоторые СУБД [ требуется пояснение ] предлагают команду TRUNCATE TABLE, которая работает намного быстрее, поскольку она только изменяет метаданные и обычно не тратит время на принудительное применение ограничений или запуск триггеров.
DELETE удаляет только строки. Для полного удаления таблицы можно использовать команду DROP .
Ссылки [ править ]
- ^ «Оператор удаления SQL» . w3schools.com.