轻量级数据库Sqlite的使用
SqLite是什么?
SQLite是一個進程內的庫,實現了自給自足的、無服務器的、零配置的、事務性的 SQL 數據庫引擎。它是一個零配置的數據庫,這意味著與其他數據庫一樣,您不需要在系統中配置。
就像其他數據庫,SQLite 引擎不是一個獨立的進程,可以按應用程序需求進行靜態或動態連接。SQLite 直接訪問其存儲文件。
為什么要用 SQLite?
-
不需要一個單獨的服務器進程或操作的系統(無服務器的)。
-
SQLite 不需要配置,這意味著不需要安裝或管理。
-
一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件。
-
SQLite 是非常小的,是輕量級的,完全配置時小于 400KiB,省略可選功能配置時小于250KiB。
-
SQLite 是自給自足的,這意味著不需要任何外部的依賴。
-
SQLite 事務是完全兼容 ACID 的,允許從多個進程或線程安全訪問。
-
SQLite 支持 SQL92(SQL2)標準的大多數查詢語言的功能。
-
SQLite 使用 ANSI-C 編寫的,并提供了簡單和易于使用的 API。
-
SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行。
在Windows上安裝SQLite
-
請訪問?SQLite 下載頁面,從 Windows 區下載預編譯的二進制文件。
-
您需要下載?sqlite-tools-win32-*.zip?和?sqlite-dll-win32-*.zip?壓縮文件。
-
創建文件夾 F:\sqlite,并在此文件夾下解壓上面兩個壓縮文件,將得到 以上sqlite3.def、sqlite3.dll 和 sqlite3.exe 文件
-
-
添加 C:\sqlite 到 PATH 環境變量,最后在命令提示符下,使用?sqlite3?命令,將顯示如下結果
-
?如果出現以上結果,環境也就沒有什么問題了,當然我這里的環境變量是F盤必須要切到這里。
如需獲取可用的點命令的清單,可以在任何時候輸入 ".help"。例如:
sqlite>.help讓我們嘗試使用?.show?命令,來查看 SQLite 命令提示符的默認設置。
sqlite>.showecho: offexplain: offheaders: offmode: column nullvalue: ""output: stdout separator: "|"width: sqlite>特別注意 鍵入這些命令的時候不要有空格,否則無法運行
?在Sqlite中有一種概念叫做動態數據,即Sqlite使用者專業術語叫做親和數據,也就是說,你傳入的數據和字段的格式不匹配會自動進行轉換,這里就不進行列舉了。可以在SQLite官方查看,基本上和別的數據庫差距不大。
?創建數據庫
?命令:DbName.db;直接即可,有可能你會遇到的問題如下:
創建數據庫時報錯:syntax error,這個錯是因為你創建目錄里已經有數據庫了,那你怎么能在數據庫里再創建數據庫呢,你可以直接在你的sqlite環境變量中目錄 創建一個文件夾 進去之后 再直接該命令就沒事了。
如果你想查看該文件夾中有那些數據庫你可以通過.databases命令來查看。
您可以使用 SQLite?.quit?命令退出 sqlite 提示符
?創建表
SQLite 的?CREATE TABLE?語句用于在任何給定的數據庫創建一個新表。創建基本表,涉及到命名表、定義列及每一列的數據類型。
刪除表
?語法如下:
DROP TABLE database_name.table_name;還有一些增刪改查的操作這里就不說了,簡單的創建庫和表就說完了 我們在程序中演示進行CRUD操作。
?在.NET Core中使用Sqlite數據庫
?新建一個.net Core控制臺項目
二、在“程序包管理器控制臺”下輸入:
install-package Microsoft.EntityFrameworkCore.Sqlite.Core
install-package SQLitePCLRaw.bundle_green
三.編碼
using System; using Microsoft.Data.Sqlite; using System.Data;namespace ConsoApp {class Program{static void Main(string[] args){string connString = "Data Source=C:\\Users\\MACHENIKE\\Desktop\\Db\\demo.db";string insertsql = @"insert into company values('冀中能源',1);";string selectsql = "select * from company";try{using (SqliteConnection conn = new SqliteConnection(connString)){conn.Open();SqliteCommand cmd = new SqliteCommand(insertsql, conn);cmd.ExecuteNonQuery();cmd.CommandText = selectsql;SqliteDataReader dr = cmd.ExecuteReader();while (dr.Read()){Console.WriteLine("UserId:{0}\tUserName:{1}", dr[0], dr[1]);}}}catch(Exception ex){Console.WriteLine(ex.Message);}}} }
Dump命令
?現在我們的數據庫有一定的數據了,我們想要進行備份,可以使用這個命令。
?
打開之后內容如下,就是我們剛才所操作的。
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE company(
name text not null
,id int primary key?
);
INSERT INTO company VALUES('1','冀中能源');
INSERT INTO company VALUES('冀中能源',1);
COMMIT;
那么當你沒有數據庫了 只有了sql文件? 你可以再進行回檔。
$sqlite3 testDB.db < testDB.sql免費的Sqlite可視化工具
市面上有很多收費的sqlite的可視化工具,還有免費的,推薦這個??SQLiteExpert 個人免費 要安裝? 地址:http://www.sqliteexpert.com/
功能非常強大,如果上述兩款不能滿足,就試試這個吧,當然也可以自己試著做一個,也沒有那么難。
轉載于:https://www.cnblogs.com/ZaraNet/p/10188893.html
總結
以上是生活随笔為你收集整理的轻量级数据库Sqlite的使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 监控线程的3种方法
- 下一篇: 一个数据库存储架构的独白