从SQLite命令行shell中打开数据库文件
我正在使用SQLite命令行Shell 。 正如所logging的,我可以通过将其作为参数提供给可执行文件来打开数据库:
sqlite3 data.db
这看起来可能是无关紧要的 – 而且非常接近! – 但我不知道如何打开一个数据库文件在调用它之后,而不提供文件作为命令行参数(如果我说,双击sqlite3.exe在Windows中)。 SQLite shell工具中的命令是什么来指定一个数据库文件?
你可以附加一个甚至更多的数据库,并像使用sqlite dbname.db一样使用它
sqlite3 : sqlite> attach "mydb.sqlite" as db1;
你可以用.databases查看所有连接的数据库
在正常的方式主要用于命令行数据库
.databases seq name file --- --------------- ---------------------------------------------------------- 0 main 1 temp 2 ttt c:\home\user\gg.ite
我认为打开单个数据库并开始查询的最简单的方法是:
sqlite> .open "test.db" sqlite> SELECT * FROM table_name ... ;
注意:这仅适用于3.8.2+版本
与在其他数据库系统中一样,可以使用db的名称来标识双重命名表。 独特的表名可以直接使用。
select * from ttt.table_name;
或者如果所有连接的数据库中的表名是唯一的
select * from my_unique_table_name;
但是我认为sqlite-shell只能用于手动查找或手动数据操作,因此这种方式更加不合逻辑
通常你会在脚本中使用sqlite命令行
在Sqlite shell中打开一个数据库的命令是.open
语法是,
sqlite> .open dbasename.db
如果它是一个你想创build并打开的新数据库,那就是
sqlite> .open --new dbasename.db
如果数据库存在于不同的文件夹中,则path必须如下所示:
sqlite> .open D:/MainFolder/SubFolder/...database.db
在Windows Command shell中,应该使用'\'来表示一个目录,但在SQLite目录中用'/'表示。 如果您仍然喜欢使用Windows标记,则应对每个“\”使用转义序列
我想知道为什么没有人能够得到实际要求的问题。 它声明SQLite shell工具内的命令是用来指定一个数据库文件的?
一个sqlite数据库在我的硬盘E:\ABCD\efg\mydb.db
如何使用sqlite3命令行界面访问它? .open E:\ABCD\efg\mydb.db
不起作用。 这是问什么问题。
我发现做这个工作的最好方法是
- 将所有数据库文件复制粘贴到1个目录(比如
E:\ABCD\efg\mydbs
) - 切换到你的命令行中的那个目录
- 现在打开
sqlite3
然后.open mydb.db
这样,你可以在属于不同数据库的不同表上进行连接操作。
create different db files using >sqlite3 test1.db sqlite> create table test1 (name text); sqlite> insert into test1 values('sourav'); sqlite>.exit >sqlite3 test2.db sqlite> create table test2 (eid integer); sqlite> insert into test2 values (6); sqlite>.exit >sqlite SQLite version 3.8.5 2014-06-04 14:06:34 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .open test1.db sqlite> select * from test1; sourav sqlite> .open test2.db sqlite> select * from test1; Error: no such table: test1 sqlite> select * from test2; 6 sqlite> .exit > Thank YOU.