sqlite3数据的导入和导出

前端之家收集整理的这篇文章主要介绍了sqlite3数据的导入和导出前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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

1. 首先,确定导入的数据源,这里是待导入的,按固定格式的文本文件
2. 然后,依照导入的文件格式,确定想导入的目标数据表,这个数据表如果没有,可以依照待导入的文本文件格式,创建一个相对应的数据表。
3. 最后,执行.import命令,将文本文件中数据导入数据表中。


1. 数据源

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

  1. id,@H_502_14@name,@H_502_14@age,@H_502_14@address,@H_502_14@hobby
    @H_502_14@
  2. 1,@H_502_14@tom,@H_502_14@24,@H_502_14@beijing,@H_502_14@football
  3. 2,@H_502_14@liu,@H_502_14@27,@H_502_14@heibei,@H_502_14@fotball
  4. 3,@H_502_14@jim,@H_502_14@26,@H_502_14@shandong,@H_502_14@football
  5. 4,@H_502_14@han,@H_502_14@28,@H_502_14@football
  6. 5,@H_502_14@meng,@H_502_14@25,@H_502_14@tennis

@H_502_14@
2. 目标数据表
这里创建一张目标数据表,通过分析文本格式,这里需要3个字段,分别是id,name,age。但在数据类型选择时存在一个问题,id和age在文本文件中是按字符型存储的,而其实际在数据表中,最好要表示成整型,因此这里要涉及到一个字符型数据类型向整型数据类型转换的问题。
在创建表时,将id和age的类型定义为整型,进行强制转换,如果在数据导入时,发现转换失败,可以将id和age类型改为文本型。

@H_502_14@

  1. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$ sqlite3 test.@H_502_14@db
    @H_502_14@
  2. sqlite version 3.@H_502_14@7.@H_502_14@7.@H_502_14@1 2011-@H_502_14@06-@H_502_14@28 17:@H_502_14@39:@H_502_14@05
  3. Enter".help"@H_502_14@for@H_502_14@instructions
  4. Enter sql statements terminated with a";"@H_502_14@
  5. sqlite>@H_502_14@create table data_txt_table(@H_502_14@id char(@H_502_14@10)@H_502_14@,@H_502_14@name char(@H_502_14@10)@H_502_14@,@H_502_14@age char(@H_502_14@10)@H_502_14@,@H_502_14@address varchar(@H_502_14@15)@H_502_14@,@H_502_14@hobby varchar(@H_502_14@15)@H_502_14@)@H_502_14@;@H_502_14@@H_502_14@
  6. sqlite>@H_502_14@


3. 导入命令

@H_502_14@

  1. sqlite>@H_502_14@.@H_502_14@separator","@H_502_14@@H_502_14@
    @H_502_14@
  2. sqlite>@H_502_14@.@H_502_14@import data.@H_502_14@txt data_txt_table@H_502_14@
  3. sqlite>@H_502_14@select@H_502_14@*@H_502_14@from data_txt_table;@H_502_14@
  4. id,@H_502_14@hobby
  5. 1,@H_502_14@tennis
  6. sqlite>@H_502_14@


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


2. 查看命令

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

  1. sqlite>@H_502_14@.@H_502_14@schema data_txt_table@H_502_14@
    @H_502_14@
  2. CREATE TABLE data_txt_table(@H_502_14@id char(@H_502_14@10)@H_502_14@,@H_502_14@hobby varchar(@H_502_14@15)@H_502_14@)@H_502_14@;@H_502_14@
  3. sqlite>@H_502_14@


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

@H_502_14@

  1. sqlite>@H_502_14@.@H_502_14@tables@H_502_14@
    @H_502_14@
  2. data_txt_table
  3. sqlite>@H_502_14@


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

@H_502_14@

  1. sqlite>@H_502_14@.@H_502_14@databases@H_502_14@
    @H_502_14@
  2. seq name file
  3. -@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@-@H_502_14@
  4. 0 main/@H_502_14@home/@H_502_14@ywx/@H_502_14@yu/@H_502_14@sqlite/@H_502_14@test.@H_502_14@db
  5. 1 temp



