SQLite資料庫管理

2021-06-28 04:55:15 字數 2994 閱讀 5500

筆記內容來自《the definitive guide to sqlite》

匯出資料

.dump命令可以將資料庫物件匯出成sql格式。不帶任何引數時,.dump將整個資料庫匯出為資料庫定義語言(ddl)和資料操作語言(dml)命令。如下例子,將資料庫匯出到檔案file.sql,輸入如下命令:

sqlite> .output file.sql

sqlite> .dump

sqlite> .output stdout

file.sql裡的內容可能如下:

pragma foreign_keys=off;

begin transaction;

create table test(id integer primary key, value text);

insert into "test" values(1,'eenie');

insert into "test" values(2,'meenie');

insert into "test" values(3,'miny');

insert into "test" values(4,'mo');

create index test_idx on test (value);

create view schema as select * from sqlite_master;

commit;

匯入資料

兩種方法可以匯入資料:

.read命令用來匯入.dump命令建立的檔案。如果使用前面作為備份檔案所匯出的file.sql,需要先移除已經存在的資料庫物件(test表和schema檢視),用下面的方法重新匯入:

sqlite> drop table test;

sqlite> drop view schema;

sqlite> .read file.sql

格式化.headers 設定為on時,查詢結果顯示時帶有欄位名。

.mode命令可以設定結果資料的幾種輸出格式。可選的格式有csv、column、html、insert、line、list、tabs和tcl,每種格式都有不同的用途。預設值是list。

.separator命令指定不同的分隔符。

.show命令可以檢視分隔符的當前值。

sqlite> .output file.csv

sqlite> .separator ,

sqlite> select * from test;

sqlite> .output stdout

因為shell中已經定義了乙個csv模式,所以下面的命令會得到相似的結果:

sqlite> .output file.csv

sqlite> .mode csv

sqlite> select * from test;

sqlite> .output stdout

檔案file.csv內容如下所示:

1,eenie

2,meenie

3,miny

4,mo

匯出帶有分隔符的資料

例如,匯出test表中以字母m開始的值並以逗號分隔。匯出到text.csv檔案。

sqlite> .output text.csv

sqlite> .separator ,

sqlite> select * from test where value like 'm%';

sqlite> .output stdout

將csv資料匯入到與test表結構類似的表(稱為test2),可以執行如下的命令:

sqlite> create table test2(id integer primary key, value text);

sqlite> .import text.csv test2

執行無人值守維護

可以使用命令模式批量處理執行clp命令。有兩種方法在命令列模式呼叫clp。

第一種是提供sql或sqlite shell命令,如.dump和.schema.

sqlite3 test.db .dump > test.sql

第二種是將定向到的乙個檔案作為輸入流。例如從資料庫dump檔案test.sql中建立新的資料庫test2.db,執行以下操作:

sqlite3 test2.db < test.sql

從test.sql檔案建立資料庫的另一種方式是使用init選項,並將test.sql作為引數:

sqlite3 -init test.sql test3.db

備份資料庫

有兩種方式可以完成資料庫的備份。

1.sql轉儲也許是移植性最好的備份。生成轉儲的標準方式是使用clp.dump命令。

sqlite3 test.db .dump > test.sql

2.在shell中,可以將輸出重定向到外部檔案。

sqlite> .output file.sql

sqlite> .dump

sqlite> .output stdout

sqlite> .exit

同樣,容易將sql轉儲作為clp的輸入流實現資料匯入:

sqlite3 test.db < test.sql

備份二進位制檔案,一般而言二進位制檔案沒有備份sql移植性好

sqlite3 test.db vacuum

cp test.db test.backup

資料庫的管理SQLite

sqliteopenhelper 通過繼承這個類,開發者可以很容易的設計和運算元據庫,注意封裝會使android的效能降低,在繼承sqliteopenhelper時候必須實現oncreate onupgrade 函式 public class dbhelper extends sqliteopenh...

IOS 資料庫管理系統 SQLite

嵌入式資料庫 sqlite嵌入式資料庫優點 1.支援事件,不需要配置,不需要安裝,不需要管理員 2.支援發部分sql92 3.完整的資料庫儲存在磁碟上面乙個檔案,同乙個資料庫檔案可以在不同機器上面使用,最大支援資料庫到2t 4.整個系統少於3萬行,少於250kb的記憶體占用 linux系統級的sql...

使用sqlite資料庫來管理資料

python自帶有sqlite資料庫,只需要在firefox上載入sqlite manager就可以有檢視化的資料庫 也就是將以前通過pickle來進行資料的io變為通過資料庫來進行io。資料庫的建立 同時建立了兩張表athlete 儲存姓名和生日 和timing data 儲存時間 兩張表通過id...