sqlite3数据库命令及数据库导入导出

1.  sqlite3 dbName.sqlite3  加载数据库,不存载就创建

2.  .help  帮助详解

    

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
sqlite> .help
.backup ?DBFILE      Backup DB (default "main") to FILE
.bail ON|OFF           Stop after hitting an error.  Default OFF
.databases             List names and files of attached databases
.dump ?TABLE? ...      Dump the database in an SQL text format
                         If TABLE specified, only dump tables matching
                         LIKE pattern TABLE.
.echo ON|OFF           Turn command echo on or off
.exit                  Exit this program
.explain ?ON|OFF?      Turn output mode suitable for EXPLAIN on or off.
                         With no args, it turns EXPLAIN on.
.header(s) ON|OFF      Turn display of headers on or off
.help                  Show this message
.import FILE TABLE     Import data from FILE into TABLE
.indices ?TABLE?       Show names of all indices
                         If TABLE specified, only show indices for tables
                         matching LIKE pattern TABLE.
.load FILE ?ENTRY?     Load an extension library
.log FILE|off          Turn logging on or off.  FILE can be stderr/stdout
.mode MODE ?TABLE?     Set output mode where MODE is one of:
                         csv      Comma-separated values
                         column   Left-aligned columns.  (See .width)
                         html     HTML <table> code
                         insert   SQL insert statements for TABLE
                         line     One value per line
                         list     Values delimited by .separator string
                         tabs     Tab-separated values
                         tcl      TCL list elements
.nullvalue STRING      Print STRING in place of NULL values
.output FILENAME       Send output to FILENAME
.output stdout         Send output to the screen
.prompt MAIN CONTINUE  Replace the standard prompts
.quit                  Exit this program
.read FILENAME         Execute SQL in FILENAME
.restore ?DBFILE     Restore content of DB (default "main") from FILE
.schema ?TABLE?        Show the CREATE statements
                         If TABLE specified, only show tables matching
                         LIKE pattern TABLE.
.separator STRING      Change separator used by output mode and .import
.show                  Show the current values for various settings
.stats ON|OFF          Turn stats on or off
.tables ?TABLE?        List names of tables
                         If TABLE specified, only list tables matching
                         LIKE pattern TABLE.
.timeout MS            Try opening locked tables for MS milliseconds
.width NUM1 NUM2 ...   Set column widths for "column" mode
.timer ON|OFF          Turn the CPU timer measurement on or off

3. 应用截图

加载

root@ubuntu:~/workspace/SVN_AUTH/db# sqlite3 development.sqlite3
SQLite version 3.7.2
Enter ".help" for instructions
Enter SQL statements terminated with a ";"

显示数据库

1
2
3
4
sqlite> .databases
seq  name             file                                                     
---  ---------------  ----------------------------------------------------------
0    main             /root/workspace/SVN_AUTH/db/development.sqlite3          

显示表

sqlite> .tables
applies            logs               repositories       users           
deps               permits            schema_migrations

显示表的内容

sqlite> .head on  #显示表头
sqlite> select * from users;
id|name|brief|group|dep_id|created_at|updated_at
1|3B-7-1-16  刘文民|liuwm|superadmin||2011-08-08 08:11:37.283136|2011-08-08 08:11:37.283136
3|3D-1-01  贾延平|jiayp|admin||2011-08-08 08:19:51.745947|2011-08-08 08:19:51.745947
4|3B-7-1-11 杜宏伟|duhw|||2011-08-08 08:33:51.496746|2011-08-08 08:33:51.496746
5|3B-2-14  苑辰|yuanc-a|emplooyee||2011-08-08 08:52:03.229173|2011-08-08 08:52:03.229173
6|3B-2-16  周四维|zhousw|||2011-08-08 08:54:21.134175|2011-08-08 08:54:21.134175
7|3B-2-12  施晟|shis|||2011-08-08 08:56:01.234077|2011-08-08 08:56:01.234077

显示创建表的脚本(不跟参数显示所有的)


sqlite的数据导入 导出

数据导入的来源可以是其他应用程序的输出,也可以是指定的文本文件,这里采用指定的文本文件。



   1. 首先,确定导入的数据源,这里是待导入的,按固定格式的文本文件。

   2. 然后,依照导入的文件格式,确定想导入的目标数据表,这个数据表如果没有,可以依照待导入的文本文件格式,创建一个相对应的数据表。

   3. 最后,执行.import命令,将文本文件中数据导入数据表中。





