1.".dump"命令将把database的内容转化为一个ASCII编码的文本文件。
把一个数据库进行archival备份可以用如下的命令:
$ echo '.dump' | sqlite3 ex1 | gzip -c >ex1.dump.gz
这样将生产一个名叫ex1.dump.gz的文件,它包含了重新构建数据库的所有信息
重新构建数据库。 也可以用sqlite3 data.db .dump(使用后自动关闭数据库)
一种方式是:用"echo"或"cat"命令输出一些sqlite3命令到一个文件,然后执行程序sqlite3,并把该文件作为sqlite3的输入流。这种方式不错,很多程序都可以这样。
另一种方式是:以SQL语句作为sqlite3的第二个参数,在执行SQL操作。为了方便,sqlite3允许在第一个参数数据库名后,再跟一个参数,来指定要执行的SQL语句。如果sqlite3带2个参数进行启动的话,第二个参数将做为SQL传递给SQLite library来处理, 返回结果将以list模式在标准输出中进行显示,然后sqlite3程序也退出了。
例如:
# sqlite3 /data/data/com.android.providers.settings/databases/settings.db "select * from system;select * from system"
以SQL语句作为sqlite3的第二个参数,这种方式主要是为了sqlite3和其他程序(比如"awk")联合使用.
$ sqlite3 ex1 'select * from tbl1' |
> awk '{printf "<tr><td>%s<td>%s\n",$1,$2 }'
一般sqlite3的SQL语句的结束符是分号";". 然而你在shell中运行sqlite3时你还可以使用"GO" (大写) 或"/"来作为一条SQL语句结束的标志. 他们分别在SQL Server和Oracle中被使用. 但是他在sqlite3_exec()不能使用shell会先把他们转化为分号";",然后再传递到该函数.
4.常用命令:
1.显示当前附加的所有数据库和main数据库
.databases 或 .database
2.显示所有表
.tables 或 .table
3.显示匹配表的所有索引
.indices TableName
.indices %TableName%
4.退出当前程序
.exit 或 .quit
5.备份数据库
.backup 'E:/A.backup' 默认备份main数据库
.backup AAA 'E:/A.backup'
6.还原数据库
.restore 'E:/A.backup' 默认还原到main数据库
.restore AAA 'E:/A.backup'
7.执行指定文件内的SQL
.read FileName
8.格式化显示SELECT的输出信息
.header(s) ON|OFF 显示SELECT结果时,是否显示列的标题
.mode column 以列的形式显示各个字段(mode有多种选项,详细信息请输入.help