python sqlite3查询.db文件的表名和列名

时间:2016-08-03 15:22:19

标签: python mysql sqlite

我有一个.db文件要处理。但是,我不知道这个文件,包括它的表名和列名,这使我无法执行选择操作 我使用的是python中的./swi-find-anagrams < clean-words | sort > swi-result Read and calculate signatures: 0.935780 sec Sort pairs: 0.269151 sec Squash and output: 0.187508 sec Total: 1.392440 sec

1 个答案:

答案 0 :(得分:2)

您可以通过查询sqlite_master表来查找表名。

con = sqlite3.connect('database.db')
cursor = con.cursor()
cursor.execute("SELECT name FROM sqlite_master WHERE type='table';")
print(cursor.fetchall())

这将打印出db文件中的所有表。

要获取每个表的表结构,您需要对上面返回的每个表执行以下操作:

pragma table_info('<tablename>')

这将返回一个具有以下结构的表:

  • cid =&gt;列ID
  • name =&gt;列名称
  • type =&gt;列的数据类型
  • notnull =&gt;列是否可以为null的布尔值
  • dflt_value =&gt;列的默认值
  • pk =&gt;列是否在主键中的布尔值