Как сохранить результат запроса sql
Перейти к содержимому

Как сохранить результат запроса sql

  • автор:

Сохранение запросов (визуальные инструменты для баз данных)

Сохранение запроса для дальнейшей работы с ним. Обратите внимание, что при выполнении запроса изменения не сохраняются.

Сохранение запроса

  1. Создайте запрос.
  2. В меню Файл выберите пункт Сохранить .

Примечание Вновь созданному запросу присваивается системное имя. Чтобы изменить имя запроса, выберите Сохранить как.

См. также:

Обратная связь

Были ли сведения на этой странице полезными?

Сохранение результатов запросов в хранилище с помощью бессерверного пула SQL в Azure Synapse Analytics

Из этой статьи вы узнаете, как сохранять результаты запросов в хранилище, используя бессерверный пул SQL.

Предварительные требования

Для начала создайте базу данных, в которой будут выполняться запросы. Затем инициализируйте объекты, выполнив скрипт настройки для этой базы данных. Этот скрипт создает источники данных, учетные данные области базы данных и форматы внешних файлов, которые используются для чтения данных в этих примерах.

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

CREATE EXTERNAL TABLE AS SELECT

Чтобы сохранить результаты запроса в хранилище, можно использовать инструкцию CREATE EXTERNAL TABLE AS SELECT (CETAS).

Измените первую строку в запросе ([mydbname]), чтобы использовать созданную вами базу данных.

USE [mydbname]; GO CREATE DATABASE SCOPED CREDENTIAL [SasTokenWrite] WITH IDENTITY = 'SHARED ACCESS SIGNATURE', SECRET = 'sv=2018-03-28&ss=bfqt&srt=sco&sp=rwdlacup&se=2019-04-18T20:42:12Z&st=2019-04-18T12:42:12Z&spr=https&sig=lQHczNvrk1KoYLCpFdSsMANd0ef9BrIPBNJ3VYEIq78%3D'; GO CREATE EXTERNAL DATA SOURCE [MyDataSource] WITH ( LOCATION = 'https://.blob.core.windows.net/csv', CREDENTIAL = [SasTokenWrite] ); GO CREATE EXTERNAL FILE FORMAT [ParquetFF] WITH ( FORMAT_TYPE = PARQUET, DATA_COMPRESSION = 'org.apache.hadoop.io.compress.SnappyCodec' ); GO CREATE EXTERNAL TABLE [dbo].[PopulationCETAS] WITH ( LOCATION = 'populationParquet/', DATA_SOURCE = [MyDataSource], FILE_FORMAT = [ParquetFF] ) AS SELECT * FROM OPENROWSET( BULK 'csv/population-unix/population.csv', DATA_SOURCE = 'sqlondemanddemo', FORMAT = 'CSV', PARSER_VERSION = '2.0' ) WITH ( CountryCode varchar(4), CountryName varchar(64), Year int, PopulationCount int ) AS r; 

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

Использование внешней таблицы

Вы можете использовать внешнюю таблицу, созданную с помощью CETAS, как обычную внешнюю таблицу.

Измените первую строку в запросе ([mydbname]), чтобы использовать созданную вами базу данных.

USE [mydbname]; GO SELECT CountryName, PopulationCount FROM PopulationCETAS WHERE [Year] = 2019 ORDER BY [PopulationCount] DESC; 

Примечания

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

  • Включение вставки новых данных во внешнюю таблицу
  • Включение удаления данных из внешней таблицы
  • Указание разделов в CETAS
  • Указание размеров и количества файлов

Поддерживаются только типы выходных данных Parquet и CSV. Вы можете проголосовать за другие типы на сайте отзывов Azure.

Дальнейшие действия

Дополнительные сведения о том, как запрашивать различные типы файлов, см. в статьях Запрашивание одного CSV-файла, Запрашивание файлов Parquet и Запрашивание файлов JSON.

Можно ли присвоить переменной результат запроса?SQL,TRANSACT-SQL

При этом одним запросом можно присвоить значения нескольким переменным:

select @i1 = i1, @i2 = i2, . from . 

Отслеживать
ответ дан 30 авг 2013 в 9:44
11.5k 16 16 серебряных знаков 16 16 бронзовых знаков

Запрос нужно обернуть в скобки. То есть

DECLARE @enddate INT; SET @enddate = (SELECT dbo.Date_Dim.ID FROM dbo.Date_Dim WHERE dbo.Date_Dim.DateOper = '2013-06-27'); 

ну и позаботиться о том, чтобы он возвращал только одно значение, если это не так

Отслеживать
ответ дан 30 авг 2013 в 7:11
DreamChild DreamChild
36.2k 3 3 золотых знака 45 45 серебряных знаков 85 85 бронзовых знаков
да,спасибо,топ 1 уже поставил
30 авг 2013 в 7:12

в mysql можно не объявлять переменную, а сразу воспользоваться ей

 set @m = (SELECT MIN(id) FROM db.table WHERE status=0); UPDATE db.table SET status=1 WHERE select * from db.table ; 

Отслеживать
ответ дан 23 мая 2017 в 14:36
101 1 1 бронзовый знак

  • sql-server
  • sql
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.3.8.5973

Как в MySQL результаты запроса сохранить в новую таблицу

В MySQL в одном SQL запросе можно создать новую таблицу и сохранить в неё результаты MySQL запроса (результаты по другой таблице. Либо можно сохранить результаты поиска по таблице в другую, уже существующую таблицу.

Как в MySQL сохранить результаты MySQL запроса в новую таблицу

Используйте следующую конструкцию:

CREATE TABLE new_table SELECT //здесь идёт MySQL запрос (поиск по таблице)
CREATE TABLE `db2`.`new_table` SELECT `column` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column` DESC;

Обратите внимание, что часть, которая начинается с SELECT, представляет по синтаксису обычный запрос поиска SELECT. То есть вы можете протестировать ваш запрос без создания новой таблицы:

SELECT `column` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column` DESC;

И если он сработал правильно, то добавьте этот запрос после «CREATE TABLE new_table».

Как сохранить результаты MySQL запроса с несколькими столбцами в новую таблицу

Если вы хотите, чтобы в новую таблицу было сохранено несколько столбцов, то перечислите их после SELECT:

CREATE TABLE `db2`.`new_table` SELECT `column1` , `column2` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column1` DESC;

Если вы хотите, чтобы были сохранены все столбцы, то укажите «*»:

CREATE TABLE `db2`.`new_table` SELECT * FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `id` DESC;

Как сохранить результаты MySQL запроса в новую таблицу с PRIMARY KEY

После имени новой таблицы в скобках укажите имя и свойства столбца, который должен стать PRIMARY KEY, например:

CREATE TABLE `db2`.`test` (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id)) SELECT `column` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column` DESC;

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

Как указать свойства столбцов при сохранении результатов запроса в новую таблицу

После имени новой таблицы в скобках вы можете указать свойства столбцов, используя синтаксис CREATE TABLE:

CREATE TABLE `db2`.`test` (id INT NOT NULL AUTO_INCREMENT, PRIMARY KEY (id), KEY(title)) SELECT `title`, `link` FROM `db1`.`old_table` WHERE `body` LIKE '%search string%' ORDER BY `id` DESC;

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

Как поменять имена столбцов в результатах MySQL запроса, сохраняемых в новую таблицу

С помощью ключевого слова AS вы можете поменять имя одного или нескольких столбцов.

Пример изменения имени одного столбца:

CREATE TABLE `db2`.`test` SELECT `link` AS `megalink` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column` DESC;

Пример изменения имени двух столбцов для вставки в создаваемую таблицу:

CREATE TABLE `db2`.`test` SELECT `id` AS `name`, `link` AS `megalink` FROM `db1`.`old_table` WHERE `row` LIKE '%search string%' ORDER BY `column` DESC;

Как в MySQL сохранить результаты MySQL запроса в существующую таблицу

Чтобы сохранить результаты запроса в существующую таблицу, используйте конструкцию:

INSERT INTO new_table SELECT //здесь идёт MySQL запрос (поиск по таблице)

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

Пример указания имени столбца в новой таблице для вставки данных:

INSERT INTO tbl_temp2 (fld_id) SELECT tbl_temp1.fld_order_id FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100;

Либо для изменения имени полей используйте «AS», как это показано выше.

Полезные ссылки:

  • https://dev.mysql.com/doc/refman/8.0/en/ansi-diff-select-into-table.html
  • https://dev.mysql.com/doc/refman/8.0/en/create-table-select.html

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *