各位用户为了找寻关于SQLite教程(八):命令行工具介绍的资料费劲了很多周折。这里教程网为您整理了关于SQLite教程(八):命令行工具介绍的相关资料,仅供查阅,以下为您介绍关于SQLite教程(八):命令行工具介绍的详细内容

工欲善其事,必先利其器。学好SQLite的命令行工具,对于我们学习SQLite本身而言是非常非常有帮助的。最基本的一条就是,它让我们学习SQLite的过程更加轻松愉快。言归正传吧,在SQLite的官方下载网站,提供了支持多个平台的命令行工具,使用该工具我们可以完成大多数常用的SQLite操作,就像sqlplus之于Oracle。以下列表给出了该工具的内置命令:

 

命令名

命令说明

.help

列出所有内置命令。

.backup DBNAME FILE

备份指定的数据库到指定的文件,缺省为当前连接的main数据库。

.databases

列出当前连接中所有attached数据库名和文件名。

.dump TABLENAME ...

以SQL文本的格式DUMP当前连接的main数据库,如果指定了表名,则只是DUMP和表名匹配的数据表。参数TABLENAME支持LIKE表达式支持的通配符。

.echo ON|OFF

打开或关闭显示输出。

.exit

退出当前程序。

.explain ON|OFF

打开或关闭当前连接的SELECT输出到Human Readable形式。

.header(s) ON|OFF

在显示SELECT结果时,是否显示列的标题。

.import FILE TABLE

导入指定文件的数据到指定表。

.indices TABLENAME

显示所有索引的名字,如果指定表名,则仅仅显示匹配该表名的数据表的索引,参数TABLENAME支持LIKE表达式支持的通配符。

.log FILE|off 

打开或关闭日志功能,FILE可以为标准输出stdout,或标准错误输出stderr。

.mode MODE TABLENAME

设置输出模式,这里最为常用的模式是column模式,使SELECT输出列左对齐显示。

.nullvalue STRING 

使用指定的字符串代替NULL值的显示。

.output FILENAME 

将当前命令的所有输出重定向到指定的文件。

.output stdout 

将当前命令的所有输出重定向到标准输出(屏幕)。

.quit 

退出当前程序。 

.read FILENAME 

执行指定文件内的SQL语句。

.restore DBNAME FILE 

从指定的文件还原数据库,缺省为main数据库,此时也可以指定其它数据库名,被指定的数据库成为当前连接的attached数据库。

.schema TABLENAME

显示数据表的创建语句,如果指定表名,则仅仅显示匹配该表名的数据表创建语句,参数TABLENAME支持LIKE表达式支持的通配符。

.separator STRING

改变输出模式和.import的字段间分隔符。

.show

显示各种设置的当前值。

.tables TABLENAME

列出当前连接中main数据库的所有表名,如果指定表名,则仅仅显示匹配该表名的数据表名称,参数TABLENAME支持LIKE表达式支持的通配符。

.width NUM1 NUM2 ...

在MODE为column时,设置各个字段的宽度,注意:该命令的参数顺序表示字段输出的顺序。

 

  见如下常用示例:

    1). 备份和还原数据库。  

代码如下:     --在当前连接的main数据库中创建一个数据表,之后再通过.backup命令将main数据库备份到D:/mydb.db文件中。     sqlite> CREATE TABLE mytable (first_col integer);     sqlite> .backup 'D:/mydb.db'     sqlite> .exit     --通过在命令行窗口下执行sqlite3.exe以重新建立和SQLite的连接。     --从备份文件D:/mydb.db中恢复数据到当前连接的main数据库中,再通过.tables命令可以看到mytable表。     sqlite> .restore 'D:/mydb.db'     sqlite> .tables     mytable    

    2). DUMP数据表的创建语句到指定文件。  

代码如下:     --先将命令行当前的输出重定向到D:/myoutput.txt,之后在将之前创建的mytable表的声明语句输出到该文件。     sqlite> .output D:/myoutput.txt     sqlite> .dump mytabl%     sqlite> .exit     --在DOS环境下用记事本打开目标文件。     D:>notepad myoutput.txt    

    3). 显示当前连接的所有Attached数据库和main数据库。  

代码如下:     sqlite> ATTACH DATABASE 'D:/mydb.db' AS mydb;     sqlite> .databases     seq  name               file     ---  ---------------  ------------------------     0    main     2    mydb                D:mydb.db    

    4). 显示main数据库中的所有数据表。  

代码如下:     sqlite> .tables     mytable    

    5). 显示匹配表名mytabl%的数据表的所有索引。  

代码如下:     sqlite> CREATE INDEX myindex on mytable(first_col);     sqlite> .indices mytabl%     myindex           

    6). 显示匹配表名mytable%的数据表的Schema信息。  

代码如下:     --依赖该表的索引信息也被输出。     sqlite> .schema mytabl%     CREATE TABLE mytable (first_col integer);     CREATE INDEX myindex on mytable(first_col);    

    7). 格式化显示SELECT的输出信息。  

代码如下:     --插入测试数据     sqlite> INSERT INTO mytable VALUES(1);     sqlite> INSERT INTO mytable VALUES(2);     sqlite> INSERT INTO mytable VALUES(3);        --请注意没有任何设置时SELECT结果集的输出格式。     sqlite> SELECT * FROM mytable;     1     2     3        --显示SELECT结果集的列名。     --以列的形式显示各个字段。     --将其后输出的第一列显示宽度设置为10.     sqlite> .header on     sqlite> .mode column     sqlite> .width 10     sqlite> SELECT * FROM mytable;     first_col     ----------     1     2     3