我刚刚开始学习SQLite.能够看到像MySQL这样的表的详细信息会很高兴DESCRIBE [table]
.PRAGMA table_info [table]
不够好,因为它只有基本信息(例如,它不显示列是否是某种类型的字段).SQLite有办法做到这一点吗?
在SQLite的命令行实用程序有一个.schema TABLENAME
显示你的创建语句命令.
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]
为了防止人们被其他答案的一些评论误导:
如果.schema
还是query from sqlite_master
没有提供任何输出,则表示不存在的tablename
,比如,这也可以由引起;
分号结束了.schema
, .tables
......或者仅仅因为表真的不存在.这.schema
不起作用是不太可能的,然后应该在sqlite项目中提交错误报告.
... .schema只能在命令行中使用; 上面的命令>可以通过库(Python,C#等)作为查询运行. - Mark Rushakoff 2010年7月25日21:09
'只能在命令行中使用'可能误导人.几乎任何(可能是每种?)编程语言都可以调用其他程序/命令.因此引用的评论是不吉利的,因为调用另一个程序,在这种情况下sqlite
,比语言为每个程序提供一个wrapper
/ 更有可能得到支持library
(这不仅因为那里的大量程序的性质而容易出现不完整性,但也是反作用single-source principle
,复杂化maintenance
,进一步加剧了世界数据的混乱).
(作为答案,未作出评论但尚未发表评论.)