记录生活的点滴

转载:SQLite学习手册(命令行工具)

转载自:http://www.cnblogs.com/stephen-liu74/archive/2012/02/24/2325981.html

SQLite学习手册(命令行工具)Posted on 2012-02-24 08:57 Stephen_Liu 阅读(2958) 评论(2) 编辑 收藏 

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

   

    见如下常用示例:
    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

分类: SQLite


评论

© SUIKHAN'S HOME | Powered by LOFTER