开发SQLite数据库常用的管理工具
?雖然說一直在用Sql Server2000和2005開發項目,但是某些時候想開發一些小的應用程序,用這種數據庫就不合適了,想想可以用ACCESS做數據庫,
但是一直覺得ACCESS是過去的東西,和C#不是很搭配。所以就在網上搜索了一下,發現有一個SQLite是支持.NET開發的綠色數據庫,直接一個System.Data.SQLite.DLL就可以訪問SQLite數據庫,進行各種操作,還支持事務。
找到了合適的數據庫,但是去官網下了安裝包一裝就一個DLL文件,并沒有附帶一個管理工具,那怎么建庫建表啊?看來只能在網上找第三方開發的工具了。
網上一搜索,還是有不少的管理工具,覺得還是按照我的安裝順序依次介紹吧。
?
最先找到的是SQLite Administrator,最新版本是0.8.3.2的,不過好像也是很久前更新的??戳俗髡叩慕榻B,數據庫基本功能都有了,軟件看著也滿漂亮。
優點:這個軟件上手很方便,因為有中文語言。可以隨時編寫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;
?
本文來源:http://www.cnblogs.com/meiyou/archive/2009/09/12/1565497.html
轉載于:https://blog.51cto.com/2845385/1092098
總結
以上是生活随笔為你收集整理的开发SQLite数据库常用的管理工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 郝蕾怒骂河南人---江湖再起风云,网络哪
- 下一篇: 长的帅不是你的错,长的没特点就不应该了