【问题标题】:Get table names from a database从数据库中获取表名
【发布时间】:2011-06-06 10:30:33
【问题描述】:

我搜索了很多网站,但没有遇到任何代码或教程,其中包含从单个数据库获取表名的细节。

假设我有 4 个数据库,并且我想要数据库中所有名为 mp21 的表的名称,我可以使用什么查询?

【问题讨论】:

  • 您使用什么风格的 RDBMS - SQL Server、MySQL 或其他......?
  • 另外,您使用的是什么编程语言/框架? .NET、Java、COBOL……?还是您只想使用 SQL 来完成?

标签: mysql sql


【解决方案1】:

这是您询问的 MySQL 查询。

SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='mp21'

【讨论】:

    【解决方案2】:

    我使用了这个查询:

    SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
    

    它给了我表名以及 sysDiagram(为该数据库生成的数据库图)

    【讨论】:

      【解决方案3】:

      如果您询问 .net 代码,那么您需要 SMO

      using Microsoft.SqlServer.Management.Smo;
      using Microsoft.SqlServer.Management.Common;
      
      
      
      public static List<Table> GetTables(string connection, string databaseName)
              {
                  if (String.IsNullOrEmpty(connection))
                      throw new ArgumentException("connection is null or empty.", "connection");
      
                  Server srv = getServer(connection);
                  return srv.Databases[databaseName].Tables.Cast<Table>().ToList();
              }
      

      【讨论】:

        【解决方案4】:

        在 SQL SERVER 中,你可以使用 -

        select * from sys.tables
        

        【讨论】:

        • 我不知道为什么,但这在我的 SQL 中不起作用。我很确定这是最新版本,但我不断收到错误消息。不过还是谢谢。
        • @Syed Abdul Rahman - 此查询在 SQL Server 中有效,在 mySql 中无效。我认为您正在使用 MySql,因此这不起作用。由于您没有提到您的 RDBMS,因此我向您发送了 SQL 服务器查询。不管怎样,你得到了你想要的。
        【解决方案5】:
        SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_TYPE='BASE TABLE'
        

        【讨论】:

        • 这行得通。我所要做的就是在末尾添加“AND TABLE_SCHEMA = 'mp21'”,它就可以工作了。谢谢。
        【解决方案6】:
        use mp21
        SELECT name FROM dbo.sysobjects WHERE xtype = 'U' 
        

        【讨论】:

        • 以前试过这个。我不知道为什么,但是 sys 不能处理我的查询。
        • 你用的是哪个数据库系统,sqlserver?
        【解决方案7】:

        在 MySQL 中,这将列出所有数据库:

        show databases;
        

        对于这些你可以做的:

        use <database_name>;
        

        然后

        show tables;
        

        【讨论】:

        • USE mp21 SHOW TABLES 也不起作用。还有我之前尝试过的另一个代码。
        猜你喜欢
        • 2011-07-27
        • 1970-01-01
        • 2013-10-16
        • 2020-08-15
        • 2014-05-27
        • 2011-02-16
        • 2010-09-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多