stringtranslate.com

Удалить (SQL)

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

Примеры

Удалите строки из круговых таблиц , где аромат столбца равен лимонному безе :

УДАЛИТЬ ИЗ пирогов WHEREflavor = 'Лимонное безе ' ;    

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

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

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

УДАЛИТЬ ИЗ моей таблицы ;  

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

УДАЛИТЬ ИЗ mytable WHERE id IN ( ВЫБРАТЬ id FROM mytable2 );           

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

УДАЛИТЬ ИЗ моей таблицы ГДЕ id IN ( значение1 , значение2 , значение3 , значение4 , значение5 );            

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

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

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

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

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

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

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

автоматически вызовет второй:

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

Функции

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

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

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

Рекомендации

  1. ^ «Заявление об удалении SQL» . w3schools.com.

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