Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными
Скачать 0.55 Mb.
|
Изменение и удаление таблицы. ALTER TABLE для добавления/удаления нового столбца, добавления в/удаления из определения таблицы ограничения, задание/отмена для столбца значения по умолчанию. Оператор изменения таблицы: <изменение_таблицы> ::= ALTER TABLE имя_таблицы [ADD [COLUMN]имя_столбца тип_данных [ NOT NULL ][UNIQUE] [DEFAULT <значение>][ CHECK (<условие_выбора>)]] [DROP [COLUMN] имя_столбца [RESTRICT | CASCADE ]] [ADD [CONSTRAINT [имя_ограничения]] [{PRIMARY KEY (имя_столбца [,...n]) |[UNIQUE (имя_столбца [,...n])} |[FOREIGN KEY (имя_столбца_внешнего_ключа [,...n]) REFERENCES имя_род_таблицы [(имя_столбца_род_таблицы [,...n])], [ MATCH {PARTIAL | FULL} [ON UPDATE {CASCADE| SET NULL | SET DEFAULT | NO ACTION}] [ON DELETE {CASCADE| SET NULL | SET DEFAULT | NO ACTION}] |[CHECK(<условие_выбора>)][,...n]}] [DROP CONSTRAINT имя_ограничения [RESTRICT | CASCADE]] [ALTER [COLUMN] SET DEFAULT <значение>] [ALTER [COLUMN] DROP DEFAULT] Таблицы в среде MS SQL Server Сщздание таблицы. Команда: <определение_таблицы> ::= CREATE TABLE [ имя_базы_данных.[владелец]. | владелец. ]имя_таблицы (<элемент_таблицы>[,...n]) где <элемент_таблицы> ::= {<определение_столбца>} | <имя_столбца> AS <выражение> |>ограничение_таблицы< <Выражение> задает значение для вычисляемого столбца - это виртуальные столбцы (не хранятся физически в таб. и вычис. с исп. значений столбцов той же таблицы). Могут быть отключены в разделе SELECT, не могут входить во внещний ключ, нет значений по умолчанию, не учавствуют в операциях INSERT и DELETE. <определение_столбца> ::= { имя_столбца <тип_данных>} [ [ DEFAULT <выражение> ] | [ IDENTITY (начало, шаг) [NOT FOR REPLICATION]]]] [ROWGUIDCOL][<ограничение_столбца>][...n]] IDENTITY указывает, что соот. столбец будет столбцом-счетчиком. Дополнительно: начальное значение и шаг приращения (по умолч. = 1). NOT FOR REPLICATION - сервер не выполн. автоматического генерирования значений для столбца, а разрешит вставку в него произв. значений. <ограничение_столбца>::= [ CONSTRAINT имя_ограничения ] { [ NULL | NOT NULL ] | [ {PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] [ WITH FILLFACTOR=фактор_заполнения ] [ ON {имя_группы_файлов | DEFAULT } ] ] ] | [ [ FOREIGN KEY ] REFERENCES имя_род_таблицы [(имя_столбца_род_таблицы) ] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] [ NOT FOR REPLICATION ]] | CHECK [ NOT FOR REPLICATION](<лог_выражение>) } Только к определенному полю. <ограничение_таблицы>::= [CONSTRAINT имя_ограничения ] { [ {PRIMARY KEY | UNIQUE } [ CLUSTERED | NONCLUSTERED ] {(имя_столбца [ASC | DESC][,...n])} [WITH FILLFACTOR=фактор_заполнения ] [ON {имя_группы_файлов | DEFAULT } ]] |FOREIGN KEY[(имя_столбца [,...n])] REFERENCES имя_род_таблицы [(имя_столбца_род_таблицы [,...n])] [ ON DELETE { CASCADE | NO ACTION } ] [ ON UPDATE { CASCADE | NO ACTION } ] | NOT FOR REPLICATION ] | CHECK [ NOT FOR REPLICATION ] (лог_выражение) } К группам из одного или более полей. Ограничения целостности имеют приоритет над триггерами, правилами и значениями по умолчанию. Параметры: Ограничение первичного ключа (PRIMARY KEY). Ни один из включенных в первичный ключ столбцов не может принимать значение NULL. Определяется также для столбцов-счетчиков. Ограничение внешнего ключа (FOREIGN KEY). Имя род. таблицы и ее столбцы указ. в предложении REFERENCES. Изменение/удаление записи родительской таблицы блокируется параметрами ON DELETE NO ACTION и ON UPDATE NO ACTION по умолчанию. Для разрешения каскадного воздействия - ON DELETE CASCADE и ON UPDATE CASCADE. Ограничение уникального ключа (UNIQUE). Для каждой строки данных в столбце должны содержаться уникальные значения. Допускается существование значения NULL только один раз. Ограничение на значение (NOT NULL). Запрещает ввод в столбец нулевого значения. Ограничение проверочное (CHECK) и правила. Для проверки допустимости данных, вводимых в конкретный столбец таблицы. Задают диапазон возможных значений для столбца или столбцов. Используютя логические выражения. NOT FOR REPLICATION - не выполнять проверочных действий, если они выполняются подсистемой репликации. Могут быть реализ. с помощью правил - самостоятельный объект БД, который связывается со столбцом таблицы или пользовательским типом данных. Команда: CREATE RULE имя_правила AS выражение Связать правило с тем или иным столбцом таблицы: системная хранимая процедура: sp_bindrule [@rulename=] 'rule' [@objname=] 'object_name' [,[@futureonly=['futureonly_flag'] Отменить правила: sp_unbindrule [@objname=] 'object_name' [,[@futureonly=['futureonly_flag'] Удалить правила: DROP RULE {имя_правила} [,...n] Ограничение по умолчанию (DEFAULT). Столбцу может быть присвоено значение по умолчанию. При определении в таблице столбца с параметром ROWGUIDCOL сервер автоматически определяет для него значение по умолчанию в виде функции NEWID(). Дополнительным механизмом исп. значений по умолчанию явл. объекты БД, созданные командой: CREATE DEFAULT имя_умолчания AS константа Умолчание связывается с тем или иным столбцом таблицы с помощью процедуры: sp_bindefault [@defname=] 'default', [@objname=] 'object_name' [,[@futureonly=] 'futureonly_flag'] где 'object_name' может быть представлен как 'имя_таблицы.имя_столбца' Удаление ограничения по умолчанию: DROP DEFAULT {имя_умолчания} [,...n] если предварительно это ограничение было удалено из всех таблиц процедурой sp_unbindefault [@objname=] 'object_name' [,[@futureonly=] 'futureonly_flag'] При создании таблицы необязательное ключевое слово CONSTRAINT присваивает ограничению имя, уникальное в пределах БД. Ключевые слова CLUSTERED и NONCLUSTERED позволяют создать для столбца кластерный или некластерный индекс. Для ограничения PRIMARY KEY по умолчанию создается кластерный индекс, а для ограничения UNIQUE - некластерный. В каждой таблице - один кластерный индекс, особенностью кот. явл. то, что в соответствии с ним изменяется физический порядок строк в таблице. ASC и DESC определяют метод упорядочения данных в индексе. С помощью параметра WITH FILLFACTOR=фактор_заполнения задается степень заполнения индексных страниц при создании индекса. Значение фактора заполнения указывается в процентах и может изменяться в промежутке от 0 до 100. Параметр ON имя_группы_файлов обозначает группу, в которой предполагается хранить таблицу. Изменение таблицы. Команда: <изменение_таблицы> ::= ALTER TABLE имя_таблицы {[ALTER COLUMN имя_столбца { тип_данных [(точность[,масштаб])] [ NULL | NOT NULL ] | {ADD | DROP } ROWGUIDCOL }] | ADD { [<определение_столбца>] | имя_столбца AS выражение } [,...n] | [WITH CHECK | WITH NOCHECK ] ADD { <ограничение-таблицы> } [,...n] | DROP { [CONSTRAINT ] имя_ограничения | COLUMN имя_столбца}[,...n] | {CHECK | NOCHECK } CONSTRAINT {ALL | имя_ограничения[,...n]} | {ENABLE | DISABLE } TRIGGER {ALL | имя_триггера [,...n]}} {ENABLE | DISABLE } TRIGGER ALL_ предписывает задействовать или отключить конкретный триггер или все триггера, связанные с таблицей. |