2010年10月17日 星期日

2010年10月11日 星期一

Android程式設計 (十八) 使用SQLite (3)

SQLite Database Browser
是一套具備圖形化介面的SQLite資料庫管理自由軟體工具,提供SQLite資料庫管理功能,網址:http://sqlitebrowser.sourceforge.net/
下圖為SQLite Database Browser工具列按鈕,包括資料檔作業、資料表作業及檢視SQL Log。
建立資料表
開啟資料檔後,點擊工具列中的「建立資料表」按鈕。在「Table name:」欄設定資料表名稱。
建立資料欄
在Create Table對話視窗中的「Define fileds:」作業區中點選「Add」按鈕,在「Field name:」欄設定欄位名稱,並由「Filed type:」選擇資料型別,共有四種資料型別可供選擇。
修改資料表
點擊工具列中的「修改資料表」按鈕,之後選擇要修改的資料表名稱。
檢視/修改記錄
切換到Browse Data頁籤,從Table下拉式清單中選擇資料表名稱。雙擊資料即可修改資料內容;點擊「New Record」按鈕新增記錄,點擊「Delete Record」按鈕刪除記錄。
測試SQL指令
切換到Execute SQL頁籤,從Table下拉式清單中選擇資料表名稱。

2010年10月6日 星期三

Android程式設計 (十七) 使用SQLite (2)

建立索引
當資料表儲存的記錄筆數變大時,會影響資料庫作業效能,我們可建立索引來加快速度。例如:
create index idxname on address (name);
意思是針對address資料表的name資料欄,建立一個名叫idxname的索引。一旦建立了索引,sqlite3在針對該欄位查詢作業時,就會自動使用該索引。
查詢資料庫的schema
SQLite資料庫schema是特別存於一個名為sqlite_master的系統資料表,我們可利用"SELECT"指令來查詢,例如:
sqlite> select * from sqlite_master;
table|address|address|2|CREATE TABLE address(name, email, tel)
index|idxname|address|3|CREATE INDEX idxname on address (name)
sqlite>
列出資料庫中的資料表,利用 ".tables":
sqlite> .tables
address
sqlite>
.schema指令顯示原先建立資料表與索引的指令,可以用於重建目前的資料庫用:
sqlite> .schema
CREATE TABLE address(name, email, tel);
CREATE INDEX idxname on address (name);
sqlite>
設定輸出格式
SQLite支援提供8種不同的查詢的結果格式輸出 (csv、column、html、insert、line、tabs、tcl),說明如下:
csv       逐列顯示記錄內容,並以逗號區隔資料欄
column 以多欄方式逐列顯示記錄內容,欄位寬度由.width指令設定
html     HTML表格標籤碼
insert   SQL insert指令碼
line      每列顯示一個欄位資料,格式:欄位名稱=欄位值
list       逐列顯示記錄內容,以'|'符號區隔資料欄
tabs     逐列顯示記錄內容,以tab定位鍵區隔資料欄
tcl       逐列顯示記錄內容,欄位資料以字串方式呈現並以空白鍵區隔
預設是以list格式顯示,我們可以利用".mode"指令來改變輸出格式。
sqlite> .mode csv
我們也可以利用".separator"指令來更換分隔符號,例如:
sqlite> .separator " / "
shell命令列操作SQLite
我們也可在shell命令列直接執行SQLite命令,例如:
D:\SQLite> sqlite3 demo.db "insert into address values('elian', 'elian@email.net', '4444');"
D:\SQLite> sqlite3 demo.db "select * from address;"
資料庫備份
.dump指令可以為資料庫建立標準的SQL資料庫備份,例如:
D:\SQLite>sqlite3 demo.db ".dump" > demo.sql

2010年10月5日 星期二

Android程式設計 (十六) 使用SQLite (1)

SQLite是一種專為嵌入式系統設計的關聯式資料庫,支援標準的SQL-92作業,具備簡潔、佔用系統資源小等優點。此外SQLite的資料庫是以單一檔案的形式儲存;使用時,只要在編譯程式的時候將程式庫一起編譯就可以了,不需要另外安裝資料庫伺服器軟體,所以要複製資料庫或移植到其它電腦都相當容易。
SQLite官網可下載SQLite程式,包括Mac、Linux及Windows版本,網址:http://www.sqlite.org/download.html
SQLite基本操作
所有的SQL指令都是以分號(;)結尾的。如果遇到兩個減號(--)則代表註解,SQLite會略過去。
建立資料庫檔案
假設我們要建立一個名為demo.db的資料庫,只要在命令列鍵入sqlite3 demo.db。如果目錄下沒有db_name這個資料庫,即會建立db_name資料庫,並進入SQLite作業模式;此時,命令列提示會變成sqlite>
D:\SQLite> sqlite3 demo.db
建立資料表
sqlite> create table address(name, email, tel);
上述指令建立了一個名叫address的資料表,裡面有name、email及tel三個資料欄。
加入一筆資料
sqlite> insert into address values ('tina', 'tina@email.net', '1111');
sqlite> insert into address values ('tony', 'tony@email.net', '2222');
sqlite> insert into address values ('mike', 'mike@email.net', '4444');
如果該欄位沒有資料,我們可以填NULL。
查詢資料
sqlite> select * from address where name = 'tina';
sqlite> select * from address limit 2;
sqlite> select count(*) from address;
更改資料
sqlite> update address set tel = '3333' where name = 'mike';