zaLinux.ru

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


Оглавление

  1. Как вывести данные без таблицы при сохранение результатов в файл
  2. Как вывести результаты без таблицы на экран
  3. Как вывести результаты в клиентах mariadb и mysql без таблицы
  4. Как настроить вывод результатов без таблицы по умолчанию

При работе с MySQL и MariaDB в командной строке результаты SQL-запросов с операторами SELECT и SHOW выводятся в очень наглядном виде: с помощью псевдографики создаются таблицы, в которых столбцы и строки разделены символами пробелов и другими вспомогательными символами.

Всё это кажется весьма удобным вплоть до того момента, если вам нужно скопировать выведенную на экран информацию, полученную в результате запроса к MySQL и MariaDB. В этот момент «вдруг» оказывается, что данные засорены ненужными вам символами «|», «-», «+» и пробелами.

И одномоментно то, что было весьма привлекательно на экране, оказывается совершенно непригодным для использования в дальнейшей работе, например, чтобы вставить в офисный документ (Word, Writer, Excel, Calc).

Рассмотрим различные методы как в клиентах MySQL и MariaDB сохранить результаты SQL-запросов без символов, формирующих таблицу.

1. Как вывести данные без таблицы при сохранение результатов в файл

Для выполнение SQL-запроса необязательно использовать интерактивные сессии — вы можете указать вашу команду после опции -e, например:

mariadb -u root -e 'SELECT test_column FROM TestDB.TestTABLE;'

Примечание: я использую в качестве имени исполнимого файла mariadb, поскольку у меня на тестовом компьютере установлена MariaDB. Если у вас установлена MySQL, то в этой и во всех последующих командах используйте вместо mariadb файл mysql. В настоящее время MariaDB также поддерживает псевдоним mysql. То есть если вы не уверены, какой вариант ПО у вас установлен, то вы можете использовать имя файла mysql как более универсальное. Значение имеет не ПО на сервере, к которому вы подключаетесь, а ПО установленное на компьютере, с которого вы запускаете клиент. Если все действия вы выполняете на одном компьютере и сервер СУБД запущен локально, то в этом случае версии клиента и сервера (MariaDB или MySQL) совпадают.

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

Но можно воспользоваться хитростью — если результат запроса сохранить в файл, то в нём будут сохранены только результат команды, без таблицы.

Для сохранения результатов запроса к MySQL и MariaDB в файл используйте следующую конструкцию:

mariadb -u root -e 'SQL-QUERY' -r -N > FILE

В этой команде:


  • SQL-QUERY — ваш SQL-запрос
  • FILE — путь до файла, в которой вы хотите сохранить результат
  • Опция -r (длинный вариант названия —raw) — используется для того, чтобы поля записывали без преобразования (если не указать эту опцию, то, например, символы новой строки будут заменены на буквальные «\n»)
  • Опция -N (длинный вариант названия —skip-column-names) необходима для того, чтобы не выводились названия столбцов

К примеру, следующая команда выполнит запрос к СУБД и сохранит результат в файл result.txt:

mariadb -u root -e 'SELECT test_column FROM TestDB.TestTABLE;' -r -N > result.txt

На мой взгляд, это весьма удобный способ, если вы можете работать с MySQL и MariaDB в неинтерактивном режиме.

2. Как вывести результаты без таблицы на экран

Для вывода результатов выполнения запроса к СУБД на экран без таблицы, добавьте опцию -s. Также используйте опцию -r, чтобы символы новой строки не заменялись на обозначения «\n». Если вы не хотите выводить названия столбцов, то добавьте опцию -N:

mariadb -u root -e 'SQL-QUERY' -r -s -N

Пример выполнения команды:

mariadb -u root -e 'SELECT test_column FROM TestDB.TestTABLE;' -r -s -N

3. Как вывести результаты в клиентах mariadb и mysql без таблицы

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

Для этого при подключении к MySQL или MariaDB серверу укажите для клиента три дополнительные опции: -s, -r и -N, например:


mariadb -u root -s -r -N

Теперь результаты будут выводиться без таблицы:

SELECT test_column FROM TestDB.TestTABLE;

4. Как настроить вывод результатов без таблицы по умолчанию

Все рассмотренные выше опции (как и любые другие) вы можете прописать в конфигурационном файле MySQL и MariaDB и при подключении к СУБД вам не нужно будет каждый раз вводить эти опции.

К примеру, сохраните в файл ~/.my.cnf следующие строки:

[client]
skip_column_names
silent
raw

Смотрите также: Как определить расположение и имя конфигурационного файла MySQL (MariaDB). Как узнать название групп для конфигурационных файлов MySQL и MariaDB

Теперь при выполнении SQL-запросов не будут выводится таблицы. Например:

mariadb -u root -e 'SELECT test_column FROM TestDB.TestTABLE;'

И ещё один пример:

mariadb -u root
SELECT test_column FROM TestDB.TestTABLE;


Рекомендуемые статьи:

Оставить комментарий

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