Sql create table from sql select: CREATE TABLE AS SELECT (CTAS) — Azure Synapse Analytics

CREATE TABLE AS SELECT в Snowflake, простое объяснение

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

Что такое CREATE TABLE AS SELECT?

CREATE TABLE AS SELECT создает новую таблицу, которая структурирована и заполнена данными, возвращенными запросом на выборку.

Преимущество использования этого метода для создания таблицы двоякое:

  1. Новая таблица заполняется возвращенными данными
  2. Вам не нужно определять имя каждого столбца, тип данных и ограничение

Вариант использования для этого подхода можно получить предварительно загруженный набор данных в руки конечных пользователей или как способ сократить время загрузки данных.

Создать таблицу с помощью запроса SELECT в SQL

Команда SQL создать таблицу как выбрать создаст новую таблицу, заполненную данными из запроса select . В простейшей форме эта команда требует всего два аргумента:

  1. A select query
  2. Имя таблицы, которую она создаст

После того, как они определены, определение таблицы и загрузка данных будут происходить автоматически за кулисами.

Пример использования CREATE TABLE AS SELECT в Snowflake

Этот метод очень похож независимо от используемой вами технологии базы данных, но давайте рассмотрим пример его реализации в Snowflake:

 создать таблицу  как ;
создать таблицу products_on_sale как
выберите product_id, цену из продуктов
где on_sale = Истина;
 

Создать таблицу SQL из представления

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

Давайте рассмотрим пример реализации этого в Snowflake. Мы создадим новое представление, а затем используем это вновь определенное представление в создать таблицу как выбрать :

 создать представление products_on_sale_view как
выберите product_id, цену из продуктов
где on_sale = Истина;
создать таблицу products_on_sale как
выберите * из products_on_sale_view;
 

Использование CREATE TABLE AS SELECT с добавленными ограничениями

Вы можете продолжить разработку оператора create table as select , добавив ограничения как к таблице, так и к столбцам. Рекомендуется как способ улучшить качество кода и снизить вероятность возникновения ошибок.

CREATE OR REPLACE TABLE AS SELECT

Если вы хотите создать таблицу, но она уже существует, будет возвращена ошибка. Этого можно избежать, используя команду create or replace , которая заменит таблицу, если она уже существует.

 создать или заменить таблицу  как ;
создать или заменить таблицу products_on_sale на
выберите product_id, цену из продуктов
где on_sale = Истина;
 

CREATE TABLE AS SELECT с ограничениями столбца

То, что вы создаете таблицу и заполняете ее запросом select , не означает, что вы не можете добавить ограничения столбцов . В этом примере мы будем основываться на нашем предыдущем запросе product_on_sale , добавив некоторые из наиболее распространенных ограничений.

 создать или заменить таблицу products_on_sale (
product_id числовое значение, отличное от нуля,
цена числовая)
как
выберите product_id, цену из продуктов
где on_sale = Истина;
 

Столы

Как создать временную таблицу в Snowflake
Создать таблицу как выборку в Snowflake

Представления

Представление и таблица в SQL
Материализованное представление и таблица в SQL

Функции

Выбрать все столбцы, кроме одного или нескольких

Ссылки 9 0005

Документация Snowflake

Как использовать инструкцию SQL SELECT

Поиск

При работе с базами данных одной из общих функций является создание запроса, посредством которого программист или администратор базы данных должен выбрать некоторые данные из таблицы в базе данных. В SQL (языке структурных запросов) это достигается с помощью оператора SQL SELECT . И это тема сегодняшнего урока по программированию баз данных.

Прочитано: Лучшие сертификаты для администраторов баз данных

Оператор SQL SELECT

В SQL программисты могут извлекать данные из таблицы с помощью оператора SQL SELECT . Синтаксис оператора SELECT можно увидеть в следующем примере кода:

 /* Синтаксис оператора SQL SELECT */

ВЫБЕРИТЕ столбецA
ИЗ таблица_пример;
 

В приведенном выше примере SQL мы определяем, что хотим SELECT все данные, хранящиеся в столбце A , который находится в таблице с именем таблица_пример . Если бы у нас была таблица со столбцами, представляющими имена, хранящиеся в столбце A , то приведенный выше запрос вернул бы все имена в этом столбце.

Как вернуть несколько столбцов в таблице с помощью SQL SELECT

Но что, если мы хотим вернуть более одного столбца в нашей таблице? Предположим, у нас есть два столбца в table_example : столбецA хранит имен и столбецB хранит фамилий . Если бы мы хотели получить оба этих столбца, мы могли бы просто изменить наш предыдущий пример кода, чтобы отразить следующее:

 /* Синтаксис оператора SQL SELECT для получения нескольких столбцов*/

ВЫБЕРИТЕ столбецA, столбецB
ИЗ таблица_пример;
 

Когда мы запускаем приведенный выше запрос, оба столбца columnA и columnB возвращаются из таблицы table_example .

