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 создает новую таблицу, которая структурирована и заполнена данными, возвращенными запросом на выборку.
Преимущество использования этого метода для создания таблицы двоякое:
- Новая таблица заполняется возвращенными данными
- Вам не нужно определять имя каждого столбца, тип данных и ограничение
Вариант использования для этого подхода можно получить предварительно загруженный набор данных в руки конечных пользователей или как способ сократить время загрузки данных.
Создать таблицу с помощью запроса SELECT в SQL
Команда SQL создать таблицу как выбрать
создаст новую таблицу, заполненную данными из запроса select
. В простейшей форме эта команда требует всего два аргумента:
- A
select
query - Имя таблицы, которую она создаст
После того, как они определены, определение таблицы и загрузка данных будут происходить автоматически за кулисами.
Пример использования 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 .