Самоучитель по SQL-сервер в Linux

         

SELECT INTO

Создание повой таблицы по результатам команды SELECT.

Синтаксис

SELECT [ ALL | DISTINCT [ ON ( уникальное_выражение [. ...] ) ] ]

цель [ AS выходное имя ] [, ...] [ INTO [ TEMPORARY | TEMP ] [ TABLE ] новая_таблица ]

[ FROM источник [ { . | CROSS JOIN } ...] ]

[ WHERE условие_фильтрации ]

[ GROUP BY условие_группировки [, ...] ]

[ HAVING агрегатное_усповие [, ...] ]

[ { UNION | INTERSECT | EXCEPT } [ ALL ] подзапрос ]

[ ORDER BY выражение [ ASC | DESC | USING оператор ] [. ...] ]

[ FOR UPDATE [ OF таблица [, ...]]]

[ LIMIT { число | ALL } [ { OFFSET | , } начало ] ]

источник ::= { [ ONLY ] таблица [ * ]

[ [ AS ] псевдоним_исгочника [ ( сгшсок_псевдонимов) ]


] |

( подзапрос ) [ [ AS ] псевдоним [ ( список_псевдонимов ) ] ] |

источник [ NATURAL ] тип_объединения источник

[ ON ( условие_обьединения ) USING ( список_полей_обьединения ) ]

тип_обьединения ::= [ INNER |

LEFT [ OUTER ]

RIGHT [ OUTER ] |

FULL [ OUTER ] ] JOIN

Параметры

Большая часть параметров команды SELECT INTO совпадает с параметрами команды SELECT. В команде SELECT INTO поддерживаются всего два новых параметра.

  • TEMPORARY, TEMP. Ключевое слово TEMPORARY (или TEMP) означает, что таблица предназначена для временного использования; после завершения сеанса она автоматически уничтожается.
  • новая_таблица. Имя таблицы, создаваемой для хранения записей итогового набора запроса. Таблица создается автоматически и не должна существовать до момента выполнения команды.

Результаты

Возможные результаты перечислены в описаниях команд CREATE TABLE и SELECT.

Описание

Команда SELECT INTO выполняет запрос и использует полученные записи для заполнения новой (автоматически созданной) таблицы. Имена полей и типы данных новой таблицы определяются структурой записей, полученных в результате запроса. С функциональной точки зрения команда SELECT INTO эквивалентна команде CREATE TABLE AS. На практике рекомендуется использовать команду CREATE TABLE AS, поскольку команда SELECT INTO не является стандартной и неправильно интерпретируется PL/pgSQL.

Пример

Следующая команда создает временную таблицу для хранения записей о работниках, коды которых меньше 105:

booktown=# SELECT * INTO TEMP TABLE old_emp

booktown-# FROM employees booktown-# WHERE id < 105;

SELECT




Содержание раздела