3. 数据导出

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

1. 导出成指定的sql脚本
sqlite中指定的数据表以sql创建脚本的形式导出,具体命令

@H_502_14@

  1. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$ sqlite3 test.@H_502_14@db
    @H_502_14@
  2. sqlite version 3.@H_502_14@7.@H_502_14@7.@H_502_14@1 2011-@H_502_14@06-@H_502_14@28 17:@H_502_14@39:@H_502_14@05
  3. Enter".help"@H_502_14@for@H_502_14@instructions
  4. Enter sql statements terminated with a";"@H_502_14@
  5. sqlite>@H_502_14@.@H_502_14@output data.@H_502_14@sql@H_502_14@
  6. sqlite>@H_502_14@.@H_502_14@dump@H_502_14@
  7. sqlite>@H_502_14@
  1. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$ ll
    @H_502_14@
  2. 总计 16
  3. drwxr-@H_502_14@xr-@H_502_14@x 2 ywx ywx 4096 2011-@H_502_14@08-@H_502_14@13 23:@H_502_14@15.@H_502_14@/@H_502_14@
  4. drwxr-@H_502_14@xr-@H_502_14@x 7 ywx ywx 4096 2011-@H_502_14@08-@H_502_14@13 20:@H_502_14@53.@H_502_14@.@H_502_14@/@H_502_14@
  5. -@H_502_14@rw-@H_502_14@r-@H_502_14@-@H_502_14@r-@H_502_14@-@H_502_14@1 ywx ywx 602 2011-@H_502_14@08-@H_502_14@13 23:@H_502_14@17 data.@H_502_14@sql
  6. -@H_502_14@rw-@H_502_14@r-@H_502_14@-@H_502_14@r-@H_502_14@-@H_502_14@1 ywx ywx 2048 2011-@H_502_14@08-@H_502_14@13 22:@H_502_14@44 test.@H_502_14@db


2. 数据库导出

@H_502_14@

  1. data.@H_502_14@sql test.@H_502_14@db
    @H_502_14@
  2. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$sqlite3 test.@H_502_14@db".dump"@H_502_14@|@H_502_14@sqlite3 test2.@H_502_14@db@H_502_14@
  3. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$ ll
  4. 总计 20
  5. drwxr-@H_502_14@xr-@H_502_14@x 2 ywx ywx 4096 2011-@H_502_14@08-@H_502_14@13 23:@H_502_14@20.@H_502_14@/@H_502_14@
  6. drwxr-@H_502_14@xr-@H_502_14@x 7 ywx ywx 4096 2011-@H_502_14@08-@H_502_14@13 20:@H_502_14@53.@H_502_14@.@H_502_14@/@H_502_14@
  7. -@H_502_14@rw-@H_502_14@r-@H_502_14@-@H_502_14@r-@H_502_14@-@H_502_14@1 ywx ywx 602 2011-@H_502_14@08-@H_502_14@13 23:@H_502_14@17 data.@H_502_14@sql
  8. -@H_502_14@rw-@H_502_14@r-@H_502_14@-@H_502_14@r-@H_502_14@-@H_502_14@1 ywx ywx 2048 2011-@H_502_14@08-@H_502_14@13 23:@H_502_14@20 test2.@H_502_14@db
  9. -@H_502_14@rw-@H_502_14@r-@H_502_14@-@H_502_14@r-@H_502_14@-@H_502_14@1 ywx ywx 2048 2011-@H_502_14@08-@H_502_14@13 22:@H_502_14@44 test.@H_502_14@db


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

@H_502_14@

    1. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$sqlite3-@H_502_14@html test.@H_502_14@db"select * from data_txt_table"@H_502_14@>@H_502_14@liu.@H_502_14@htm@H_502_14@
      @H_502_14@
    2. ywx@ywx:@H_502_14@~@H_502_14@/@H_502_14@yu/@H_502_14@sqlite$ ls
    3. data.@H_502_14@sql liu.@H_502_14@htm test2.@H_502_14@db test.@H_502_14@db

    4. http://blog.chinaunix.net/uid-22666248-id-2182334.html

猜你在找的Sqlite相关文章