Как написать SQL запрос для экспорта таблицы из базы данных в формат .cvs с сохраненными именами столбцов?

Как можно в запросе EXPORT добавить имена столбцов для выгрузки таблицы целиком?
  • 4 марта 2024 г. 14:59
Ответы на вопрос 2
Для экспорта таблицы из базы данных в формат .csv с сохраненными именами столбцов можно воспользоваться следующим SQL запросом:

```sql
SELECT * 
FROM table_name
INTO OUTFILE 'path/filename.csv'
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
```

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

```sql
SELECT column1 AS 'Name1', column2 AS 'Name2', ...
FROM table_name
INTO OUTFILE 'path/filename.csv'
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
```

Где `column1`, `column2`, ... - названия столбцов из таблицы, которые вы хотите экспортировать с новыми именами в .csv файл.
Выгружаемые запросом данные - это именно данные. Сведения о структуре выходного набора - это метаданные. Получить одновременно их в одном запросе в общем не получится. 

Возможное решение - UNION ALL двух запросов. Первый - получающий список полей таблицы из INFORMATION_SCHEMA.COLUMNS в виде CSV, второй - собственно показанный запрос. Поскольку UNION ALL не перемешивает выходные записи, получится вроде бы то, что нужно.

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

См. fiddle
Похожие вопросы