Как вернуть каждый столбец в таблице с помощью SQL SELECT

Если у вас есть таблица в базе данных с несколькими столбцами и вы хотите получить все данные из все столбцов в конкретной таблице, вы можете сделать это с помощью оператора подстановки , представленного звездочкой * . Вот как можно вернуть каждый столбец в таблице с помощью оператора SQL SELECT :

 /* Синтаксис оператора SQL SELECT для извлечения каждого столбца в таблице */

SELECT * FROM table_example;
 

Параметры и аргументы SQL SELECT

Оператор SQL SELECT имеет несколько необязательных параметров и аргументов, которые разработчики баз данных могут использовать для улучшения своих запросов. К ним относятся:

  • выражений : В операторе SELECT выражений — это столбцы или вычисления, которые вы хотите извлечь из таблицы или базы данных.
  • таблицы : Это таблицы, из которых вы хотите получить информацию. Минимум одна таблица должна быть выбрана в соответствии с предложением FROM .
  • WHERE : Условие WHERE используется для определения условий, которые должны быть выполнены для того, чтобы записи были выбраны и возвращены. Если этот параметр оставить пустым или пустым, будут выбраны все записи.
  • ORDER BY : Этот аргумент также является необязательным и используется для определения порядка возврата записей. Столбец, по которому вы хотите упорядочить, должен следовать за аргументом ORDER BY . Затем , вы должны указать порядок, в котором вы хотите отсортировать результаты, используя (также необязательные) параметры ASC или DESC . Обратите внимание, что вы также можете сортировать по нескольким столбцам; вы просто разделяете столбцы, которые хотите отсортировать, запятой ( , ).

Вот пример кода, показывающий, как использовать SQL WHERE в инструкции SELECT :

 SELECT columnA
ИЗ table_example
ГДЕ столбец A = «Ронни»
 

В приведенном выше примере кода SQL мы говорим базе данных выполнить поиск columnA в таблице с именем table_example и вернуть результаты только для ячеек, содержащих текст «Ронни». Поскольку мы не указали порядок, в котором возвращаются результаты, по умолчанию они будут возвращены в порядке возрастания.

Обратите внимание, что запрос будет возвращать результаты только со словом «Ронни». Например, если в столбце A есть ячейка, содержащая слово «RonnieBonnie», и ячейка, содержащая «Ronnie», будет возвращен только результат «Ronnie».

Прочитано: Лучшие онлайн-курсы для изучения SQL

SQL LIKE Clause

Если бы мы хотели включить любой результат , содержащий строку «Ronnie», то мы использовали бы SQL LIKE 9Оператор 0121 вместе с одним из двух подстановочных знаков:

  • — используется для соответствия одному символу
  • .

  • % используется для соответствия любому количеству символов до или после строки

Обратите внимание на следующий пример кода, который показывает, как использовать предложение LIKE , предложение WHERE , FROM и инструкцию SQL SELECT для возврата любых результатов из столбца A , содержащих любых текст с «Ронни», независимо от того, какой текст стоит до или после слова «Ронни»:

 ВЫБЕРИТЕ столбецA
ИЗ table_example
ГДЕ столбец A = «% Ронни%»
 

Обратите внимание на подстановочный знак % в начале и в конце нашей строки «Ронни». Символ % перед словом означает, что может появиться любое количество символов до слова «Ронни», а подстановочный знак % после текста означает, что любое количество символов может появиться после текста «Ронни». Если мы удалили первые % , то нет символы могут быть допущены перед текстом «Ронни», но любой текст может появиться после текста «Ронни».

Подстановочный знак минус работает так же, только он указывает, что может появиться любой одиночный символ . Например, в этом сценарии:

 ВЫБЕРИТЕ столбецA
ИЗ table_example
ГДЕ columnA = «-Ronnie-» 

будут действительны следующие результаты:

 «Ronnie»
«Бронни»
«Бронни»
«Ронни»
 

Однако эти результаты недействительны, поскольку перед и/или за текстом «Ронни» существует более одного символа:

 «Скрони»
«Скрони»
«Самый Ронни»
 

Наконец, чтобы отсортировать наши результаты в порядке возрастания или убывания, мы просто используем параметры ASC или DESC предложения ORDER BY :

 SELECT columnA
ИЗ table_example
ГДЕ столбец A = «% Ронни%»
ЗАКАЗАТЬ ПО столбцуA ASC;
 

Если бы мы выбирали данные из нескольких столбцов и сортировали по нескольким столбцам, мы могли бы использовать SQL-запрос, аналогичный следующему:

 SELECT columnA, columnB
ИЗ table_example
ГДЕ столбец A = «% Ронни%»
ORDER BY столбец A ASC, столбец B DESC;
 

В этом примере будет возвращен любой результат, содержащий «Ронни» в столбце A , вместе с любыми соответствующими данными из столбца B .