Учебное пособие Для студентов университетов Специальностей «Информатика», «Прикладная математика»


 СОЗДАНИЕ, МОДИФИКАЦИЯ И УДАЛЕНИЕ ТАБЛИЦ



Pdf көрінісі
бет120/177
Дата15.02.2022
өлшемі2,58 Mb.
#25567
түріУчебное пособие
1   ...   116   117   118   119   120   121   122   123   ...   177
12.6. СОЗДАНИЕ, МОДИФИКАЦИЯ И УДАЛЕНИЕ ТАБЛИЦ 
Рассмотрим основные функции, выполняемые над таблицами. 
Создание таблицы
 выполняется с помощью оператора CREATE, уп-
рощенный синтаксис которого имеет следующий вид: 
CREATE  TABLE  имя_таблицы 
{({ имя_столбца тип_данных [DEFAULT значение]  
[ограничения_столбца] | ограничение_таблицы} 
[,{ имя_столбца тип_данных [DEFAULT значение]  
[ограничения_столбца] | ограничение_таблицы}]...) | 
AS подзапрос}; 
Таблица может быть создана либо стандартным образом через описа-
ние  ее  компонентов,  либо  в  результате  выполнения  некоторого  подза-
проса. Подзапрос – это обычный запрос на выборку информации, реали-
зуемый  оператором SELECT. При  создании  таблицы  задаваемые  имена 
таблиц  и  имена  столбцов  должны  удовлетворять  правилам,  предписы-
ваемым  идентификаторам.  При  этом  естественно,  что  имена,  присваи-
ваемые  таблицам,  должны  быть  уникальными  в  схеме  пользователя,  а 
имена столбцов – в рамках одной таблицы. Для каждого столбца указы-
вается тип данных и, если необходимо, значение, вставляемое в столбец 
по  умолчанию (DEFAULT значение).  Важным  элементом  при  создании 
таблиц  является  задание  ограничений  целостности  данных,  которые 
позволяют отслеживать правильность модификации имеющихся данных 
или  вставляемых  в  таблицу  новых  данных.  Ограничения  целостности 
данных делятся на два типа: ограничения столбца и ограничения табли-
цы.  Ограничения  столбца  позволяют  определить  условия,  которым 
должны  удовлетворять  значения  соответствующего  столбца;  ограниче-
ния  целостности  данных,  накладываемые  на  таблицу,  позволяют  прове-
рить правильность всех добавляемых или модифицируемых строк табли-
цы.  Ограничение  может  быть  именованным  или  безымянным.  Удобнее 
использовать  именованные  ограничения,  поскольку  при  выдаче  инфор-
мации, связанной с возникшим нарушением одного из ограничений, вы-
дается  и  имя  этого  ограничения,  что  весьма  полезно  для  исправления 
ошибок в дальнейшем. Задание ограничений на столбец или ограничений 
на таблицу осуществляется по следующему синтаксису: 
[CONSTRAINT имя_ограничения] тип_ограничения 
 
