Как мне получить выходные данные операторов SELECT в MariaDB / MySQL workbench для присвоения имен столбцам в формате «таблица.столбец» вместо просто «столбец»?

#mysql #sql #mariadb #mysql-workbench

#mysql #sql #mariadb #mysql-workbench

Вопрос:

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

Когда Я ВЫБИРАЮ * ИЗ панели foo JOIN НА foo.barid=bar.id ; Я получаю обратно список столбцов и могу догадаться, где заканчиваются столбцы из одной таблицы и начинаются из следующей. Но было бы ужасно удобно, если бы он просто использовал полные имена столбцов в выходных данных. то есть каждый столбец отображался бы как foo.columnname или bar.columnname .

да, это более громоздко, чем оптимально, и нет, я бы никогда не стал использовать его в производственном решении. но для поисковых запросов и запросов было бы проще, когда я пытаюсь выяснить, почему запрос работает неправильно. Как мне включить это по умолчанию?

УТОЧНЕНИЕ: Нет. Я не ищу «как перечислить все столбцы в таблице / схеме. Я хочу запускать запросы, объединяющие таблицы вместе, и видеть результаты, а также однозначно и легко видеть, из какой таблицы взято данное поле.

Комментарии:

1. Такой опции нет. Вы должны заранее знать свою схему таблицы, прежде чем запускать запросы. Вы можете использовать, например, команду like show table <mytable> для перечисления столбцов таблицы.

2. Никогда не используйте evil SELECT * . Просто выберите (укажите квалификацию и псевдоним) только те столбцы, которые вы действительно хотите вернуть

3. @Strawberry — для «изучения» таблицы SELECT * все в порядке.

Ответ №1:

Вы можете запросить database information_schema, чтобы помочь вам выяснить, что есть что в вашей базе данных. Выполнение следующего позволит вам приблизиться:

 select table_name, column_name from information_schema.columns
 

https://dev.mysql.com/doc/refman/8.0/en/information-schema-columns-table.html

Комментарии:

1. «Исследование» обычно также включает просмотр данных.

Ответ №2:

Если вы должны использовать *, вы можете квалифицироваться по таблице, например

 select foo.*,'//',bar.*
 

сначала будут отображаться все столбцы из foo, затем разделитель, затем все столбцы из bar, а внутри foo отображение слева направо представляет порядковое положение столбцов в foo. Если столбцы отображения выровнены по левому краю, то тип данных столбца представляет собой строку некоторого описания (varchar, char, text и т.д.), Если выровнено по правому краю, то какое-то число (int, decimal, float и т.д.). Если число выровнено по левому краю, то базовым типом данных является строка. Типы данных даты в mysql представлены в форме гггг-мм-дд, поэтому, если вы видите это, то базовым типом данных, скорее всего, будет дата. Аналогично datetime

Чтобы понять фактические типы данных и найти индексы, ограничения и внешние ключи в таблице, затем покажите create table имя_таблицы . Если вам нужны все определения таблиц, используйте workbench export или утилиту mysqldump.

Также ознакомьтесь с информацией о том, что такое information_schema https://dev.mysql.com/doc/refman/8.0/en/information-schema.html могу сделать для вас и рассмотреть возможность обратного проектирования вашей базы данных в workbench.

Комментарии:

1. В этом ответе рассматривается «исследуемая» часть вопроса.