Соответствие 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 |
Реализуется с помощью выражения. |
Нет комментариев