(9.)导出数据库为SQL文件(备份成sql文件)
可以使用.dump命令将数据库导出为SQL格式的文件。不使用任何参数,.dump将导出整个数据库。如果提供参数,CLP把参数理解为表名或视图名。
例如把当前数据库导出为File.sql文件保存,执行下面三条命令就能完成操作:
sqlite> .output File.sql
sqlite> .dump
sqlite> .output stdout
这样在sqlite数据库的.exe可执行程序目录下就保存了一个数据库的SQL语句备份。
可以用复制的方法得到一个二进制的数据库文件拷贝。但也许在复制之前你想先抽空(vacuum)它,也就是释放数据库文件中未使用的空间,以得到一个更小的数据库文件。可操作如下:
在cmd的命令行下输入:sqlite3 数据库名 VACUUM (这个功能好像是压缩数据库)
cp 数据库名 数据库备份名
提示:一般情况下,二进制的备份不如SQL备份兼容性好。尽管SQLite有很好的向上兼容性和各操作系统间文件格式的一致性,但如果想要将备份文件保留很长时间,还是SQL格式保险一些。
当一个数据库你不想再用时,简单地从操作系统中将其文件删除就行了。
清洁数据库
SQLite有两个命令用于数据库清洁——REINDEX和VACUUM。REINDEX用于重建索引,有两种形式:
REINDEX collation_name;
REINDEX table_name|index_name;
第一种形式利用给定的排序法名称重新建立所有的索引。
VACUUM通过重建数据库文件来清除数据库内所有的未用空间。
(10.).sql数据库备份的数据导入
有两种方法可以导入数据,用哪种方法决定于要导入的文件的格式。如果文件由SQL语句构成,可以使用.read命令导入(执行)文件。如果文件是由逗号或其它定界符分隔的值(comma-separated values,CSV)组成,可使用.import [file][table]命令。此命令将解析指定的文件并尝试将数据插入到指定的表中。
.read命令用来导入由.dump命令创建的文件。如果要使用前面作为备份文件所导出的file.sql,需要先移除已经存在的数据库对象(表和视图),然后用下面方法导入:
sqlite> drop table 表名;
sqlite> drop view 视图名;
sqlite> .read File.sql
(11.)查看当前默认设置;修改设置
.show 命令可以查看当前的设置;修改当前设置的命令有:
CLP提供了几个格式化选项命令。最简单的是.echo, 如果设置.echo on,则新输入的命令在执行前都会回显,默认值是off。.headers设置为on时,查询结果显示时带有字段名。当遇到NULL值时,如果需要以一个字符串来显示,使用.nullvalue命令设置,如:
sqlite> .nullvalue NULL
默认情况下使用空串。如果要改变CLP的shell提示符,使用.prompt [value],如:
sqlite> .prompt 'sqlite3> '
sqlite3>
.mode命令可以设置结果数据的几种输出格式。可选的格式为csv、column、html、insert、line、list、tabs和tcl。默认值是list,在此模式下显示结果时列间以默认的分隔符分隔。如果你想以CSV格式输出一个表的数据,可如下操作:
sqlite3> .output file.csv
sqlite3> .separator , (这个·命令是设置file.csv文件的各个列用,间隔)
sqlite3> select * from test;
sqlite3> .output stdout
文件file.csv的内容为:
1,eenie
2,meenie
3,miny
4,mo
因为有一个CSV模式,所以下面的命令会得到相似的结果:
sqlite3> .output file.csv
sqlite3> .mode csv
sqlite3> select * from test;
sqlite3> .output stdout
所有的数据库管理任务都可以在shell和命令行模式下完成。
(12.)获得数据库文件的信息
按前文所述,获得数据库信息的主要途径是使用sqlite_master视图,它提供一个数据库所包含的所有对象的细节信息。
如果你想获得关于物理的数据库结构信息,可以使用一个称为SQLite Analyzer的工具,它可以在SQLite网站上下载得到。SQLiteAnalyzer下载可以提供磁盘SQLite数据库的详细技术信息。
(13)其它SQLite工具
有很多其它开源的或商业的程序可工作于SQLite,其中具有优秀图形化界面且跨平台的有:
SQLite Database Browser (http://sqlitebrowser.sourceforge.net)
SQLite Control Center(http://bobmanc.home.comcast.net/sqlitecc.html)
SQLiteManager (www.sqlabs.net/sqlitemanager.php)