stringtranslate.com

Удалить (SQL)

В языке структурированных запросов к базам данных ( SQL ) оператор DELETE используется для удаления одной или нескольких записей из таблицы . Подмножество может быть определено для удаления с использованием условия, в противном случае удаляются все записи. [1] Некоторые системы управления базами данных (СУБД), такие как MySQL , позволяют удалять строки из нескольких таблиц с помощью одного оператора DELETE (иногда это называется многотабличным DELETE).

Примеры

Удалите строки из табличных пирогов , где вкус столбца равен «Лимонный безе» :

УДАЛИТЬ ИЗ pies , ГДЕ flavor = 'Лимонный безе' ;    

Удалить строки в деревьях , если значение высоты меньше 80.

УДАЛИТЬ ИЗ деревьев , ГДЕ высота < 80 ;      

Удалить все строки из mytable :

УДАЛИТЬ ИЗ mytable ;  

Удалить строки из mytable, используя подзапрос в условии where:

УДАЛИТЬ ИЗ mytable ГДЕ id В ( SELECT id FROM mytable2 );           

Удалить строки из mytable, используя список значений:

УДАЛИТЬ ИЗ mytable ГДЕ id IN ( значение1 , значение2 , значение3 , значение4 , значение5 );            

Пример со связанными таблицами

Предположим, что есть простая база данных, в которой перечислены люди и адреса. По одному адресу может проживать более одного человека, а один человек может проживать более чем по одному адресу (это пример отношения «многие ко многим »). В базе данных есть только три таблицы: person , address и pa со следующими данными:

Таблица pa связывает таблицы лиц и адресов, показывая, что Джо, Боб и Энн проживают по адресу Мейн-стрит, 2001, но Джо также проживает на бульваре Пико.

Чтобы удалить Джо из базы данных, необходимо выполнить два удаления:

 УДАЛИТЬ ИЗ person , ГДЕ pid = 1 ; УДАЛИТЬ ИЗ pa , ГДЕ pid = 1 ;         

Для поддержания ссылочной целостности записи Джо должны быть удалены из person и pa . Может быть, что помимо наличия трех таблиц, база данных также была настроена с триггером, так что всякий раз, когда строка удаляется из person , все связанные строки будут удаляться из pa . Затем первое утверждение:

 УДАЛИТЬ ИЗ человека , ГДЕ pid = 1 ;    

автоматически запустит второе:

 УДАЛИТЬ ИЗ pa, ГДЕ pid = 1 ;    

Функции

Связанные команды

Удаление всех строк из таблицы может занять очень много времени. Некоторые СУБД [ требуется разъяснение ] предлагают команду TRUNCATE TABLE , которая работает намного быстрее, поскольку она изменяет только метаданные и обычно не тратит время на принудительное применение ограничений или срабатывание триггеров.

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

Ссылки

  1. ^ "Оператор удаления SQL". w3schools.com.

Внешние ссылки