在mysql数据库中,我们想获取某个库下的所有表名时,只需要使用命令:
showtables;
但是,在PostgreSQL数据库时,是不通用的。
需求二:获取表的字段信息类同需求一,我们想获取表含有的哪些字段信息,又如何实现呢?在mysql中,只需要使用命令:
SHOWFULLCOLUMNSFROMtbl_name[FROMdb_name]#列出字段及详情
同样,在PostgreSQL数据库时,是不通用的。上述两个需求呢,我们都想通过使用python来连接postgresql数据库,便于程序化和后续数据信息的处理。
二、问题解决办法我们想通过python连接数据库来实现,我们先要了解如何用python连接postgres数据库,然后才能在此基础上实现上述的需求。
2.1python连接postgres数据库的方法关于连接postgresql数据库的一些方法,总结在博文[^1][2]中。
2.2获取库中的所有表的表名在连接上数据库后,无论是获取库中的所有表名称还是获取表的字段信息,总体上和获取数据库的数据过程是一样的,只是把获取数据的sql语句换成获取表名或者字段的语句而已。
获取数据库的所有表名语法:select*frompg_tables[whereschemaname=schamaname]
其中中括号的内容为可选参数,如果不设定条件,就返回连接的数据库中所有的表名信息;如果设定,则返回对应模式下的所有表名信息。
一个完整的示例如下代码所示:
importpandasaspdimportreimportpsycopg2fromsqlalchemyimportcreate_engine#连接库账户信息gongsi_engine=create_engine(postgresql+psycopg2://username:password
host:port/databaseName)#相关参数替换即可#从公司数据库读取需要的数据表