Соответствие SQL предложений конструкциям языка скриптов

Схематично команда SELECT в SQL выглядит следующим образом:

SELECT * | { [DISTINCT | ALL] <список полей> .,…}

            FROM {<имя таблицы> [<алиас>]}…     

                        [WHERE <условие>]

                        [GROUP BY {<имя столбца> <целое>} .,…]

                        [HAVING < условие >]

                        [ORDER BY {<имя столбца> | <целое>} .,…]

[{UNION [ALL]

SELECT * | { [DISTINCT | ALL] <список полей> .,…}

                        FROM {<имя таблицы> [<алиас>]}…     

                                   [WHERE < условие >]

                                   [GROUP BY {<имя столбца> <целое>} .,…]

                                   [HAVING < условие >]

                                   [ORDER BY {<имя столбца> | <целое>} .,…]

}]…;

Рассмотрим соответствие конструкций языка скриптов различным элементам команды и операторам SQL.

SQL предложение

Конструкция языка скриптов

SELECT в целом

Запрос в целом

DISTINCT

Признак ‘Distinct (Исключать дублирующие записи)’

ALL

По умолчанию

FROM {<имя таблицы> [<алиас>]}

Раздел ‘FROM (Таблицы)’

SELECT <список полей>

Разделы ‘Параметры’ и ‘Выражения’

[WHERE <условие>]

Раздел ‘WHERE (Ограничения на отбор данных)’

[GROUP BY {<имя столбца> <целое>} .,…]

Раздел ‘GROUP BY (Группировка)’

[HAVING < условие >]

Раздел ‘HAVING (Ограничения на группы строк заданных разделом GROUP BY)’

[ORDER BY {<имя столбца> | <целое>} .,…]

Раздел ‘ORDER BY (Сортировка)’

UNION [ALL]

Условия объединения запросов в разделе ‘FROM (Таблицы)’

Операторы сравнения и булевы операторы

Атрибуты разделов ‘WHERE’ и ‘HAVING’

IN

Для произвольного набора значений реализуется с помощью выражения.

Для результатов подзапроса - атрибут ‘IN (равно какому-либо из …) в разделах ‘WHERE’ и ‘HAVING’

BETWEEN

Реализуется с помощью выражения.

LIKE

Реализуется с помощью выражения и описанных в проекте функций SQL сервера.

IS NULL, NOT NULL

= NULL и <> NULL в выражениях.

Функции агрегирования: COUNT, SUM, AVG, MAX, MIN

Описанные в проекте агрегатные функции SQL сервера.

Соединение таблиц (join)

Внутреннее соединение реализуется через обычное равенство, а для внешнего соединения используется специальный атрибут ‘Результат (Внешнее соединение таблиц – допустимо отсутствие значения’

Алиасы

Реализуются автоматически, т.к. адресация к полям таблиц (подзапросов) осуществляется с помощью уточняющего параметра к ссылке на таблицу.

Вложенный запрос (подзапрос)

Атрибут ‘Запрос’ в разделах ‘WHERE’,  ‘HAVING’, ‘FROM (Таблицы)’

EXISTS

Атрибут ‘EXISTS (существует …) в разделах ‘WHERE’ и ‘HAVING’

ANY, ALL, SOME

Реализуется с помощью выражения.