WikiDer > Удалить (SQL)

Delete (SQL)

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

Примеры

Удалить ряды из таблицы пироги куда столбец вкус равно Лимонное безе:

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

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

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

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

УДАЛИТЬ ИЗ mytable;

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

УДАЛИТЬ ИЗ mytable КУДА я бы В (       ВЫБРАТЬ я бы         ИЗ mytable2      );

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

УДАЛИТЬ ИЗ mytable КУДА я бы В (       значение1,       значение2,       значение3,       значение4,       значение5      );

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

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

человек
пидимя
1Джо
2Боб
3Анна
адрес
помогатьописание
1002001 Main St.
20035 Pico Blvd.
па
пидпомогать
1100
2100
3100
1200

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

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

 УДАЛИТЬ ИЗ человек КУДА пид=1; УДАЛИТЬ ИЗ па КУДА пид=1;

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

 УДАЛИТЬ ИЗ человек КУДА пид=1;

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

 УДАЛИТЬ ИЗ па КУДА пид=1;

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

Удаление всех строк из таблицы может занять очень много времени. Немного СУБД[требуется разъяснение] предложить ОБРЕЗАТЬ ТАБЛИЦУ команда, которая работает намного быстрее, поскольку она изменяет только метаданные и обычно не тратит время на принудительное применение ограничений или запуск триггеров.

DELETE удаляет только строки. Для полного удаления таблицы УРОНИТЬ можно использовать команду.

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

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