Классика баз данных - статьи

       

Оператор DELETE


Оператор DELETE в Oracle полностью соответствует требованиям начального уровня ANSI SQL. Однако имеются некоторые дополнительные возможности:

  • Ключевое слово FROM не обязательно
  • использование табличных алиасов для ссылок на обновляемую таблицу в подзапросах
  • подзапросы в предложении WHERE могут ссылаться на обновляемую таблицу
  • Оператор DELETE поддерживает удаление из подзапросов

    1,2 DELETE emp aaa WHERE sal IN (SELECT AVG(sal) 3 FROM emp bbb WHERE aaa.deptno=bbb.deptno)

    1. в предложении DELETE отсутствует ключевое слово FROM

    2. таблице emp присваивается алиас aaa для последующей ссылки на обновляемую таблицу в подзапросе

    3. делается выборка из таблицы emp, из которой делается удаление этим же оператором

    4. Оператор:

    DELETE FROM emp WHERE job='управляющий'

    аналогичен оператору: DELETE FROM (SELECT * FROM emp) WHERE job='управляющий'



    Содержание раздела