淺析SQLite數(shù)據(jù)庫(kù)開(kāi)發(fā)常用管理工具
SQLite數(shù)據(jù)庫(kù)開(kāi)發(fā)主要面向手機(jī)以及其他移動(dòng)設(shè)備。一般對(duì)于SQLite數(shù)據(jù)庫(kù)開(kāi)發(fā),很多開(kāi)發(fā)人員并不陌生。這里將介紹幾個(gè)SQLite數(shù)據(jù)庫(kù)開(kāi)發(fā)的的實(shí)用工具,希望對(duì)大家有所幫助。
雖然說(shuō)一直在用Sql Server2000和2005開(kāi)發(fā)項(xiàng)目,但是某些時(shí)候想開(kāi)發(fā)一些小的應(yīng)用程序,用這種數(shù)據(jù)庫(kù)就不合適了,想想可以用ACCESS做數(shù)據(jù)庫(kù),
但是一直覺(jué)得ACCESS是過(guò)去的東西,和C#不是很搭配。所以就在網(wǎng)上搜索了一下,發(fā)現(xiàn)有一個(gè)SQLite是支持.NET開(kāi)發(fā)的綠色數(shù)據(jù)庫(kù),直接一個(gè)System.Data.SQLite.DLL就可以訪問(wèn)SQLite數(shù)據(jù)庫(kù),進(jìn)行各種操作,還支持事務(wù)。
找到了合適的數(shù)據(jù)庫(kù),但是去官網(wǎng)下了安裝包一裝就一個(gè)DLL文件,并沒(méi)有附帶一個(gè)管理工具,那怎么建庫(kù)建表???看來(lái)只能在網(wǎng)上找第三方開(kāi)發(fā)的工具了。
網(wǎng)上一搜索,還是有不少的管理工具,覺(jué)得還是按照我的安裝順序依次介紹吧。
最先找到的是SQLite Administrator,最新版本是0.8.3.2的,不過(guò)好像也是很久前更新的。看了作者的介紹,數(shù)據(jù)庫(kù)基本功能都有了,軟件看著也滿(mǎn)漂亮。
優(yōu)點(diǎn):這個(gè)軟件上手很方便,因?yàn)橛兄形恼Z(yǔ)言。可以隨時(shí)編寫(xiě)SQL語(yǔ)句和查看表數(shù)據(jù),修改表數(shù)據(jù)
缺點(diǎn):好像對(duì)中文支持不是很好,因?yàn)槲彝ㄟ^(guò)程序輸入中文在它里面顯示是亂碼,但是在它里面看的是中文在顯示到開(kāi)發(fā)程序上就是亂碼。
自己的第一個(gè)SQLite數(shù)據(jù)庫(kù)是它建的,表都建好了,到開(kāi)發(fā)的時(shí)候發(fā)現(xiàn)對(duì)中文支持不好,可惜該軟件沒(méi)有地方改語(yǔ)言。我的軟件是開(kāi)發(fā)完了,可是調(diào)試都是自己寫(xiě)的
界面來(lái)看結(jié)果,不能通過(guò)管理工具改東西效率還是有點(diǎn)不高,沒(méi)有辦法最后還是狠心又在網(wǎng)上搜索
找到的第二個(gè)是SharpPlus SQlite Developer,是一款商業(yè)開(kāi)發(fā)的。
優(yōu)點(diǎn):也支持中文界面,并且字符編碼可以支持UTF-8等,所以不存在亂碼問(wèn)題了。因?yàn)槭巧虡I(yè)的,功能上要多一些,操作上也更方便些。
缺點(diǎn):感覺(jué)界面稍微土了點(diǎn)
第三個(gè)是SQLite Expert Personal 1.7.13
這個(gè)開(kāi)發(fā)商比較好,提供了一個(gè)免費(fèi)的版本,既然商業(yè)的收錢(qián),那么先用用免費(fèi)的看看。
優(yōu)點(diǎn):支持UTF-8編碼,不會(huì)中文亂碼,界面跟SQLite Administrator一樣漂亮,操作很方便。
缺點(diǎn):英文界面。
因?yàn)镾QLite不需要服務(wù)端,又不支持存儲(chǔ)過(guò)程,自定義函數(shù)等功能,所以它的管理工具的功能也沒(méi)有那么復(fù)雜,但是SQLite并沒(méi)有其他數(shù)據(jù)庫(kù)那么好對(duì)付啊!
1。從www.sqlite.org下載SQLite 3.3.4的版本
為了方便,我把它解壓了,就一個(gè)SQLite3.exe,放入Windows目錄下。
Cmd 進(jìn)入命令行
- 1)創(chuàng)建數(shù)據(jù)庫(kù)文件:
- >SQLite3 d:\test.db 回車(chē)
- 就生成了一個(gè)test.db在d盤(pán)。
- 這樣同時(shí)也SQLite3掛上了這個(gè)test.db
- 2)
- 用.help可以看看有什么命令
- >.help 回車(chē)即可
- 3)可以在這里直接輸入SQL語(yǔ)句創(chuàng)建表格 用;結(jié)束,然后回車(chē)就可以看到了
- 4)看看有創(chuàng)建了多少表
- >.tables
- 5)看表結(jié)構(gòu)
- >.schema 表名
- 6)看看目前掛的數(shù)據(jù)庫(kù)
- >.database
- 7)如果要把查詢(xún)輸出到文件
- >.output 文件名
- > 查詢(xún)語(yǔ)句;
- 查詢(xún)結(jié)果就輸出到了文件c:\query.txt
- 把查詢(xún)結(jié)果用屏幕輸出
- >.output stdout
- 8)把表結(jié)構(gòu)輸出,同時(shí)索引也會(huì)輸出
- .dump 表名
- 9)退出
- >.exit 或者.quit
2。從http://sqlite.phxsoftware.com/下載Ado.net驅(qū)動(dòng)。
下載了安裝,在安裝目錄中存在System.Data.SQLite.dll我們只需要拷貝這個(gè)文件到引用目錄,并添加引用即可對(duì)SQLite數(shù)據(jù)庫(kù)操作了所有的Ado.net對(duì)象都是以SQLite開(kāi)頭的,比如SQLiteConnection連接串只需要如下方式Data Source=d:\test.db 或者DataSource=test.db--應(yīng)用在和應(yīng)用程序或者.net能夠自動(dòng)找到的目錄
剩下的就很簡(jiǎn)單了~~
3。SQL語(yǔ)法
由于以前用SQLServer或者ISeries,所以DDL的語(yǔ)法很汗顏
1)創(chuàng)建一個(gè)單個(gè)Primary Key的table
- CREATE TABLE [Admin] (
- [UserName] [nvarchar] (20) PRIMARY KEY NOT NULL ,
- [Password] [nvarchar] (50) NOT NULL ,
- [Rank] [smallint] NOT NULL ,
- [MailServer] [nvarchar] (50) NOT NULL ,
- [MailUser] [nvarchar] (50) NOT NULL ,
- [MailPassword] [nvarchar] (50) NOT NULL ,
- [Mail] [nvarchar] (50) NOT NULL
- ) ;
2)創(chuàng)建一個(gè)多個(gè)Primary Key的table
- CREATE TABLE [CodeDetail] (
- [CdType] [nvarchar] (10) NOT NULL ,
- [CdCode] [nvarchar] (20) NOT NULL ,
- [CdString1] [ntext] NOT NULL ,
- [CdString2] [ntext] NOT NULL ,
- [CdString3] [ntext] NOT NULL,
- PRIMARY KEY (CdType,CdCode)
- ) ;
3)創(chuàng)建索引
- CREATE INDEX [IX_Account] ON [Account]([IsCheck], [UserName]);
還可以視圖等等。
4.還有很有用的SQL
- Select * from Sqlite_master
- Select datetime('now')
- Select date('now')
- Select time('now')
以及很多函數(shù),具體可以參考SQLite的wiki.
oh,還有就是看到有人說(shuō),好像成批插入的時(shí)候,啟動(dòng)事務(wù),比不啟動(dòng)事務(wù)快n倍
還有就是盡量使用參數(shù)化的SQL,估計(jì)和商用DB一樣能夠自動(dòng)Prepare.
===========
sqlite可以在shell/dos command底下直接執(zhí)行命令:
sqlite3 film.db "select * from film;"
輸出 HTML 表格:
sqlite3 -html film.db "select * from film;"
將數(shù)據(jù)庫(kù)「倒出來(lái)」:
sqlite3 film.db ".dump" > output.sql
利用輸出的資料,建立一個(gè)一模一樣的數(shù)據(jù)庫(kù)(加上以上指令,就是標(biāo)準(zhǔn)的SQL數(shù)據(jù)庫(kù)備份了):
sqlite3 film.db < output.sql
在大量插入資料時(shí),你可能會(huì)需要先打這個(gè)指令:
begin;
插入完資料后要記得打這個(gè)指令,資料才會(huì)寫(xiě)進(jìn)數(shù)據(jù)庫(kù)中:
commit;
原文標(biāo)題:開(kāi)發(fā)SQLite數(shù)據(jù)庫(kù)常用的管理工具
鏈接:http://www.cnblogs.com/meiyou/
【編輯推薦】