133


 
Имеются следующие типы ограничений, накладываемых на столбец: 
1)  PRIMARY KEY – это  ограничение  требует,  чтобы  вводимые  в 
столбец значения были уникальными и отличными от пустых, поскольку 
они  будут  использоваться  в  качестве  первичного  ключа,  однозначно 
идентифицирующего  запись;  первичный  ключ  определяется  для  табли-
цы только единожды; 
2)  UNIQUE – это  ограничение  требует,  чтобы  вводимые  в  столбец 
значения в рамках одной таблицы были уникальными; 
3)  NOT NULL – это ограничение требует обязательного присутствия 
в столбце некоторого значения; 
4)  CHECK(выражение) – это ограничение позволяет подвергнуть оп-
ределенной проверке вставляемое в столбец значение; если условия, на-
ложенные  на  вставляемые  значения,  не  выполняются,  то  значения  в 
столбец не помещаются; 
5)  REFERENCES – это  ограничение  позволяет  установить  взаимо-
связь значений данного столбца со значениями столбца другой таблицы. 
Взаимосвязь обеспечивается использованием следующей конструкции: 
REFERENCES имя_таблицы[(имя_столбца)] [ON DELETE CASCADE] 
При внесении значения в столбец создаваемой таблицы система будет 
автоматически  проверять  наличие  аналогичного  значения  в  указанном 
столбце указанной таблицы. При этом естественно, что для обеспечения 
однозначности устанавливаемой взаимосвязи все значения, находящиеся 
в  указанном  столбце,  на  которые  производится  ссылка,  должны  иметь 
ограничение UNIQUE или PRIMARY KEY. Если  в  качестве  имени 
столбца  указанной  таблицы  используется  первичный  ключ,  то  имя 
столбца можно не указывать. Таблица, на чей столбец ссылается другая 
таблица,  называется  главной,  а  таблица,  ссылающаяся  на  нее, – подчи-
ненной. Конструкция ON DELETE CASCADЕ указывает, что при удале-
нии  строк  в  главной  таблице  автоматически  осуществляется  удаление 
соответствующих строк и в подчиненной таблице. 
Ограничения на таблицу во многом напоминают ограничения столб-
ца,  но  при  этом  обычно  задействуют,  как  правило,  несколько  столбцов. 
Например,  можно  задать  ограничение PRIMARY KEY, указав  список 
имен столбцов, тем самым определив составной первичный ключ. При 
этом для столбцов, указываемых в списке, должны быть заданы ограни-
чения UNIQUE  и  NOT  NULL. 
Используя следующую форму записи: 
FOREIGN KEY (список_имен_столбцов) 
REFERENCES имя_таблицы(список_имен_столбцов) 
 
134


 
[ON DELETE CASCADE] 
можно определить составной внешний ключ для таблицы. Естественно, 
что в случае составного внешнего ключа перечень столбцов в подчинен-
ной  таблице  и  перечень  столбцов  в  главной  таблице  должны  совпадать 
по  количеству,  типу  данных  и  порядку  следования.  Конструкция ON 
DELETE CASCADE позволяет  обеспечить  целостность  и  непротиворе-
чивость  данных  при  изменениях,  которые  затрагивают  значения  столб-
цов  главной  таблицы,  являющихся  внешним  ключом  по  отношению  к 
подчиненной таблице. 
Если  ограничение CHECK затрагивает  значения  нескольких  столб-
цов, увязывая их в некоторое достаточно сложное условие, то такое ог-
раничение также удобно определить как ограничение на таблицу.  
Для  генерации  и  вставки  в  столбец  таблицы  уникальных  значений 
можно создать специально предназначенный для этих целей объект – по-
следовательность.  Создание  последовательности  выполняется  с  помо-
щью оператора CREATE по следующему упрощенному синтаксису: 
CREATE SEQUENCE имя_последовательности  
[START WITH начальное_значение] [INCREMENT BY шаг]; 
В самом простейшем случае генерируется последовательность целых 
чисел от 1 до 10
27
 с шагом единица. Конструкция INCREMENT BY по-
зволяет указать шаг изменения значений последовательности. Конструк-
ция START WITH позволяет  задать  начальное  значение  генерируемой 
последовательности, которое при ее отсутствии устанавливается равным 
единице.  Для  вставки  в  столбец  текущего  значения  последовательности 
нужно  указать  имя_последовательности.СURRVAL,  а  для  вставки  в 
столбец  измененного  по  правилам  формирования  последовательности 
следующего значения используется имя_последовательности.NEXTVAL. 
Последовательности  являются  самостоятельными  объектами  БД,  одна  и 
та  же  последовательность  может  быть  использована  для  задания  уни-
кальных значений столбцов нескольких таблиц; при удалении или моди-
фикации  последовательности  значения,  созданные  ею,  сохраняются  в 
таблицах БД.  


Достарыңызбен бөлісу:
1   ...   116   117   118   119   120   121   122   123   ...   177




©emirsaba.org 2024
әкімшілігінің қараңыз

    Басты бет