Выражение SQL DELETE удаляет строки данных из указанной таблицы или представления.
- Откройте редактор SQL и подключитесь к базе данных.
Подключитесь с помощью учетной записи, имеющей права доступа для удаления из таблицы.
- Ниже приведены примеры запросов, которые удаляют данные из каждой поддерживаемой базы данных:
- В этом примере удаляются значения из таблицы Oracle на основе пространственного фильтра:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE sde.st_overlaps (sa.zone, sde.st_buffer (hs.location,.01)) = 1);
- В этом примере удаляются значения из таблицы PostgreSQL на основе пространственного фильтра:
DELETE FROM sensitive_areas WHERE names EXISTS (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 't');
- В этом примере из таблицы базы данных SQLite удаляются значения на основе пространственного фильтра:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) = 1);
- В IBM Db2 используйте следующее выражение:
DELETE FROM sensitive_areas WHERE names (SELECT sa.names FROM sensitive_areas sa, hazardous_sites hs WHERE db2gse.st_overlaps (sa.zone, db2gse.st_buffer (hs.location,.01)) = 1);
- Informix не поддерживает изменение таблицы или представления, использованной в подзапросе. Поэтому разбейте запрос на две части: выбор во временную таблицу и удаление с ее помощью.
SELECT sa.name FROM sensitive_areas sa, hazardous_sites hs WHERE st_overlaps (sa.zone, st_buffer (hs.location,.01)) INTO TEMP tempTable; DELETE FROM sensitive_areas WHERE name IN (select name from tempTable);
- В этом примере удаляются значения из таблицы Oracle на основе пространственного фильтра: