是否有一个与MySQL的DESCRIBE 等价的SQLite?

我刚刚开始学习SQLite 。 能够看到表格的细节,比如MySQL的DESCRIBE [table] ,会很好。 PRAGMA table_info [table]不够好,因为它只有基本信息(例如,它不显示某列是否是某种字段)。 SQLite有办法做到这一点?

SQLite命令行实用程序有一个.schema TABLENAME命令,向您显示创build语句。

 PRAGMA table_info([tablename]); 

你在寻找用于生成表的SQL吗? 为此,您可以查询sqlite_master表 :

 sqlite> CREATE TABLE foo (bar INT, quux TEXT); sqlite> SELECT * FROM sqlite_master; table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT) sqlite> SELECT sql FROM sqlite_master WHERE name = 'foo'; CREATE TABLE foo (bar INT, quux TEXT) 

要查看所有表格:

 .tables 

要查看特定的表格:

 .schema [tablename] 

为了防止人们对其他答案的一些评论误导:

  1. 如果.schemaquery from sqlite_master不提供任何输出,则表示不存在tablename ,例如,这也可能是由a ; .schema.tables ,…结尾处的分号或者仅仅是因为表格确实不存在。 .schema不起作用是不太可能的,然后应该在sqlite项目上提交错误报告。

… .schema只能从命令行使用; 上面的命令可以作为一个查询库(Python,C#等)运行。 – 马克·罗沙科夫7月25日在10:09

  1. “只能从命令行使用”可能会误导人们。 几乎所有的(可能是每个?)编程语言都可以调用其他程序/命令。 因此,所引用的评论是不吉利的,因为调用另一个程序,在这种情况下, sqlite更有可能被支持,而不是为每个程序提供一个wrapper / library (这不仅容易由于但是也是反作用的single-source principle ,使maintenance复杂化,进一步加剧了世界数据的混乱)。

(作为回答,没有评论权限。)