我刚刚开始学习SQLite。如果能看到一个表的细节就好了,就像MySQL的DESCRIBE [table]一样。PRAGMA table_info [table]还不够好,因为它只有基本信息(例如,它不显示一列是否是某种类型的字段)。SQLite有办法做到这一点吗?
DESCRIBE [table]
PRAGMA table_info [table]
gxwragnw1#
SQLite command line utility有一个.schema TABLENAME命令,用于显示创建语句。
.schema TABLENAME
7fhtutme2#
PRAGMA table_info([tablename]);
s4chpxco3#
您是否正在寻找用于生成表的SQL?为此,您可以查询sqlite_schema表:
sqlite_schema
sqlite> CREATE TABLE foo (bar INT, quux TEXT); sqlite> SELECT * FROM sqlite_schema; table|foo|foo|2|CREATE TABLE foo (bar INT, quux TEXT) sqlite> SELECT sql FROM sqlite_schema WHERE name = 'foo'; CREATE TABLE foo (bar INT, quux TEXT)
方案表始终可以使用名称sqlite_schema进行引用,特别是在方案名称(如main.sqlite_schema或temp.sqlite_schema)限定的情况下。但为了历史兼容性,也可以识别一些替代名称,包括:
main.sqlite_schema
temp.sqlite_schema
sqlite_master
sqlite_temp_schema
sqlite_temp_master
wkftcu5l4#
要查看所有表格:
.tables
要查看特定表格:
.schema [tablename]
im9ewurl5#
为了防止人们被对其他答案的一些评论所误导:1.如果.schema或query from sqlite_master没有给出任何输出,则表明tablename不存在,例如,这也可能是由于.schema、.tables末尾的;分号引起的。...或者只是因为表实际上不存在。.schema不t工作是非常不可能的,然后一个错误报告应该提交在sqlite项目。....schema只能从命令行使用;以上命令〉可以作为库(Python、C#等)查询来运行。- Mark Rushakoff 10年7月25日21:091.“只能从命令行使用”可能会误导人们。几乎所有(可能每种?)编程语言都可以调用其他程序/命令。因此,带引号的注解调用另一个程序是不吉利的,在本例中为sqlite,比语言为每个程序提供wrapper/library更可能得到支持(这不仅由于大量程序的本质而容易不完整,而且还在对抗X1 M10 N1 X,使X1 M11 N1 X复杂化,进一步加剧世界上数据的混乱)。
.schema
query from sqlite_master
tablename
;
sqlite
wrapper
library
carvr3hs6#
以下命令显示所有表格的详细信息:
下面的命令以格式良好的方式显示所有表格的详细信息:
.schema --indent
下面的命令显示一个表的详细信息:
.schema <table_name>
下面的这些命令以格式良好的方式显示一个表格的详细信息:
.schema --indent <table_name>
或者:
.schema <table_name> --indent
此外,下面这些命令显示有关". schema"的详细信息:
.help .schema
.help schema
那么,下面是这样的:
sqlite> .help .schema .schema ?PATTERN? Show the CREATE statements matching PATTERN Options: --indent Try to pretty-print the schema --nosys Omit objects whose names start with "sqlite_"
Buy me a coffee!!
hxzsmxv27#
如果***您使用的是图形工具。它会在表名旁边显示架构。如果是***DB Browser For Sqlite,请单击打开数据库(右上角),导航并打开数据库,您将看到表中填充的信息,如下所示。
右键单击记录/表名,单击复制创建语句,就可以创建了。希望它能帮助一些未能使用命令行的初学者。
7条答案
按热度按时间gxwragnw1#
SQLite command line utility有一个
.schema TABLENAME
命令,用于显示创建语句。7fhtutme2#
s4chpxco3#
您是否正在寻找用于生成表的SQL?为此,您可以查询
sqlite_schema
表:备用名称
方案表始终可以使用名称
sqlite_schema
进行引用,特别是在方案名称(如main.sqlite_schema
或temp.sqlite_schema
)限定的情况下。但为了历史兼容性,也可以识别一些替代名称,包括:sqlite_master
sqlite_temp_schema
sqlite_temp_master
备选方案(2)和(3)仅适用于与每个数据库连接相关联的TEMP数据库,但备选方案(1)适用于任何地方。
wkftcu5l4#
要查看所有表格:
要查看特定表格:
im9ewurl5#
为了防止人们被对其他答案的一些评论所误导:
1.如果
.schema
或query from sqlite_master
没有给出任何输出,则表明tablename
不存在,例如,这也可能是由于.schema
、.tables
末尾的;
分号引起的。...或者只是因为表实际上不存在。.schema
不t工作是非常不可能的,然后一个错误报告应该提交在sqlite项目。....schema只能从命令行使用;以上命令〉可以作为库(Python、C#等)查询来运行。- Mark Rushakoff 10年7月25日21:09
1.“只能从命令行使用”可能会误导人们。几乎所有(可能每种?)编程语言都可以调用其他程序/命令。因此,带引号的注解调用另一个程序是不吉利的,在本例中为
sqlite
,比语言为每个程序提供wrapper
/library
更可能得到支持(这不仅由于大量程序的本质而容易不完整,而且还在对抗X1 M10 N1 X,使X1 M11 N1 X复杂化,进一步加剧世界上数据的混乱)。carvr3hs6#
以下命令显示所有表格的详细信息:
下面的命令以格式良好的方式显示所有表格的详细信息:
下面的命令显示一个表的详细信息:
下面的这些命令以格式良好的方式显示一个表格的详细信息:
或者:
此外,下面这些命令显示有关". schema"的详细信息:
或者:
那么,下面是这样的:
Buy me a coffee!!
hxzsmxv27#
如果***您使用的是图形工具。它会在表名旁边显示架构。如果是***DB Browser For Sqlite,请单击打开数据库(右上角),导航并打开数据库,您将看到表中填充的信息,如下所示。
右键单击记录/表名,单击复制创建语句,就可以创建了。
希望它能帮助一些未能使用命令行的初学者。