WikiDer > Удалить (SQL)
Эта статья в значительной степени или полностью полагается на один источник. (Сентябрь 2019) |
В языке структурированных запросов к базе данных (SQL), УДАЛИТЬ оператор удаляет одну или несколько записей из стол. Подмножество может быть определено для удаления с помощью условия, в противном случае удаляются все записи.[1] Немного системы управления базами данных (СУБД), например MySQL, разрешить удаление строк из нескольких таблиц с помощью одного оператора DELETE (это иногда называется удалением нескольких таблиц).
Примеры
Удалить ряды из таблицы пироги куда столбец вкус равно Лимонное безе:
УДАЛИТЬ ИЗ пироги КУДА вкус='Лимонное безе';
Удалить строки в деревья, если значение высота меньше 80.
УДАЛИТЬ ИЗ деревья КУДА высота < 80;
Удалить все строки из mytable:
УДАЛИТЬ ИЗ mytable;
Удалить строки из mytable используя подзапрос в условии where:
УДАЛИТЬ ИЗ mytable КУДА я бы В ( ВЫБРАТЬ я бы ИЗ mytable2 );
Удалить строки из mytable используя список значений:
УДАЛИТЬ ИЗ mytable КУДА я бы В ( значение1, значение2, значение3, значение4, значение5 );
Предположим, есть простая база данных, в которой перечислены люди и адреса. По определенному адресу может проживать более одного человека, и один человек может проживать более чем по одному адресу (это пример отношения "многие ко многим"). В базе данных всего три таблицы, человек, адрес, и па, со следующими данными:
|
|
|
В па Таблица связывает таблицы с людьми и адресами, показывая, что Джо, Боб и Энн все живут на Мейн-стрит 2001, но Джо также поселился на бульваре Пико.
Чтобы удалить joe из базы данных, необходимо выполнить два удаления:
УДАЛИТЬ ИЗ человек КУДА пид=1; УДАЛИТЬ ИЗ па КУДА пид=1;
Для сохранения ссылочной целостности записи Джо должны быть удалены из обоих человек и па. В разных системах управления реляционными базами данных средства, с помощью которых поддерживается целостность, могут проявляться по-разному.[нужна цитата] Может случиться так, что помимо трех таблиц, база данных также была настроена с помощью триггера, чтобы всякий раз, когда строка удаляется из человек любые связанные строки будут удалены из па. Затем первое утверждение:
УДАЛИТЬ ИЗ человек КУДА пид=1;
бы автоматически вызвать второй:
УДАЛИТЬ ИЗ па КУДА пид=1;
Связанные команды
Удаление всех строк из таблицы может занять очень много времени. Немного СУБД[требуется разъяснение] предложить ОБРЕЗАТЬ ТАБЛИЦУ команда, которая работает намного быстрее, поскольку она изменяет только метаданные и обычно не тратит время на принудительное применение ограничений или запуск триггеров.
DELETE удаляет только строки. Для полного удаления таблицы УРОНИТЬ можно использовать команду.
Рекомендации
- ^ «Оператор удаления SQL». w3schools.com.