如何在 MariaDB/MySQL 工作台中获取 SELECT 语句的输出,以“table.column”格式命名列,而不仅仅是“column”?
Posted
技术标签:
【中文标题】如何在 MariaDB/MySQL 工作台中获取 SELECT 语句的输出,以“table.column”格式命名列,而不仅仅是“column”?【英文标题】:How do I get the output of a SELECT statements in MariaDB/MySQL workbench to name columns in "table.column" format instead of just "column"? 【发布时间】:2021-03-23 09:29:24 【问题描述】:我必须探索未记录的模式以提出满足某些业务需求的查询语句。
当我 SELECT * FROM foo JOIN bar ON foo.barid=bar.id;我得到一个列列表,我可以猜到一个表中的列在哪里结束,下一个从哪里开始。但是,如果它只在输出中使用列的全名,那将非常方便。即,每一列都将显示为 foo.columnname 或 bar.columnname。
是的,这比最优的要笨重,不,我永远不会在生产解决方案中使用它。但是对于探索性的戳戳和刺激,当我试图弄清楚为什么查询不能正常工作时,它会让事情变得更容易。 我如何默认打开它?
澄清:不。我不是在寻找“如何列出表/模式中的所有列。我想运行查询将表连接在一起,并查看结果,并明确而轻松地查看给定字段的表来自。
【问题讨论】:
没有这样的选项。在运行查询之前,您应该事先了解您的表架构。例如,您可以使用show table <mytable>
之类的命令来列出表格的列。
永远不要使用邪恶的SELECT *
。只需选择(限定和别名)您实际想要返回的列
@Strawberry - 要“探索”一张桌子,SELECT *
很好。
【参考方案1】:
您可以查询数据库 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
【讨论】:
“探索”通常也包括查看数据。【参考方案2】:如果您必须使用 *,例如,您可以按表格进行限定
select foo.*,'//',bar.*
将首先显示 foo 中的所有列,然后是分隔符,然后是 bar 中的所有列,在 foo 中,从左到右显示表示 foo 中列的序号位置。如果显示列左对齐,则列数据类型是某种描述的字符串(varchar、char、text 等),如果右对齐,则为某种类型的数字(int、decimal、float 等)。如果数字左对齐,则基础数据类型为字符串。 mysql 中的日期数据类型采用 yyyy-mm-dd 格式,因此如果您看到这一点,那么基础数据类型很可能是日期。同样的日期时间
要了解实际数据类型并查找表上的索引、约束和外键,然后显示 create table tablename 。如果您希望所有表定义使用工作台导出或 mysqldump 实用程序。
还请阅读 information_schema https://dev.mysql.com/doc/refman/8.0/en/information-schema.html 可以为您做什么,并考虑在 Workbench 中对您的数据库进行逆向工程。
【讨论】:
这个答案解决了问题的“探索”部分。以上是关于如何在 MariaDB/MySQL 工作台中获取 SELECT 语句的输出,以“table.column”格式命名列,而不仅仅是“column”?的主要内容,如果未能解决你的问题,请参考以下文章
Homebrew Mariadb Mysql 安装 root 访问被拒绝
如何在CSV导入(MariaDB / MySQL)上生成连锁主键?