|
Программирование >> Sql: полное руководство
в отличие от СУБД Sybase, в DB2 основная задача по управлению хранением данных возлагается на язык SQL и его инструкции create tables расе и create nODEGROUP. Как следствие, порядок записи имен файлов и каталогов в этих инструкциях зависит от операционной системы, в которой работает DB2. Имеются и другие инструкции, позволяющие задать буфер промежуточного хранения, скорость обмена данными и другие характеристики, связанные с физическим хранением данных. DB2 использует всю эту информацию в алгоритмах оптимизации производительности. Удаление таблицы (инструкция DROP TABLE) с течением времени структура базы данных изменяется. Для представления новых объектов создаются новые таблицы, а некоторые старые таблицы становятся ненужными. Эти ненужные таблицы можно удалить из базы данных посредством инструкции drop TABLE (рИС. 13.3).
Инструкция содержит имя удаляемой таблицы. Обычно пользователь удаляет одну из своих собственных таблиц и указывает в инструкции простое имя таблицы. Имея соответствующее разрещение, можно также удалить таблицу другого пользователя, но в этом случае необходимо указать полное имя таблицы. Вот несколько примеров инструкции drop table: Таблица customers была заменена двумя новыми таблицами - cust inf0 и acc0unt inf0 - и больше не нужна. drop table customers Сэм дает вам разрешение удалить его таблицу birthdays. drop table sam.birthdays Когда инструкция drop table удаляет из базы данных таблицу, ее определение и все содержимое теряются. Восстановить данные невозможно, и, чтобы повторно создать определение таблицы, прищдось бы использовать новую инструкцию create table. Так как выполнение инструкции drop table может привести к серьезным последствиям, пользоваться ею следует осторожно. Стандарт SQL2 требует, чтобы инструкция drop table включала в себя либо параметр cascade, либо restrict, которые определяют, как влияет удаление таблицы на другие объекты базы данных (например, представления, рассматриваемые в главе 14), зависящие от этой таблицы. Если задан параметр cascade и в базе данных имеются объекты, которые содержат ссылку на удаляемую таблицу, то выполнение инструкции drop table закончится неуспещно. В больщинстве коммерческих СУБД Допускается применение инструкции drop table без каких-либо параметров. ИзAeнeниe определения таблицы (инструкция ALTER TABLE) в процессе работы с таблицей у пользователя часто возникает необходимость добавить в таблицу некоторую информацию. Например, в учебной базе данных может потребоваться: ш добавить в каждую строку таблицы customers имя и номер телефона служащего компании-клиента, через которого поддерживается контакт, если необходимо использовать эту таблицу для связи с клиентами; ш добавить в таблицу products столбец с указанием минимального количества, чтобы база данных могла автоматически предупреждать о том, что запас какого-либо товара стал меньше допустимого предела; ш сделать столбец region в таблице offices внешним ключом для вновь созданной таблицы regions, первичным ключом которой является название региона; удалить определение внешнего ключа для столбца cust таблицы orders, связывающего ее с таблицей customers, и заменить его определениями двух внешних ключей, связывающих столбец oust с двумя вновь созданными таблицами cust inf0 и acc0unt inf0. Эти и другие изменения можно осуществить с помощью инструкции alter table, синтаксическая диафамма которой изображена на рис. 13.4. Данная инсфукция, как и drop table, обычно применяется пользователем по отношению к своим собственным таблвдам. Однако, имея соответствующее разрешение и используя полное имя таблицы, можно изменять таблицы других пользователей. Как видно из рисунка, инструкция alter table может: добавить в таблицу определение столбца; удалить столбец из таблицы; изменить значение по умолчанию для какого-либо столбца; добавить или удалить первичный ключ таблицы; добавить или удалить внешний ключ таблицы; добавить или удалить условие уникальности; добавить или удалить условие на значения. )-ALTER TABLE имя та6лицы - ALTER имя столбца- - DROP имя столбца - ADD определение стопби,а - SET default значение- i- DROP DEFAULT- CASCADE-1- -RESTRICT- - ADD-t- определение первичного ключа - определение внешнего ключа - - условие уникальности- - условие на значения- 1- drop constraint имя ограничения - -CASCADE--RЁSTRlCT- Рис. 13.4. Синтаксическая*диаграмма инструкции ALTER TABLE Предложения на рис. 13.4 изображены в соответствии со стандартом SQL. Во многах СУБД некоторые из них не используются либо используются специфические для конкретной СУБД предложения, которые изменяют другие, не представленные здесь характеристики таблицы. Стандарт SQL2 требует, чтобы инструкция alter table применялась для единичного изменения таблицы Например, для добавления столбца и определения нового внешнего ключа потребуются две различные инструкции. В некоторых СУБД это офаничение ослаблено и допускается присутствие нескольких предложений в одной инсфукции alter table. Добавление столбца Чаще всего инсфукция alter table применяется для добавления столбца в существующую таблицу. Предложение с определением столбца в инсфукции alter table имеет точно такой же вид, как и в инструкции create table, и вьшолняет туже самую функцию. Новое определение добавляется в конец определений столбцов таблицы, и в последующих запросах новый столбец будет крайним справа. СУБД обычно предполагает, что новый столбец во всех существующих строках содержит значения null. Если столбец объявлен как not null with default, to СУБД считает, что он содержит значения по умолчанию. Обратите внимание на то, что нельзя объявлять столбец просто как not null, поскольку СУБД подставляла бы в существующие сфоки значения null, нарушая тем самым заданное условие. (В действительности, когда вы добавляете новый столбец, СУБД не заносит во все существующие сфоки нового столбца значения null или значения по умолчанию. СУБД обнаруживает тот факт, что сфока слишком коротка для нового определения таблицы, только при выборке этой строки пользователем, и расширяет ее значениями null или значениями по умолчанию непосредственно перед выводом на экран или передачей в профамму пользователя.) Ниже даны примеры инструкций alter table, добавляющих новые столбцы: Добавить контактный телефон и имя служащего компании-клиента в таблицу CUSTOMERS. ALTER TABLE CUSTOMERS ADD CONTACT NAME VARCHAR(30) ALTER TABLE CUSTOMERS ADD CONTACT PHONE CHAR(10) Добавить в таблицу products столбец с данными о минимально допустимом количестве товара на складе. ALTER TABLE PRODUCTS ADD MIN QrY INTEGER NOT NULL WITH DEFAULT 0 В первом примере новые столбцы будут иметь значения null для существующих иентов. Во втором примере столбец min QTY для существующих товаров будет содержать нули (0), что вполне уместно. Когда инструкция alter table впервые появилась в реляционных СУБД, единственными Сфуктурными элементами таблиц были определения столбцов, поэтому было понятно, что означает предложение add этой инструкции. Со временем таблицы стали включать определения первичных и внешних ключей и прочих офаничений, а в предложении add указывался тип добавляемого офаничения. В целях унификации стандарт SQL2 позволяет добавлять после ключевого слова add слово column
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |