Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопросы и ответы к экзамену по курсу.docx
Скачиваний:
5
Добавлен:
27.09.2019
Размер:
43.61 Кб
Скачать

5. Индексы.

Индекс – это средство, обеспечивающее быстрый доступ к строкам таблицы на основе значений одного или нескольких ее столбцов. В индексе хранятся значения данных и указатели на строки, где эти данные встречаются. При выполнении запроса СУБД сначала определяет список индексов, связанных с данной таблицей. Затем устанавливает, что является более эффективным, просмотреть всю таблицу или для обработки запроса использовать существующий индекс. Рекомендуется создавать индекс для столбцов, которые часто используются в условиях поиска. В SQL индекс для таких столбцов создается запросом CREATE INDEX.

Поиск в индексе осуществляется очень быстро, так как индекс отсортирован и его строки очень короткие.

6. Представления.

Представления (View) - это временные, производные (иначе - виртуальные) таблицы и являются объектами базы данных, информация в которых не хранится постоянно, как в базовых таблицах, а формируется динамически при обращении к ним. Обычные таблицы относятся к базовым, т.е. содержащим данные и постоянно находящимся на устройстве хранения информации. Содержимое представлений выбирается из других таблиц с помощью выполнения запроса, причем при изменении значений в таблицах данные в представлении автоматически меняются. Представление - это фактически тот же запрос, который выполняется всякий раз при участии в какой-либо команде. Результат выполнения этого запроса в каждый момент времени становится содержанием представления. У пользователя создается впечатление, что он работает с настоящей, реально существующей таблицей.

7. Оператор выборки данных.

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

Оператор SELECT имеет следующий синтаксис:

SELECT [ ALL | DISTINCT ] список_столбцов

FROM список_таблиц

[ WHERE условия_поиска ]

[ GROUP BY список_столбцов ]

[ HAVING критерии_выбора_групп ]

[ ORDER BY список_столбцов ]

8. Предикаты оператора выборки данных.

В стандарте SQL специфицированы 12 основных разновидностей предикатов:

Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.

Предикат BETWEEN проверяет, попадают ли значения проверяемого выражения в диапазон, задаваемый пограничными выражениями, соединяемыми служебным словом AND.

Предикат IS NULL позволяет проверить, являются ли неопределенными значения всех элементов операнда. Если значения всех элементов операнда являются неопределенными, то значением условия IS NULL является true; иначе - false.

Предикат IN определяет, будет ли значение проверяемого выражения обнаружено в наборе значений, который либо явно

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

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

Предикат EXISTS принимает значение true, если подзапрос содержит любое количество строк, иначе его значение равно false. Для NOT EXISTS все наоборот. Этот предикат никогда не принимает значение unknown. Обычно предикат EXISTS используется в зависимых (коррелирующих) подзапросах.

Предикат UNIQUE позволяет сформулировать условие отсутствия дубликатов в результате запроса. Предикат UNIQUE возвращает true, если в результате подзапроса нет совпадающих строк. В противном случае значение условия есть false.

Предикат OVERLAPS применяется для того, чтобы определить, не перекрывают ли друг друга два промежутка времени. Он полезен тогда, когда нужно избежать "накладок" в расписании. Когда два промежутка времени перекрываются, то этот предикат возвращает значение true. Если они не перекрываются, то будет возвращено значение false.

Предикат сравнения с квантором позволяет специфицировать квантифицированное сравнение строчного значения.

Предикат MATCH проверяет, будет ли значение, определенное в конструкторе строки совпадать со значением любой строки, полученной в результате подзапроса.

Предикат IS DISTINCT позволяет проверить, являются ли две строки дубликатами. Строки-операнды должны быть одинаковой степени. Типы данных соответствующих значений строк-операндов должны быть совместимы.