1. 数据源



   在/home/ywx/yu/sqlite/下,创建一个名为data.txt的文本文件,并输入以下数据,数据之间采用逗号隔开

  1. id,name,age,address,hobby

  2. 1,tom,24,beijing,football
  3. 2,liu,27,heibei,fotball
  4. 3,jim,26,shandong,football
  5. 4,han,28,beijing,football
  6. 5,meng,25,beijing,tennis

 

2. 目标数据表

    这里创建一张目标数据表,通过分析文本格式,这里需要3个字段,分别是id,name,age。但在数据类型选择时存在一个问题,id和age在文本文件中是按字符型存储的,而其实际在数据表中,最好要表示成整型,因此这里要涉及到一个字符型数据类型向整型数据类型转换的问题。

    在创建表时,将id和age的类型定义为整型,进行强制转换,如果在数据导入时,发现转换失败,可以将id和age类型改为文本型。



  1. ywx@ywx:~/yu/sqlite$ sqlite3 test.db

  2. SQLite version 3.7.7.1 20110628 17:39:05
  3. Enter “.help” for instructions
  4. Enter SQL statements terminated with a “;”
  5. sqlite> create table data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
  6. sqlite>



3. 导入命令



  1. sqlite> .separator “,” 

  2. sqlite> .import data.txt data_txt_table
  3. sqlite> select * from data_txt_table;
  4. id,name,age,address,hobby
  5. 1,tom,24,beijing,football
  6. 2,liu,27,heibei,fotball
  7. 3,jim,26,shandong,football
  8. 4,han,28,beijing,football
  9. 5,meng,25,beijing,tennis
  10. sqlite>



   这里需要注意一点,在数据导入之前,先要根据数据的具体分的格式,设置数据导入的间隔符,例如在文本数据中采用的是‘,’来间隔数据,因此应先调用.seperator 设置‘,’ 为间隔符。





2. 查看命令

  

  .schema 命令来查看指定的数据表的结构

  1. sqlite> .schema data_txt_table

  2. CREATE TABLE data_txt_table(id char(10),name char(10),age char(10),address varchar(15),hobby varchar (15));
  3. sqlite>



2. .tables 命令用来查看当前数据库的所有数据表



  1. sqlite> .tables

  2. data_txt_table
  3. sqlite>



3. databases 命令用来查看当前所有数据库



  1. sqlite> .databases

  2. seq name file 
  3.   
  4. 0 main /home/ywx/yu/sqlite/test.db 
  5. 1 temp





3. 数据导出



   数据导出也是一个常用到的操作,可以将指定表中的数据导出成SQL脚本,供其他数据库使用,还可以将指定的数据表中的数据完整定位到标准输出,也可以将指定数据库中的数据完整的导入到另一个指定数据库等,



1. 导出成指定的SQL脚本

   将sqlite中指定的数据表以SQL创建脚本的形式导出,具体命令



  1. ywx@ywx:~/yu/sqlite$ sqlite3 test.db

  2. SQLite version 3.7.7.1 20110628 17:39:05
  3. Enter “.help” for instructions
  4. Enter SQL statements terminated with a “;”
  5. sqlite> .output data.sql
  6. sqlite> .dump
  7. sqlite>

 

  1. ywx@ywx:~/yu/sqlite$ ll

  2. 总计 16
  3. drwxrxrx 2 ywx ywx 4096 20110813 23:15 ./
  4. drwxrxrx 7 ywx ywx 4096 20110813 20:53 ../
  5. rwrr 1 ywx ywx 602 20110813 23:17 data.sql
  6. rwrr 1 ywx ywx 2048 20110813 22:44 test.db



2. 数据库导出



  1. data.sql test.db

  2. ywx@ywx:~/yu/sqlite$ sqlite3 test.db “.dump” | sqlite3 test2.db
  3. ywx@ywx:~/yu/sqlite$ ll
  4. 总计 20
  5. drwxrxrx 2 ywx ywx 4096 20110813 23:20 ./
  6. drwxrxrx 7 ywx ywx 4096 20110813 20:53 ../
  7. rwrr 1 ywx ywx 602 20110813 23:17 data.sql
  8. rwrr 1 ywx ywx 2048 20110813 23:20 test2.db
  9. rwrr 1 ywx ywx 2048 20110813 22:44 test.db



3. 其他格式,如:htm格式输出



  1. ywx@ywx:~/yu/sqlite$ sqlite3 html test.db “select * from data_txt_table” > liu.htm

  2. ywx@ywx:~/yu/sqlite$ ls
  3. data.sql liu.htm test2.db test.db
  4. http://blog.chinaunix.net/uid-22666248-id-2182334.html