輕量級數據庫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>.show
     echo: off
  explain: off
  headers: off
     mode: 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/

功能非常強大,如果上述兩款不能滿足,就試試這個吧,當然也可以自己試着做一個,也沒有那么難。


免責聲明!

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



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