Ограничения таблицы
Данные ограничения используются в том случае, если они затрагивают сразу несколько столбцов: PRIMARY KEY (список столбцов) — составной первичный ключ; UNIQUE (список столбцов) — составной альтернативный ключ; FOREIGN KEY имя_внешнего_ключа (список столбцов) REFERENCES имя_главной_таблицы [правила поддержки ссылочной целостности]; CHECK (логическое выражение, затрагивающее сразу несколько столбцов). Например: CREATE TABLE t1 (c1 NUMBER(3) NOT NULL, c2 DATE NOT NULL, c3 NUMBER(3) NOT NULL, CONSTRAINT pk_t1 PRIMARY KEY(c1,c2), CONSTRAINT ck_t1 CHECK(c1+c3<=200) ) Создается таблица с именем t1, содержащая три столбца, обязательных для заполнения. Составной ключ таблицы включает столбцы c1 и с2 (обратим внимание, что каждый из столбцов таблицы не обладает свойствами уникальности, поэтому PRIMARY KEY не может быть ограничением одного столбца). Ограничение CHECK также затрагивает сразу два столбца, поэтому оформлено как ограничение таблицы. Удаление таблиц и изменение их структуры Команда удаления таблицы имеет вид: DROP имя_таблицы Нельзя удалить таблицу, если существует внешние ключи, ссылающиеся на эту таблицу. Вместе с таблицей удаляются и созданные для нее индексы и триггеры. Команда изменения структуры таблицы выглядит так: ALTER TABLE имя_таблицы указания_по_изменению_структуры Следует подчеркнуть, что команда ALTERTABLE служит для изменения в определении таблицы и может быть применена только к существующим таблицам. В качестве указаний по изменению структуры таблицы могут использоваться следующие фразы: ADD [COLUMN] определение_столбца – добавить столбец. Например: ALTER TABLE t ADD n NUMBER(4) NOT NULL (t— имя существующей таблицы, n — имя нового столбца)
ADD [CONSTRAINT] ограничение — добавить ограничение.
Например: ALTER TABLE t ADD PRIMARY KEY(n) или ALTER TABLE t ADD CONSTRAINT pk_t PRIMARY KEY(n) В последнем примере ограничение первичного ключа получит имя pk_t DROP COLUMN имя_столбца DROP [CONSTRAINT] ограничение Например: ALTER TABLE t DROP PRIMARY KEY(n) или ALTER TABLE t DROP CONSTRAINT pk_t ALTER TABLE t DROP COLUMN n ALTER (MODIFY в Oracle) новое_определение_существующего_столбца При этом можно изменить тип, размер, ограничение NULL/NOT NULL, значение по умолчанию. Конечно, нельзя изменить имя столбца. Для этого следует удалить столбец со старым именем и добавить новый столбец с нужным именем; Следует отметить, что во многих случаях команда ALTER TABLE позволяет внести изменения в структуру таблицы, уже заполненной данными (если они удовлетворяют вводимым ограничениям). В некоторых случаях требуется, чтобы столбец был пустым, например, сервер Oracle при удалении столбца требует выполнения этого условия. Например: ALTER TABLE t MODIFY c2 VARCHAR(200) Увеличили предельный размер текста для столбца c2
Читайте также: CREATE TABLE имя_таблицы Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|