Python与JDBC DatabaseMetaData的等价物是什么?

Python与JDBC DatabaseMetaData的等价物是什么?,python,jdbc,database-metadata,Python,Jdbc,Database Metadata,Python的等价物是什么?如果您愿意使用ODBC进行数据访问,那么您可以使用pyodbc。Pyodbc允许您调用类似SQLTables的函数,这相当于JDBC getTables函数。获取元数据的JDBC和ODBC函数非常相似。这不是python特有的答案;事实上,我不知道Python数据驱动程序是否有这种功能。但也许这些信息会有所帮助 ANSI SQL-92和SQL-99标准需要,它将有关表的信息存储在目录中 可以通过查询该架构中的视图来检索您所查找的元数据 例如: select colum

Python的等价物是什么?如果您愿意使用ODBC进行数据访问,那么您可以使用pyodbc。Pyodbc允许您调用类似SQLTables的函数,这相当于JDBC getTables函数。获取元数据的JDBC和ODBC函数非常相似。

这不是python特有的答案;事实上,我不知道Python数据驱动程序是否有这种功能。但也许这些信息会有所帮助

ANSI SQL-92和SQL-99标准需要,它将有关表的信息存储在目录中

可以通过查询该架构中的视图来检索您所查找的元数据

例如:

select column_name, is_nullable, data_type, character_maximum_length as maxlen 
from information_schema.columns 
where table_name = 'Products'
并非所有数据库都实现该标准的这一部分。例如,甲骨文就没有

幸运的是,还存在存储此类信息的特定于数据库的表

虽然Microsoft SQL Server支持信息模式,但也有SQL Server特定的表提供更多元数据信息。它们是
[CatalogName].dbo.sysobjects
[CatalogName].dbo.sysolumns
。对这些表的类似查询将为您提供所需的元数据。例如:

select * from [CatalogName].dbo.syscolumns 
where id = 
    (Select id from [CatalogName].dbo.sysobjects where name = 'Products')
在Oracle中,“所有”选项卡“列”表可以为您提供以下信息:

select column_name, data_type, data_length, data_precision, data_scale
from ALL_TAB_COLUMNS
where table_name = 'EMP';

无论您是查询标准视图还是特定于数据库的视图,您都不需要ODBC来执行这些查询—您可以使用任何可用于操作数据的数据库连接,当然要经过安全批准。

没有完全等效的数据库连接。你想从Oracle和MySQL中获取什么信息?它是什么类型的数据库?我需要能够获取表、列(大小、比例、类型、名称)、外键、主键。Oracle当然没有这个功能。。。看来我需要通过ODBC路径在dbs之间获得一组标准的功能。嗯,这真是一个惊喜!使用Oracle,您可以查询其他数据表。我将更新答案以表明这一点。