我刚刚开始学习SQLite 。 能够查看表的详细信息会很好,例如MySQL的DESCRIBE [table]
。 PRAGMA table_info [table]
不够好,因为它仅具有基本信息(例如,它不显示列是否为某种字段)。 SQLite有办法吗?
#1楼
为了防止人们对其他答案的某些评论造成误导:
- 如果
.schema
或query from sqlite_master
未提供任何输出,则表明tablename
不存在,例如,这也可能是由;
引起的;
.schema
,.tables
,...或末尾的分号。或者仅仅是因为该表确实不存在。.schema
根本不起作用,这不太可能,然后应在sqlite项目中提交错误报告。
.... schema只能从命令行使用; 上面的命令>可以作为查询通过库(Python,C#等)运行。 – Mark Rushakoff 10年7月25日在21:09
- “只能从命令行使用”可能会误导人们。 几乎所有(可能是每一种?)编程语言都可以调用其他程序/命令。 因此,引用的注释很不幸,因为调用另一个程序(在这种情况下为
sqlite
比该语言为每个程序提供一个wrapper
/library
(它不仅容易由于整体性质而易于残缺)更受支持。程序,但也有反作用single-source principle
,使maintenance
复杂化,进一步加剧了世界上的数据混乱)。
#2楼
SQLite命令行实用程序具有一个.schema TABLENAME
命令,该命令向您显示create语句。
#3楼
要查看所有表:
.tables
要查看特定表:
.schema [tablename]
#4楼
您是否正在寻找用于生成表的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)
#5楼
如果您使用的是图形工具。 它在表名旁边显示了架构。 如果使用DB Browser for Sqlite ,则单击以打开数据库(右上角),浏览并打开数据库,您将在下表中看到填充的信息。
右键单击record / table_name,单击copy create语句 ,然后就可以了。
希望它对一些未能使用命令行的初学者有所帮助。
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3162131