Главная страница
Навигация по странице:

  • Таблицы в среде MS SQL Server Сщздание таблицы

  • Ограничение первичного ключа ( PRIMARY KEY )

  • Ограничение внешнего ключа ( FOREIGN KEY )

  • Ограничение уникального ключа ( UNIQUE )

  • Ограничение на значение ( NOT NULL )

  • Ограничение по умолчанию ( DEFAULT )

  • Изменение таблицы

  • Управление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника. Управление данными 3 сем. Управление данными


    Скачать 0.55 Mb.
    НазваниеУправление данными
    АнкорУправление данными, синергия 3 семестр, шпаргалка, краткое содержание учебника
    Дата22.10.2022
    Размер0.55 Mb.
    Формат файлаdocx
    Имя файлаУправление данными 3 сем.docx
    ТипДокументы
    #748915
    страница7 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Изменение и удаление таблицы. 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 ] (лог_выражение) }

    К группам из одного или более полей.

    Ограничения целостности имеют приоритет над триггерами, правилами и значениями по умолчанию. Параметры:

    1. Ограничение первичного ключа (PRIMARY KEY). Ни один из включенных в первичный ключ столбцов не может принимать значение NULL. Определяется также для столбцов-счетчиков.

    2. Ограничение внешнего ключа (FOREIGN KEY). Имя род. таблицы и ее столбцы указ. в предложении REFERENCES. Изменение/удаление записи родительской таблицы блокируется параметрами ON DELETE NO ACTION и ON UPDATE NO ACTION по умолчанию. Для разрешения каскадного воздействия - ON DELETE CASCADE и ON UPDATE CASCADE.

    3. Ограничение уникального ключа (UNIQUE). Для каждой строки данных в столбце должны содержаться уникальные значения. Допускается существование значения NULL только один раз.

    4. Ограничение на значение (NOT NULL). Запрещает ввод в столбец нулевого значения.

    5. Ограничение проверочное (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_ предписывает задействовать или отключить конкретный триггер или все триггера, связанные с таблицей.
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта