Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL.doc
Скачиваний:
4
Добавлен:
07.12.2018
Размер:
284.16 Кб
Скачать

8. Команда извлечения данных из таблицы. Секция From, синтаксис, подробное описание. Использование горизонтальных и вертикальных объединений.Примеры.

WITH common_table_expression

SELECT выражение

Into имя_таблицы

FROM имя_источника_данных

WHERE условие поиска

GROUP BY перечень_упорядочиваемых_колонок

HAVING условие_поиска

ORDER BY

COMPUTE выражение

FOR выражение

OPTION параметры_запроса

Секция FROM

 FROM выражение [IN внешняяБазаДанных]

Выражение, определяющее одну или несколько таблиц, откуда извлекаются данные. Это выражение может быть именем отдельной таблицы, именем сохраненного запроса или результатом операции JOIN:

  • INNER JOIN - для каждой сроки таблицы из правой части оператора объединения по очереди выбирается строка из таблицы левой части оператора объединения, удовлетворяющая условию.

  • LEFT OUTER JOIN - для каждой сроки таблицы из левой части оператора объединения по очереди выбираются строка из таблицы правой части оператора объединения, удовлетворяющая условию. Если такой строки нет, то берутся значения NULL для всех выбираемых столбцов «правой» таблицы.

  • RIGHT OUTER JOIN - для каждой сроки таблицы из правой части оператора объединения по очереди выбирается строка из таблицы левой части оператора объединения, удовлетворяющая условию. Если такой строки нет, то берутся значения NULL для всех выбираемых столбцов «левой» таблицы.

  • FULL OUTER JOIN - для каждой сроки таблицы из левой части оператора объединения по очереди выбирается строка из таблицы правой части оператора 3объединения, удовлетворяющая условию. Если такой строки нет, то берутся значения NULL для всех выбираемых столбцов «правой» таблицы. Далее, берутся строки «правой» таблицы, не удовлетворяющие условию, и дополняются значениями NULL для выбираемых столбцов «левой» таблицы.

CROSS JOIN – выполняется следующим образом: для каждой сроки таблицы из правой части оператора объединения по очереди выбирается строка из таблицы левой части оператора объединения. Эквивалентно перечислению источников данных через запятую.

  • объединение с помощью оператора {CROSS | OUTER} APPLY.

  • CROSS – результатом является все пары строк полученных в результате объединения множества строк, полученных функцией, с множеством строк «левой» таблицы.

  • OUTER – результатом является все пары строк полученных в результате объединения множества строк, полученных функцией, с множеством строк «левой» таблицы.

  1. Группировка (с «разворотом») строк таблицы (оператор PIVOT). Осуществляет группировку по столбцу, имя которого указывается после ключевого слова FOR. Затем, для каждой группы, значения которых должны быть указаны в select_list и в перечне имен столбцов после ключевого слова IN генерируется значение, которые возвращает агрегационная функция.

Обратный «разворот» столбцов таблицы (оператор UNPIVOT). Выполняет, по сути, действие обратное оператору PIVOT (за исключением получения наборов строк, которые образовывали каждую группу). Его использование допустимо, если уровень совместимости для БД выставлен в значение 90. Он выполняет «разворот» таблицы, так что столбцы становятся строками, а строки – столбцами (подобно транспонированию матрицы). Таким образом, значения столбца, имя которого указывается после оператора UNPIVOT формируют различные значения для групп.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]