Che*_*eso 6

这不是特定于python的答案; 实际上我不知道Python数据驱动程序是否有这种东西.但也许这些信息会有所帮助.

ANSI SQL-92和SQL-99标准需要INFORMATION_SCHEMA模式,该模式存储有关目录中表的信息.

您可以使用对该架构中的视图的查询来检索您搜索的元数据.

例如:

select column_name, is_nullable, data_type, character_maximum_length as maxlen 
from information_schema.columns 
where table_name = 'Products'
Run Code Online (Sandbox Code Playgroud)

并非所有数据库都实现标准的这一部分.例如,Oracle没有.

幸运的是,还有一些特定于数据库的表存储了这种信息.

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

select * from [CatalogName].dbo.syscolumns 
where id = 
    (Select id from [CatalogName].dbo.sysobjects where name = 'Products')
Run Code Online (Sandbox Code Playgroud)

在Oracle中,ALL_TAB_COLUMNS表可以为您提供以下信息:

select column_name, data_type, data_length, data_precision, data_scale
from ALL_TAB_COLUMNS
where table_name = 'EMP';
Run Code Online (Sandbox Code Playgroud)

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