我正在使用SQLite Command Line Shell。如文档所述,我可以通过将其作为可执行文件的参数提供来打开数据库:
sqlite3 data.db
我无法弄清楚如何在调用它之后从中的打开数据库文件,而不将该文件作为命令行参数提供(如果我说,请双击sqlite3.exe在Windows中)。 SQLite shell工具中用于指定数据库文件的命令是什么?
答案 0 :(得分:98)
您可以附加一个甚至更多数据库并以与使用sqlite dbname.db相同的方式使用它
sqlite3
:
sqlite> attach "mydb.sqlite" as db1;
你可以看到所有附加的数据库 .databases
其中main以正常方式用于命令行db
.databases
seq name file
--- --------------- ----------------------------------------------------------
0 main
1 temp
2 ttt c:\home\user\gg.ite
答案 1 :(得分:16)
我认为打开单个数据库并开始查询的最简单方法是:
sqlite> .open "test.db"
sqlite> SELECT * FROM table_name ... ;
注意:这仅适用于版本3.8.2 +
答案 2 :(得分:9)
与在其他数据库系统中执行此操作的方式相同,您可以使用db的名称来标识双重命名表。唯一的表名可以直接使用。
select * from ttt.table_name;
或所有附加数据库中的表名是否唯一
select * from my_unique_table_name;
但我认为sqlite-shell仅用于手动查找或手动数据操作,因此这种方式更无关紧要
通常你会在脚本中使用sqlite-command-line
答案 3 :(得分:7)
Sqlite shell中用于打开数据库的命令是.open
语法是,
sqlite> .open dbasename.db
如果它是您要创建和打开的新数据库,则为
sqlite> .open --new dbasename.db
如果数据库存在于不同的文件夹中,则必须提及此路径:
sqlite> .open D:/MainFolder/SubFolder/...database.db
在Windows Command shell中,您应该使用' \'表示目录,但在SQLite目录中用' /'表示。 如果您仍然喜欢使用Windows表示法,则应为每个' \'
使用转义序列答案 4 :(得分:2)
您只需在命令行中指定数据库文件名:
bash-3.2 # sqlite3 UserDb.sqlite
SQLite version 3.16.2 2017-01-06 16:32:41
Enter ".help" for usage hints.
sqlite> .databases
main: /db/UserDb.sqlite
sqlite> .tables
accountLevelSettings genres syncedThumbs
collectionActivity recordingFilter thumbs
contentStatus syncedContentStatus
sqlite> select count(*) from genres;
10
此外,您可以从命令行执行查询:
bash-3.2 # sqlite3 UserDb.sqlite 'select count(*) from genres'
10
您可以从SQLite shell附加另一个数据库文件:
sqlite> attach database 'RelDb.sqlite' as RelDb;
sqlite> .databases
main: /db/UserDb.sqlite
RelDb: /db/RelDb_1.sqlite
sqlite> .tables
RelDb.collectionRelationship contentStatus
RelDb.contentRelationship genres
RelDb.leagueRelationship recordingFilter
RelDb.localizedString syncedContentStatus
accountLevelSettings syncedThumbs
collectionActivity thumbs
第二个数据库中的表格可以通过数据库的前缀访问:
sqlite> select count(*) from RelDb.localizedString;
2442
但谁知道如何从命令行指定多个数据库文件以从命令行执行查询?
答案 5 :(得分:1)
我想知道为什么没有人能够得到实际问的问题。它声明 SQLite shell工具中指定数据库文件的命令是什么?
sqlite db位于我的硬盘E:\ABCD\efg\mydb.db
上。如何使用sqlite3命令行界面访问它? .open E:\ABCD\efg\mydb.db
不起作用。这就是问题。
我发现做这项工作的最佳方式是
E:\ABCD\efg\mydbs
)sqlite3
,然后打开.open mydb.db
这样,您也可以对属于不同数据库的不同表执行join操作。
答案 6 :(得分:1)
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
sharedPreferences.getString("key","");
答案 7 :(得分:1)
较旧的 SQLite 命令行外壳(sqlite3.exe
)似乎不提供.open
命令或任何易于识别的替代方法。
尽管我没有找到明确的参考,但似乎.open
命令是在版本 3.15 左右引入的。 SQLite Release History首先在2016-10-14(3.15.0)中提到了.open
命令。