什么SQL可以用来列出表,以及在SQLite数据库文件中的这些表中的行-一旦我已经附加了它与SQLite 3命令行工具上的ATTACH命令?
当前回答
对于SQLite 3的最新版本,您可以发布:
.fullschema
查看所有的create语句。
其他回答
在SQLite命令行中有一个命令可用:
.tables ?PATTERN? List names of tables matching a LIKE pattern
它转换为以下SQL:
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1
看起来你需要遍历sqlite_master表,就像这样:
SELECT * FROM dbname.sqlite_master WHERE type='table';
然后用SELECT或类似的方法手动遍历每个表以查看行。
. dump和. schema命令似乎根本看不到数据库。
根据文档,相当于MySQL的SHOW TABLES;是:
”。“Tables”命令类似于设置列表模式然后执行 查询:
SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1;
但是,如果您正在检查单个表是否存在(或获取其详细信息),请参阅LuizGeron的答案。
通过union all,将所有表合并到一个列表中。
select name
from sqlite_master
where type='table'
union all
select name
from sqlite_temp_master
where type='table'
在SQLite数据库中查看表有几个步骤:
列出数据库中的表: .tables 列出表格的外观: . schema的表 打印整个表格: SELECT * FROM tablename; 列出所有可用的SQLite提示命令: .help
推荐文章
- 选项(RECOMPILE)总是更快;为什么?
- 设置数据库从单用户模式到多用户
- oracle中的RANK()和DENSE_RANK()函数有什么区别?
- 的类型不能用作索引中的键列
- SQL逻辑运算符优先级:And和Or
- 如何检查一个表是否存在于给定的模式中
- 添加一个复合主键
- 如何在SQL Server Management Studio中查看查询历史
- 可以为公共表表达式创建嵌套WITH子句吗?
- 什么时候我需要在Oracle SQL中使用分号vs斜杠?
- SQL Server的NOW()?
- 在SQL中,count(列)和count(*)之间的区别是什么?
- 在SQL Server中截断(不是四舍五入)小数位
- 仅在Datetime列上按日期分组
- PostgreSQL通配符LIKE用于单词列表中的任何一个