sqlite的資料匯入 匯出

來源:互聯網
上載者:User

資料匯入的來源可以是其他應用程式的輸出,也可以是指定的文字檔,這裡採用指定的文字檔。

   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
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.