開發SQLite數據庫常用的管理工具


轉自:http://www.cnblogs.com/meiyou/archive/2009/09/12/1565497.html

雖然說一直在用Sql Server2000和2005開發項目,但是某些時候想開發一些小的應用程序,用這種數據庫就不合適了,想想可以用ACCESS做數據庫,

但是一直覺得ACCESS是過去的東西,和C#不是很搭配。所以就在網上搜索了一下,發現有一個SQLite是支持.NET開發的綠色數據庫,直接一個System.Data.SQLite.DLL就可以訪問SQLite數據庫,進行各種操作,還支持事務。

找到了合適的數據庫,但是去官網下了安裝包一裝就一個DLL文件,並沒有附帶一個管理工具,那怎么建庫建表啊?看來只能在網上找第三方開發的工具了。

網上一搜索,還是有不少的管理工具,覺得還是按照我的安裝順序依次介紹吧。

 

最先找到的是SQLite Administrator,最新版本是0.8.3.2的,不過好像也是很久前更新的。看了作者的介紹,數據庫基本功能都有了,軟件看着也滿漂亮。

優點:這個軟件上手很方便,因為有中文語言。可以隨時編寫SQL語句和查看表數據,修改表數據

缺點:好像對中文支持不是很好,因為我通過程序輸入中文在它里面顯示是亂碼,但是在它里面看的是中文在顯示到開發程序上就是亂碼。

自己的第一個SQLite數據庫是它建的,表都建好了,到開發的時候發現對中文支持不好,可惜該軟件沒有地方改語言。我的軟件是開發完了,可是調試都是自己寫的

界面來看結果,不能通過管理工具改東西效率還是有點不高,沒有辦法最后還是狠心又在網上搜索

 

找到的第二個是SharpPlus SQlite Developer,是一款商業開發的。

優點:也支持中文界面,並且字符編碼可以支持UTF-8等,所以不存在亂碼問題了。因為是商業的,功能上要多一些,操作上也更方便些。

缺點:感覺界面稍微土了點

 

第三個是SQLite Expert Personal 1.7.13

這個開發商比較好,提供了一個免費的版本,既然商業的收錢,那么先用用免費的看看。

優點:支持UTF-8編碼,不會中文亂碼,界面跟SQLite Administrator一樣漂亮,操作很方便。

缺點:英文界面

因為SQLite不需要服務端,又不支持存儲過程,自定義函數等功能,所以它的管理工具的功能也沒有那么復雜,但是SQLite並沒有其他數據庫那么好對付啊!

1。從www.sqlite.org下載SQLite 3.3.4的版本
   為了方便,我把它解壓了,就一個SQLite3.exe,放入Windows目錄下。
   Cmd 進入命令行
   1)
   創建數據庫文件:
   >SQLite3 d:\test.db 回車
   就生成了一個test.db在d盤。
   這樣同時也SQLite3掛上了這個test.db
   2) 
   用.help可以看看有什么命令
   >.help 回車即可
   3)可以在這里直接輸入SQL語句創建表格 用;結束,然后回車就可以看到了
   4)看看有創建了多少表
   >.tables 
   5)看表結構
   >.schema 表名
   6)看看目前掛的數據庫
   >.database
   7)如果要把查詢輸出到文件
   >.output 文件名
   > 查詢語句;
   查詢結果就輸出到了文件c:\query.txt

   把查詢結果用屏幕輸出
   >.output stdout

   8)把表結構輸出,同時索引也會輸出
     .dump 表名
   9)退出
   >.exit 或者.quit

2。從http://sqlite.phxsoftware.com/下載Ado.net驅動。
   下載了安裝,在安裝目錄中存在System.Data.SQLite.dll
    我們只需要拷貝這個文件到引用目錄,並添加引用即可對SQLite數據庫操作了
   所有的Ado.net對象都是以SQLite開頭的,比如SQLiteConnection
   連接串只需要如下方式
   Data Source=d:\test.db 或者DataSource=test.db--應用在和應用程序或者.net能夠自動找到的目錄
   剩下的就很簡單了~~

3。SQL語法
   由於以前用SQLServer或者ISeries,所以DDL的語法很汗顏
   1)創建一個單個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)創建一個多個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)創建索引
   CREATE  INDEX [IX_Account] ON  [Account]([IsCheck], [UserName]);
   
   還可以視圖等等。
4.還有很有用的SQL
  Select * from Sqlite_master 
  Select datetime('now')
  Select date('now')
  Select time('now')
  以及很多函數,具體可以參考SQLite的wiki.

oh,還有就是看到有人說,好像成批插入的時候,啟動事務,比不啟動事務快n倍
還有就是盡量使用參數化的SQL,估計和商用DB一樣能夠自動Prepare.

===========

sqlite可以在shell/dos command底下直接執行命令:

sqlite3 film.db "select * from film;"

輸出 HTML 表格:

sqlite3 -html film.db "select * from film;"

將數據庫「倒出來」:

sqlite3 film.db ".dump" > output.sql

利用輸出的資料,建立一個一模一樣的數據庫(加上以上指令,就是標准的SQL數據庫備份了):

sqlite3 film.db < output.sql

在大量插入資料時,你可能會需要先打這個指令:

begin;

插入完資料后要記得打這個指令,資料才會寫進數據庫中:

commit;

;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM