sqlite數據轉移到mysqlserver

load data local infile “c:/data.txt”
into table person(name,age,city,salary);



數據導入的來源可以是其他應用程序的輸出,也可以是指定的文本文件,這裏採用指定的文本文件。

   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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章