Примечание. В соответствии с требованиями SQL условие не может содержать функцию получения времени или имени пользователя. Некоторые СУБД разрешают: функция CURRENT_TIMESTAMP (Microsoft SQL Server, PostgreSQL), Now() (Access).
Примечание. Microsoft SQL Server, Oracle применяют пользовательские типы данных – стандартные типы с ограничениями. Такой способ имеет преимущество в том, что тип данных создается один раз и нет необходимости повторять ограничения на значения.
Создаваемые таблицы хранятся пока не будут уничтожены командой DROP. SQL позволяет создавать таблицы для промежуточных результатов:
- результаты сложного запроса для применении в других запросах;
- копия таблицы (в определенный момент времени);
- результат подзапроса (например, для внешних соединений).
Временная таблица уничтожается после завершения сессии. Различают глобальную и локальную временные таблицы. Временная таблица создается командой CREATE [GLOBAL | LOCAL] TEMPORARY TABLE. Можно удалит таблицу до завершения сессии командой DROP TABLE. Временная таблица может имеет то же имя, что и базовая. Тогда она будет подменять базовую, пока не будет удалена.
Microsoft Access не поддерживает временные таблицы. Не все СУБД поддерживают глобальные таблицы (доступные всем активным сессиям).
Команда SELECT колонки INTO новая_таблица FROM таблица [WHERE условие] создает таблицу по образу существующей (проекция) и заполняет строками, полученными в результате выполнения запроса. В отличие от команды INSERT SELECT, импортирующей строки в существующую таблицу, SELECT INTO экспортирует строки из существующей таблицы. Результат помещается в одну таблицу, хотя в запросе может быть соединено несколько таблиц.
Команду можно использовать для быстрого копирования структуры, если задать невыполнимое условие. Можно заполнить и временную таблицу.
В таблицу можно добавить, удалить либо изменить столбцы командой ALTER TABLE. Команда имеет формат:
ALTER TABLE таблица действие;
Действие начинается с ключевого слова ADD, DROP, ALTER.
Добавляются/удаляются столбцы или ограничения.
ADD имя столбца тип
DROP COLUMN имя_столбца
ADD определение_ограничения
DROP CONSTRAINT имя_ограничения
Индекс представляет собой список, где каждое значение из индексируемого столбца хранится вместе с адресом (физическим расположением) строки, содержащей это значение. СУБД использует индексы для выполнения поиска. Индексы бывают простые и сложные. Индексы создаются для столбцов, которые:
- часто используются при поиске,
- часто сортируются,
- регулярно применяются в объединениях.
Не рекомендуется создавать индексы для столбцов, которые:
- содержат небольшое число вариантов значений (пол, штат),
- редко применяются в запросах, принадлежат таблице с небольшим числом строк.
НЕ следует создавать избыточные индексы, поскольку увеличивается время на их обновление при изменении таблицы.
Индекс также может служить средством обеспечения уникальности. Уникальный индекс требует уникальности значений в столбце (либо комбинаций значений в столбцах для сложного индекса). Уникальный индекс создается автоматически при задании первичного ключа или ограничения уникальности. СУБД может автоматически создавать индексы для внешних ключей.
Поскольку индексы не описаны в стандарте SQL-92, команды (кроме CREATE INDEX) различаются в разных СУБД. Индекс создается командой:
CREATE [UNIQUE] INDEX название_индекса ON таблица (индексируемые_ столбцы)
Названия индексов должны быть уникальными в БД для СУБД Oracle, PostgreSQL.
Индекс представляет собой физический механизм для ускорения доступа к данным. Поэтому его не следует считать эквивалентным термину «ключ». Ключ – логический принцип для сохранения ссылочной целостности. Индексы сохраняются в индексных файлах.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.