Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
лекции по серверам.doc
Скачиваний:
5
Добавлен:
01.04.2025
Размер:
749 Кб
Скачать
☆
    1. Изменение таблиц

Изменение таблицы осуществляется командой ALTER TABLE. Чаще всего с помощью этой команды добавляют поля к таблице.

ALTER TABLE <имя таблицы>

ADD <имя поля> <тип данных> <длина поля>;

Поле будет добавлено с NULL значениями для всех записей таблицы. Кроме того, новое поле станет последним по порядку в таблице. Допускается добавление сразу нескольких полей. Они должны быть отделены друг от друга запятыми. Изменение структуры таблицы в тот момент, когда она используется, может привести к потере информации. Поэтому БД лучше разрабатывать так, чтобы использовать команду изменения в самом крайнем случае.

В таблицу могут быть добавлены не только новые поля, но и новые ограничения с помощью команды ADD CONSTRAINT <имя ограничения>. Имя ограничения состоит из краткого названия типа ограничения (например, PK для первичного ключа, ID для индекса), символа подчёркивания, имени поля или таблицы и порядкового номера ограничения данного типа, если к одному объекту задаётся несколько ограничений одного типа.

Например, добавить ограничение PRIMARY KEY с именем PK_Tnum для поля TNum таблицы Prep.

ALTER TABLE Prep

ADD CONSTRAINT PK_ Tnum PRIMARY KEY (TNum)

Для добавления ограничения, задающего значение по умолчанию:

ALTER TABLE USP

ADD CONSTRAINT Def_Mark DEFAULT 5 FOR MARK.

Для добавления ограничения проверки значения:

ALTER TABLE USP

ADD CONSTRAINT Сh_Mark CHECK MARK IN (2,3,4,5).

Удаление таблиц выполняется с помощью команды DROP TABLE. Для того чтобы иметь возможность удалить таблицу, пользователь должен быть ее владельцем. Кроме того, перед удалением SQL требует очистки таблицы от данных, что позволяет избежать случайной и невосполнимой потери информации. Таким образом, таблица с находящимися в ней данными не может быть удалена. Перед удалением следует убедиться, что на таблицу не ссылается никакая другая таблица, и что она не используется в каком-либо представлении. Синтаксис команды удаления:

DROP TABLE <имя таблицы>

    1. Создание индексов в системе sql-сервер

Индексом принято называть упорядоченный список полей или групп полей в таблице. Таблицы могут иметь огромное количество записей, при этом записи не находятся в каком-либо определенном порядке, поэтому на их поиск по указанному критерию может потребоваться достаточно продолжительное время. Когда создается индекс в поле, база данных запоминает порядок всех значений этого поля в специальной области памяти. При этом каждое значение поля в индексе содержит ссылку на физическое расположение записи в самой таблице.

Индексы могут состоять сразу из нескольких полей, при этом первое поле является как бы главным, второе упорядочивается внутри первого, третье внутри второго и т.д.

Таким образом, индексы представляют собой наборы уникальных значений для некоторой таблицы с соответствующими ссылками на данные, расположенные в самой таблице. Индексы являются удобным внутренним механизмом системы SQL-сервер, с помощью которого осуществляется доступ к данным наиболее оптимальным способом.

В индексы следует включать поля, к которым часто выдаются запросы при выполнении операций поиска. К ним относятся:

  • основные ключи;

  • внешние ключи, а также другие поля, часто используемые для соединения таблиц;

  • поля, в которых производится поиск диапазонов ключевых значений;

  • поля, к которым производится упорядоченный доступ.

Для создания индекса используется оператор CREATE INDEX.

Синтаксис:

CREATE INDEX имя_индекса ON таблица (поле[, …n])

Таблица, для которой создается индекс, должна уже существовать и содержать имена индексируемых полей. При этом имя индекса не может быть использовано для чего-либо другого в базе данных и SQL сам решает, когда он необходим для работы и использует его автоматически.

Для создания уникальных (не содержащих повторяющихся значений) индексов используется ключевое слово UNIQUE в операторе CREATE INDEX (CREATE UNIQUE INDEX …).

Например, создать индекс c именем Ind_Tnum для поля TNUM таблицы PREDM:

CREATE INDEX Ind_Tnum ON PREDM (TNUM)

Для удаления индекса используется оператор DROP INDEX.

Синтаксис:

DROP INDEX таблица.индекс[,…n]