1. 介紹
SQLite 是一個(gè)開源的嵌入式關(guān)系數(shù)據(jù)庫机错,實(shí)現(xiàn)自包容爬范、零配置、支持事務(wù)的SQL數(shù)據(jù)庫引擎弱匪。 其特點(diǎn)是高度便攜青瀑、使用方便、結(jié)構(gòu)緊湊萧诫、高效斥难、可靠。 與其他數(shù)據(jù)庫管理系統(tǒng)不同帘饶,SQLite 的安裝和運(yùn)行非常簡(jiǎn)單哑诊,在大多數(shù)情況下 - 只要確保SQLite的二進(jìn)制文件存在即可開始創(chuàng)建华望、連接和使用數(shù)據(jù)庫津辩。如果您正在尋找一個(gè)嵌入式數(shù)據(jù)庫項(xiàng)目或解決方案,SQLite是絕對(duì)值得考慮僚害。
2. 安裝
SQLite on Windows
1)進(jìn)入 SQL 下載頁面:http://www.sqlite.org/download.html
2)下載 Windows 下的預(yù)編譯二進(jìn)制文件包:
sqlite-shell-win32-x86-.zip
sqlite-dll-win32-x86-.zip
注意: 是 sqlite 的編譯版本號(hào)
將 zip 文件解壓到你的磁盤缴饭,并將解壓后的目錄添加到系統(tǒng)的 PATH 變量中暑劝,以方便在命令行中執(zhí)行 sqlite 命令。
可選: 如果你計(jì)劃發(fā)布基于 sqlite 數(shù)據(jù)庫的應(yīng)用程序颗搂,你還需要下載源碼以便編譯和利用其 API
sqlite-amalgamation-.zip
SQLite on Linux
在 多個(gè) Linux 發(fā)行版提供了方便的命令來獲取 SQLite:
/*ForDebianorUbuntu?/*
$?sudo?apt-get?install?sqlite3?sqlite3-dev
/*ForRedHat,?CentOS,orFedora/*
$?yum?install?SQLite3?sqlite3-dev
SQLite on Mac OS X
如果你正在使用 Mac OS 雪豹或者更新版本的系統(tǒng)担猛,那么系統(tǒng)上已經(jīng)裝有 SQLite 了。
3. 創(chuàng)建首個(gè) SQLite 數(shù)據(jù)庫
現(xiàn)在你已經(jīng)安裝了 SQLite 數(shù)據(jù)庫,接下來我們創(chuàng)建首個(gè)數(shù)據(jù)庫毁习。在命令行窗口中輸入如下命令來創(chuàng)建一個(gè)名為 test.db 的數(shù)據(jù)庫智嚷。
sqlite3?test.db
創(chuàng)建表:
sqlite>createtablemytable(idintegerprimarykey,?value?text);
2?columns?were?created.
該表包含一個(gè)名為 id 的主鍵字段和一個(gè)名為 value 的文本字段。
注意: 最少必須為新建的數(shù)據(jù)庫創(chuàng)建一個(gè)表或者視圖纺且,這么才能將數(shù)據(jù)庫保存到磁盤中盏道,否則數(shù)據(jù)庫不會(huì)被創(chuàng)建。
接下來往表里中寫入一些數(shù)據(jù):
sqlite>insertintomytable(id,?value)values(1,'Micheal');
sqlite>insertintomytable(id,?value)values(2,'Jenny');
sqlite>insertintomytable(value)values('Francis');
sqlite>insertintomytable(value)values('Kerk');
查詢數(shù)據(jù):
sqlite>select*fromtest;
1|Micheal
2|Jenny
3|Francis
4|Kerk
設(shè)置格式化查詢結(jié)果:
sqlite>?.modecolumn;
sqlite>?.headeron;
sqlite>select*fromtest;
id??????????value
-----------?-------------
1???????????Micheal
2???????????Jenny
3???????????Francis
4???????????Kerk
.mode column 將設(shè)置為列顯示模式载碌,.header 將顯示列名猜嘱。
修改表結(jié)構(gòu),增加列:
sqlite>altertablemytableaddcolumnemail?textnotnull''collatenocase;;
創(chuàng)建視圖:
sqlite>createviewnameviewasselect*frommytable;
創(chuàng)建索引:
sqlite>createindextest_idxonmytable(value);
4. 一些有用的 SQLite 命令
顯示表結(jié)構(gòu):
sqlite>?.schema[table]
獲取所有表和視圖:
sqlite?>?.tables
獲取指定表的索引列表:
sqlite?>?.indices?[table]
導(dǎo)出數(shù)據(jù)庫到 SQL 文件:
sqlite?>?.output[filename?]
sqlite?>?.dump
sqlite?>?.outputstdout
從 SQL 文件導(dǎo)入數(shù)據(jù)庫:
sqlite?>?.read[filename?]
格式化輸出數(shù)據(jù)到 CSV 格式:
sqlite?>.output[filename.csv?]
sqlite?>.separator?,
sqlite?>select*fromtest;
sqlite?>.outputstdout
從 CSV 文件導(dǎo)入數(shù)據(jù)到表中:
sqlite?>createtablenewtable?(?idintegerprimarykey,?value?text?);
sqlite?>.import?[filename.csv?]?newtable
備份數(shù)據(jù)庫:
/*?usage:?sqlite3?[database]?.dump?>?[filename]?*/
sqlite3?mytable.db?.dump?>?backup.sql
恢復(fù)數(shù)據(jù)庫:
/*?usage:?sqlite3?[database]?<?[filename?]?*/
sqlite3?mytable.db?<?backup.sq