什么SQL可以用来列出表,以及在SQLite数据库文件中的这些表中的行-一旦我已经附加了它与SQLite 3命令行工具上的ATTACH命令?


当前回答

要列出表格,您还可以这样做:

SELECT name FROM sqlite_master
WHERE type='table';

其他回答

最简单的方法是直接打开数据库并使用.dump命令,而不是在调用SQLite 3 shell工具后附加它。

所以…(假设你的操作系统命令行提示符是$)而不是$sqlite3:

sqlite3> ATTACH database.sqlite as "attached"

从你的操作系统命令行,直接打开数据库:

$sqlite3 database.sqlite
sqlite3> .dump

使用.da查看所有数据库-其中一个被称为“main”。

该数据库的表可以通过以下方式查看:

SELECT distinct tbl_name from sqlite_master order by 1;

附加的数据库需要在ATTACH语句中用AS选择前缀,例如aa (, bb, cc…),因此:

SELECT distinct tbl_name from **aa.sqlite_master** order by 1;

请注意,在这里您也可以获得视图。要排除这些,请添加:

where type = 'table'

在order之前

我使用这个查询来获得它:

SELECT name FROM sqlite_master WHERE type='table'

在iOS中使用:

NSString *aStrQuery=[NSString stringWithFormat:@"SELECT name FROM sqlite_master WHERE type='table'"];

要显示所有表,使用

SELECT name FROM sqlite_master WHERE type = "table"

要显示所有行,我认为可以遍历所有表,并在每个表上执行SELECT *。但也许垃圾场才是你想要的?

通过union all,将所有表合并到一个列表中。

select name
from sqlite_master 
where type='table'

union all 

select name 
from sqlite_temp_master 
where type='table'