zoukankan      html  css  js  c++  java
  • 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 2011-06-28 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 2011-06-28 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. drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:15 ./
    4. drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
    5. -rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
    6. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 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. drwxr-xr-x 2 ywx ywx 4096 2011-08-13 23:20 ./
    6. drwxr-xr-x 7 ywx ywx 4096 2011-08-13 20:53 ../
    7. -rw-r--r-- 1 ywx ywx 602 2011-08-13 23:17 data.sql
    8. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 23:20 test2.db
    9. -rw-r--r-- 1 ywx ywx 2048 2011-08-13 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
  • 相关阅读:
    leetcode 78. 子集 JAVA
    leetcode 91. 解码方法 JAVA
    leetcode 75. 颜色分类 JAVA
    leetcode 74 搜索二维矩阵 java
    leetcode 84. 柱状图中最大的矩形 JAVA
    last occurance
    first occurance
    classical binary search
    LC.234.Palindrome Linked List
    LC.142. Linked List Cycle II
  • 原文地址:https://www.cnblogs.com/lgh1992314/p/5835202.html
Copyright © 2011-2022 走看看