SQLite基礎入門教程
什麼是SQLite
SQLite是一款非常輕量級的關聯式資料庫系統,支援多數SQL92標準。SQLite在使用前不需要安裝設定,不需要程式來啟動、停止或配置,而其他大多數SQL資料庫引擎是作為一個單獨的伺服器程式,被程式使用某種內部程式通訊(典型的是TCP/IP),完成傳送請求到伺服器和接收查詢結果的工作,SQLite不採用這種工作方式。使用SQLite時,訪問資料庫的程式直接從磁碟上的資料庫檔案讀寫,沒有中間的伺服器程式。使用SQLite一般只需要帶上一個dll,就可以使用它的全部功能。
SQLite的主要應用場景有作為手機應用的資料庫以及小型桌面軟體的資料庫。
安裝使用SQLite
sqlite的官方下載地址為http://www.sqlite.org/download.html,上面提供了多種版本的sqlite,我選擇下載名稱為sqlite-shell-win32-x86-3080500.zip 的版本。下載後就直接解壓到磁碟上,可以看到解壓後只有sqlite3.exe這個檔案。
接下來需要將sqlite加入到path環境變數中(加入環境變數是為了更加方便地使用sqlite),右鍵我的電腦-屬性-高階系統設定-環境變數,在系統變數中找到Path,將解壓的資料夾目錄加入到後面(注意是資料夾目錄,例如我本機的目錄 E:\Tools\sqlite)。開啟cmd,輸入sqlite3,如果彈出以下訊息,就表示成功了。
sqlite常用操作
1. 新建一個資料庫檔案
>命令列進入到要建立db檔案的資料夾位置
>使用命令建立資料庫檔案: sqlite3 所要建立的db檔名稱
>使用命令檢視已附加的資料庫檔案: .databases
2. 開啟已建立的資料庫檔案
>命令列進入到要開啟的db檔案的資料夾位置
>使用命令列開啟已建立的db檔案: sqlite3 檔名稱(注意:假如檔名稱不存在,則會新建一個新的db檔案)
3. 檢視幫助命令
>命令列直接輸入sqlite3,進去到sqlite3命令列介面
>輸入.help 檢視常用命令
使用sqlite管理工具
shell指令碼雖然提供了很強大的功能,但是使用起來還是不夠方便,幸運的是,sqlite有很多開源而且優秀的DBMS!
這裡我將使用一款叫做SQLiteSPY的軟體,官網地址為http://www.yunqa.de/delphi/doku.php/products/sqlitespy/index,這個軟體是綠色免安裝版,解壓直接執行就可以了。
可以看到,SQLiteSpy的介面佈局和SQLServer很相近,操作起來很方便,這裡就不在繼續詳細介紹了。(要知道的一點就是單純使用這個軟體也可以建立和使用sqlite資料庫,不需要與上面提到的shell工具關聯)
C#使用System.Data.SQLite.dll訪問資料庫
SQLite提供了用於C#呼叫的dll,下載地址為http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki,注意根據.NET FRAMEWORK版本下載對應的元件。在專案中只要引入System.Data.SQLite.dll這個元件,就可以實現資料庫操作了。由於SQLite.dll實現了ADO.NET的介面,所以熟悉ADO.NET的人上手SQLite.dll也是非常快的。DEMO資料庫表的結構為:
CREATE TABLE hero ( hero_id INT NOT NULL PRIMARY KEY, hero_name NVARCHAR(10) NOT NULL );
比較需要注意到一點是資料庫連線字串,SQLite使用的連線字串比較簡單,只要寫上資料庫檔案的引用路徑就可以了。DEMO是一個控制檯應用程式,增刪查改的例項程式碼如下:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Data.Common; using System.Data.SQLite; namespace ConsoleApp { class Program { static readonly string DB_PATH = "Data Source=E:/database/sqlite/arena.db"; static void Select() { using (SQLiteConnection con = new SQLiteConnection(DB_PATH)) { con.Open(); string sqlStr = @"SELECT * FROM hero"; using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con)) { using (SQLiteDataReader dr = cmd.ExecuteReader()) { while (dr.Read()) { Console.WriteLine(dr["hero_id"].ToString() + dr["hero_name"]); } } } } } static void Insert() { using (SQLiteConnection con = new SQLiteConnection(DB_PATH)) { con.Open(); string sqlStr = @"INSERT INTO hero VALUES ( 1, '薩滿' )"; using(SQLiteCommand cmd = new SQLiteCommand(sqlStr,con)) { cmd.ExecuteNonQuery(); } } } static void Update() { using (SQLiteConnection con = new SQLiteConnection(DB_PATH)) { con.Open(); string sqlStr = @"UPDATE hero SET hero_name = '盜賊' WHERE hero_id = 1"; using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con)) { cmd.ExecuteNonQuery(); } } } static void Delete() { using (SQLiteConnection con = new SQLiteConnection(DB_PATH)) { con.Open(); string sqlStr = @"DELETE FROM hero"; using (SQLiteCommand cmd = new SQLiteCommand(sqlStr, con)) { cmd.ExecuteNonQuery(); } } } static void Main(string[] args) { Insert(); Select(); Update(); Select(); Delete(); } } }
相關文章
- ROS基礎入門——實操教程ROS
- Android入門教程 | Fragment 基礎概念AndroidFragment
- Nestjs入門教程【一】基礎概念JS
- Arduino基礎入門套件教程PDFUI套件
- Redis7.0最新系列教程-基礎入門Redis
- 2020版JavaScript基礎入門教程全集分享JavaScript
- Webpack4系列教程(一) 基礎入門Web
- 零基礎入門Python教程4節與基礎語法Python
- Andorid SQLite資料庫開發基礎教程(2)SQLite資料庫
- Andorid SQLite資料庫開發基礎教程(1)SQLite資料庫
- Andorid SQLite資料庫開發基礎教程(3)SQLite資料庫
- 給零基礎小白的Python入門教程Python
- [適合小白的Linu基礎入門教程一
- Spring Boot 2.x基礎教程:快速入門Spring Boot
- C#程式設計基礎入門教程pdfC#程式設計
- Linux pwn入門教程(1)——棧溢位基礎Linux
- 2020年Python基礎教程,Python快速入門教程(非常詳細)Python
- JDBC基礎入門教程,輕鬆掌握jdbc基礎+核心技術,超全面!JDBC
- 【FastAPI】入門基礎ASTAPI
- Linux基礎入門Linux
- Ansible 基礎入門
- sqlServer 基礎入門SQLServer
- shell入門基礎
- go基礎入門Go
- SQL基礎入門SQL
- SQL入門基礎SQL
- Kubernetes 入門基礎
- Kafka基礎入門Kafka
- mongodb基礎入門MongoDB
- MySQL 基礎入門MySql
- RabbitMQ基礎入門MQ
- JavaScript入門基礎JavaScript
- Nginx 基礎入門Nginx
- Zookeeper基礎入門
- SpringCloud基礎入門SpringGCCloud
- ZooKeeper 基礎入門
- Bootstrap基礎入門boot
- Html基礎入門HTML
- Vim 入門:基礎