sqlite3 -cmd ".stat" < `echo ".exit"`
Memory Used: 0 (max 56) bytes
Number of Outstanding Allocations: 0 (max 2)
Number of Pcache Overflow Bytes: 0 (max 0) bytes
Largest Allocation: 40 bytes
Largest Pcache Allocation: 0 bytes
Bytes received by read(): 10992
Bytes sent to write(): 253
Read() system calls: 19
Write() system calls: 6
Bytes read from storage: 0
Bytes written to storage: 0
Cancelled write bytes: 0
8条答案
按热度按时间ezykj2lf1#
只需要在数据库文件参数后面用引号括起命令即可。
例如,下面的命令创建了一个名为
abc
的表:slsn1g292#
您可以使用
.exit
命令(1)正常退出:文件:Command Line Shell For SQLite。
ix0qys7i3#
如果在命令行运行SQLite 3时,你遇到了“必须”使用
-cmd
标志的情况,你可以使用连续的 blank 命令退出。例如:
在本例中,
""
将导致SQLite 3进程退出。(至少在OS X上是这样的。vngu2lb84#
使用多行查询也可能很有用:
ehxuflar5#
正如问题所述,我们也可以使用'-cmd'选项,并…在最后应用一些shell '魔术'(模仿用户手册'退出')。让我们计算一个sql表达式:
当我们必须提交'.xxx' sqlite元命令(即.show或.stat):
注:在破折号和bash中测试。也应该在zsh,fish等玩。
2ledvvac6#
有查询和点命令。
我们可以传递什么给
sqlite3
?让我们检查一下。我们也可以使用点命令代替
[SQL]
。但是,可能有一些例外,我不知道。要列出所有点命令,请运行:
这里,
test.sqlite
是FILENAME
。要查看数据库的架构,请运行:
要列出数据库的所有表,请运行:
如果必须使用
-cmd
,则命令如下所示:现在,您可以使用以下方法对数据库运行查询:
如果必须使用
-cmd
,则命令如下所示:您可能已经注意到,在使用
-cmd
时,我们使用了不止一个命令。是的,我们可以做这样的事情:如果必须使用
-cmd
,则命令如下所示:**注意:**从前面的例子中可以看出,如果使用
-cmd
,我们只需要使用.quit
或.exit
。否则,不需要。ugmeyewa7#
person
表**,然后读取**db.sqlite3
数据库中的person
表**,然后立即退出。*".exit"
命令不需要退出,因为所有查询完成后,sqlite会自动退出:up9lanfz8#
一般命令语法
这让我有点困惑,部分原因是
man sqlite3
使用了一个奇怪的符号,所以这里是,更常见的类似GNU的符号的语法是:这意味着第一个不带破折号
-
的参数必须是数据库名称。然后,每隔一个参数是在该数据库上发生的单独的SQL语句。
一些有效的命令示例:
如果有一个或多个
sql
命令,则最后没有交互式shell因此,下面的退出没有交互式shell:
sqlite3 db.sqlite3 "select col1 from t"
:一条SQL语句sqlite3 db.sqlite3 "select col1 from t" "select col2 from t"
:两条SQL语句sqlite3 db.sqlite3 ".schema"
:一条SQL语句sqlite3 db.sqlite3 ".schema" "select col1 from t"
:两条SQL语句但以下命令打开了一个交互式shell,因为它们有0个SQL命令:
因此,我们看到
-cmd
所做的是允许运行SQL语句,同时在最后仍然获得交互式shell。要在没有DB的情况下运行查询并退出,可以使用magic
:memory:
临时内存数据库例如,这对于快速功能测试非常有用: