SQL

Язык SQL представляет собой основной инструмент создания запросов в системах реляционных баз данных. Современный стандарт языка носит название SQL-99, или SQL3. Коммерческие системы зачастую реализуют те или иные расширения стандарта.

♦ Запросы вида «select—from—where». Наиболее общая форма SQL-запросов описывается последовательностью предложений «select—from—where». Подобные запросы позволяют вычислять декартовы произведения нескольких отношений, указанных в предложении from, выбирать кортежи в соответствии с условиями предложения where и осуществлять проекцию полученных результатов на множество выражений, перечисленных в предложении select.

♦ Подзапросы. Запросы вида «select—from—where» могут использоваться в качестве подзапросов, вызываемых из предложений where или from других запросов. Для представления логических условий, касающихся итоговых отношений, получаемых при вызове подзапросов из предложения where, применяются операторы exists, in, all и any.

♦ Теоретико-множественные операции над отношениями. Допустимо выполнять операции объединения, пересечения и разности отношений, сочетая эти отношения или запросы, посредством которых они создаются, с помощью операторов union, intersect и except соответственно.

♦ Выражения соединения. SQL предоставляет различные операторы соединения, подобные natural join, которые могут применяться к отношениям либо непосредственно, либо в контексте предложений from.

♦ Значения null. В SQL предусмотрено использование специальных значений null в тех ситуациях, когда точное значение компонента кортежа не известно. Обработка значений null в контексте арифметических и логических выражений выполняется по особым правилам. Результатом сравнения с null любого значения (даже null) является значение unknown. Значение unknown в логических выражениях «ведет» себя так, будто представляет «промежуточную» величину между булевыми значениями true и false.

♦ Внешние соединения. В SQL предусмотрен оператор outer join, который позволяет соединять отношения и включать в них «висящие» кортежи одного или обоих отношений-операндов. Определенным компонентам висящих кортежей автоматически присваиваются значения null.

♦ Модель отношений-мультимножеств. В SQL отношения трактуются как мультимножества, а не множества, кортежей. Удаление кортежей-дубликатов обеспечивается применением служебного слова distinct, а служебное слово all, напротив, в некоторых случаях позволяет изменить поведение системы, предусмотренное по умолчанию, и гарантировать включение повторяющихся кортежей в итоговое отношение.

♦ Группирование и агрегирование. К значениям, присутствующим в столбце отношения, могут быть применены операторы агрегирования — суммирования (sum), вычисления среднего арифметического (avg), получения максимального (мах) и минимального (мш) значений, а также подсчета (count). Перед выполнением агрегирования кортежи допускают группирование в соответствии с требованиями предложения group by. Для удаления определенных групп используется предложение having.

♦ Команды модификации отношений. SQL позволяет выполнять инструкции модификации отношений — вставлять новые кортежи (INSERT), удалять определенные существующие кортежи (delete) и обновлять содержимое отдельных компонентов кортежей (update).

♦ Определение данных. SQL предлагает средства определения элементов схемы базы данных. Команда create table служит для создания хранимых отношений (называемых таблицами) с указанием наименований атрибутов, их типов и значений, предусмотренных по умолчанию.

♦ Изменение реляционных схем. Для изменения свойств реляционных схем — например, для добавления или удаления атрибутов — используются команды семейства alter. Команды drop применяются с целью удаления элементов схемы базы данных.

♦ Индексы. Коммерческие СУБД позволяют определять индексы для тех или иных групп атрибутов отношений (хотя эти функции не регламентируются стандартами SQL). Наличие индекса способно привести к существенному снижению времени обработки запросов, в которых упоминаются значения индексированных атрибутов.

♦ Виртуальные таблицы. Определение виртуальной таблицы содержит запрос к тем или иным базовым таблицам. К виртуальным таблицам можно обращаться с запросами точно так же, как и к любым хранимым таблицам, и в процессе обработки подобных запросов система преобразует их в эквивалентные запросы, адресованные соответствующим базовым таблицам.

Источник: Системы Баз Данных, полный курс. Дж.Ульман.

Иногда нужно герметично закрыть дыры, для этого есть жидкая резина, которая очень герметично закроет щели и влага внутрь не попадёт. Теперь качественный ремонт квартир краснодар не заставит вас о нём и думать. Лучшие тёплый двери из массива вам в квартиру.


Интересные записи

Написать комментарий