SQLite 通過.sql檔案匯入匯出資料
阿新 • • 發佈:2022-05-23
(1)建立資料庫檔案
無需手動建立db檔案,直接在命令列執行:
~/test_sqlite$ sqlite3 test.db
進入SQLIte命令列,直接使用標準SQL建表:
sqlite> create table test_table (id integer primary key, name text, description text);
sqlite> .exit
看到對應目錄下,db檔案“test.db”已經被自動建立。再開啟,檢查一下剛剛建立的表:
~/test_sqlite$ sqlite3 test.db SQLite version 3.9.2 2015-11-02 18:31:45 Enter “.help” for usage hints. sqlite> .tables test_table
當然,還可以用schema命令檢視一下更詳細的資訊:
sqlite> .schema test_table
CREATE TABLE test_table (id integer primary key, name text, description text);
向test_table中插入一些資料:
sqlite> insert into test_table (id, name, description) values (0, ‘name0’, ‘des0’); sqlite> insert into test_table (id, name, description) values (1, ‘name1’, ‘des1’); sqlite> insert into test_table (id, name, description) values (2, ‘name2’, ‘des2’); sqlite> sqlite> sqlite> select * from test_table; 0|name0|des0 1|name1|des1 2|name2|des2
(2)利用dump命令匯出資料庫表到檔案
首先,重定向sqlite輸出到檔案。同樣不需要手動建立檔案,直接給出檔名即可:
sqlite> .output test_table.sql
利用dump命令,將資料匯出到檔案。如果dump不帶引數,則匯出整個資料庫:
sqlite> .dump test_table
重定向輸出回標準命令列輸出:
sqlite> .output stdout
檢視test_table.sql檔案內容:
PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE test_table (id integer primary key, name text, description text); INSERT INTO “test_table” VALUES(0,‘name0’,‘des0’); INSERT INTO “test_table” VALUES(1,‘name1’,‘des1’); INSERT INTO “test_table” VALUES(2,‘name2’,‘des2’); COMMIT;
dump命令將資料庫物件匯出成SQL格式:資料庫定義語言(DDL)和資料操作語言(DML)命令,這些資訊可以幫助我們重建資料庫物件和其中的資料,可以說是完整地重現整個表。
從test_table.sql檔案內容可以看到,其中包含了DDL——create table,DML——insert values,並且在一個數據庫事務中完成。
(3)利用read命令匯入資料
利用(2)中匯出的資料庫dump資訊,批量執行其中的SQL:
sqlite> BEGIN TRANSACTION; CREATE TABLE test_table (id integer primary key, name text, description text); INSERT INTO “test_table” VALUES(0,‘name0’,‘des0’); INSERT INTO “test_table” VALUES(1,‘name1’,‘des1’); INSERT INTO “test_table” VALUES(2,‘name2’,‘des2’);sqlite> COMMIT;
查看錶情況:
sqlite> .tables test_table sqlite> select * from test_table; 0|name0|des0 1|name1|des1 2|name2|des2
看到表test_table被克隆恢復。
可以用read命令來直接讀取(2)中dump匯出的檔案test_table.sql,完成資料庫匯入:
sqlite> drop table test_table; sqlite> .tables sqlite> sqlite> .read test_table.sql sqlite> .tables test_table sqlite> select * from test_table; 0|name0|des0 1|name1|des1 2|name2|des2
轉自: https://blog.csdn.net/rrrrrr89098087/article/details/109309016