Теория баз данных

Средства изменения описания таблиц и средства удаления таблиц


В язык SQL добавлены средства изменения схемы таблиц. Что можно и что нельзя изменять в описании таблицы? В стандарте SQL2 добавлены достаточно широкие возможности по модификации уже существующих схем таблиц. Для модификации таблиц используется оператор ALTER TABLE, который позволяет выполнить следующие операции изменения для схемы таблицы:

  • добавить новый столбец в уже существующую и заполненную таблицу;

  • изменить значение по умолчанию для какого-либо столбца;

  • удалить столбец из существующей таблицы;

  • добавить или удалить первичный ключ таблицы;

  • добавить или удалить новый внешний ключ таблицы;

  • добавить или удалить условие уникальности;

  • добавить или удалить условие проверки для любого столбца или для таблицы в целом.

    Синтаксис оператора ALTER TABLE:

    <Изменить описание таблицы>::= ALTER TABLE <имя таблицы> { ADD определение столбца> |

    ALTER <имя столбца> (SET DEFAULT <значение> DROP DEFAULT } |

    DROP <имя столбца>{CASCADE | RESTRICT} |

    ADD { <определение первичного ключа>| определение внешнего ключа> |

    <условие уникальности данных> |

    <условие проверки> } |

    DROP CONSTRAINT имя условия { CASCADE | RESTRICT} }

    Одним оператором ALTER TABLE можно провести только одно из перечисленных изменений, например, за один раз можно добавить один столбец. Если вам требуется добавить два столбца, то необходимо применить два оператора.

    Давайте рассмотрим несколько примеров. Чаще всего применяется операция добавления столбца. Предложение определения нового столбца в операторе ALTER TABLE имеет точно такой же синтаксис, как и в операторе создания таблицы. Добавим столбец EDUCATION (образовние), содержащий символьный тип данных, с заданным перечнем значений («начальное», «среднее», «неоконченное высшее», «высшее»).

    ALTER TABLE READERS

    ADD EDUCATION varchar (30) DEFAULT NULL

    CHECK (EDUCATION IS NULL OR

    EDUCATION= "начальное" OR

    EDUCATION= "среднее " OR EDUCATION= "неоконченное высшее" OR

    Содержание  Назад  Вперед