輕量級(jí)數(shù)據(jù)庫(kù)SQL?Server?Express?LocalDb介紹
一、介紹
1、SqlLocalDb
全稱:SQL Server Express LocalDb。
簡(jiǎn)化SQL Server的本地?cái)?shù)據(jù)庫(kù)。SqlLocalDb就是一個(gè)輕量級(jí)的基于本地的T-SQL數(shù)據(jù)庫(kù)。
SQL Server既可以作為遠(yuǎn)程,也可以做本地。而SqlLocalDb只能作為本地使用,不支持聯(lián)網(wǎng),只能本機(jī)連接。
2、輕量級(jí)數(shù)據(jù)庫(kù)對(duì)比(LocalDB vs. SQL Express vs. Compact)
LocalDB并不能完全替代SQL Server Express,它只是對(duì)開(kāi)發(fā)人員提供了另外一種選擇,并保證與SQL Server Express一致的兼容性。
LocalDB與SQL Server Compact之間有很大區(qū)別。
最新的Microsoft SQL Server Compact 4.0 SP1 是一種免費(fèi)的嵌入式數(shù)據(jù)庫(kù),軟件開(kāi)發(fā)人員可以使用它來(lái)構(gòu)建 ASP.NET 網(wǎng)站和 Windows 桌面應(yīng)用程序。
SQL Server Compact 4.0 的優(yōu)點(diǎn)是:占用的空間小,支持在應(yīng)用程序文件夾中專門部署其二進(jìn)制文件,輕松地使用 Visual Studio 和 WebMatrix 進(jìn)行應(yīng)用程序開(kāi)發(fā),以及無(wú)縫地將架構(gòu)和數(shù)據(jù)遷移到 SQL Server。
單獨(dú)下載地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=30709
CompactView(sdf文件查看器):
https://sourceforge.net/projects/compactview/files/
SQL Server Compact的特點(diǎn):
- 運(yùn)行模式:SQL Server Compact是一個(gè)進(jìn)程內(nèi)(in-proc)DLL,LocalDB則作為獨(dú)立進(jìn)程運(yùn)行。
- 磁盤占用:SQL Server Compact的體積僅有4MB,LocalDB安裝之后則有250MB。
- 功能特性:SQL Server Compact僅提供RDBMS的核心功能,而LocalDB則提供更豐富的功能,比如存儲(chǔ)過(guò)程、幾何和地理數(shù)據(jù)類型。
二、安裝這個(gè)SqlLocalDb
Visual Studio 安裝時(shí)會(huì)自動(dòng)裝上MSSQLLocalDB 。
1、通過(guò)VS Installer安裝:
Visual Studio 2019 內(nèi)置的SQL Server 2016 Express LocalDB。
如果選了.NET負(fù)載,直接在里面勾上就行;如果沒(méi)有,選到單個(gè)組件,勾上localdb,會(huì)自動(dòng)勾上下一項(xiàng)那個(gè)依賴。

2、通過(guò)SQL Server Express安裝
最新版單獨(dú)下載SQL Server Express:
(SQL Server Express入口:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads)
注:SQL Server 2016 Express LocalDB微軟已經(jīng)在SQL Server Express不再提供,目前為最新的為2019版本。
下載之后,打開(kāi)該引用,并點(diǎn)擊“下載介質(zhì)”:

在彈出的頁(yè)面中,選擇LocalDB(第三個(gè)),點(diǎn)擊下一步下載SqlLocalDB.msi

下載后安裝

安裝后:
2012的版本為11,2016的版本為13,2019的版本為15。

三、連接SqlLocalDB
使用 Windows 身份驗(yàn)證,服務(wù)器類型:數(shù)據(jù)庫(kù)引挈。
LocalDB的實(shí)例歸類設(shè)置為SQL_Latin1_General_CP1_CI_AS,不能更改,導(dǎo)致的最直接的結(jié)果就是直接新建數(shù)據(jù)庫(kù)會(huì)存不了中文。
解決辦法是對(duì)于每一個(gè)數(shù)據(jù)庫(kù)手動(dòng)指定排序規(guī)則:
create/alter database DBName COLLATE Chinese_PRC_CI_AS
1、SSMS可以連接此實(shí)例。
連接SqlLocalDB2012 :實(shí)例名: (LocalDb)\v11.0
連接SqlLocalDB2019 :實(shí)例名: (LocalDb)\MSSQLLocalDB

2、VS連接到SQLLoalDB
1、打開(kāi)Visual Studio 2019,依次點(diǎn)擊“視圖”(菜單欄)->“服務(wù)器資源管理器”,將會(huì)打開(kāi)“服務(wù)器資源管理器”窗口:

2、右鍵點(diǎn)擊“數(shù)據(jù)連接”,在彈出的上下文菜單中選擇“添加連接”,在彈出的窗口中將“服務(wù)器名”設(shè)置為(LocalDb)\MSSQLLocalDB,如下圖所示:

然后附加一個(gè)名稱為MusicDBContext.mdf的數(shù)據(jù)庫(kù)文件(文件可以自己定義)并點(diǎn)擊確定,此時(shí),MusicDBContext.數(shù)據(jù)庫(kù)作為默認(rèn)的數(shù)據(jù)庫(kù),我們可以選擇SQLLocalDB中的其他已有數(shù)據(jù)庫(kù)。
生成的連接字符串如下:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=C:\Users\CNC\Desktop\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
我們可以將mdf文件的路徑改為相對(duì)路徑:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
3、SQL Server 對(duì)象管理器可以查看已有的連接

3、編寫程序?qū)σ延袛?shù)據(jù)的讀取
如下代碼所示:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
namespace ConsoleApp
{
class Program
{
static void Main(string[] args)
{
string connectionString = @"Data Source=(LocalDb)\MSSQLLocalDB;Initial Catalog=MusicDBContext;Integrated Security=True";
SqlConnection connection = new SqlConnection(connectionString);
SqlDataAdapter adapter = new SqlDataAdapter("SELECT * FROM Musics",connection);
DataTable table = new DataTable();
adapter.Fill(table);
var result = (from row
in table.Rows.Cast<DataRow>()
select
new { ID = (int)row[0], Title = (string)row[1], ReleaseDate = (DateTime)row[2] });
result.ToList().ForEach(x => Console.WriteLine($"{x.ID},{x.Title},{x.ReleaseDate}"));
}
}
}運(yùn)行結(jié)果如下:

四、SQL 示例數(shù)據(jù)庫(kù)下載

SQL 示例數(shù)據(jù)庫(kù):
- northwind-pubs:
https://github.com/microsoft/sql-server-samples/tree/master/samples/databases/northwind-pubs

- adventureworks:
https://github.com/microsoft/sql-server-samples/tree/master/samples/databases/adventure-works
https://github.com/Microsoft/sql-server-samples/releases/tag/adventureworks

到此這篇關(guān)于輕量級(jí)數(shù)據(jù)庫(kù)SQL Server Express LocalDb的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Sql語(yǔ)句與存儲(chǔ)過(guò)程查詢數(shù)據(jù)的性能測(cè)試實(shí)現(xiàn)代碼
Sql語(yǔ)句 存儲(chǔ)過(guò)程查 性能測(cè)試對(duì)比代碼。2009-04-04
SQL Server 跨庫(kù)同步數(shù)據(jù)
這篇文章主要為大家詳細(xì)介紹了SQL Server 跨庫(kù)同步數(shù)據(jù)的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-02-02
數(shù)據(jù)庫(kù)中兩張表之間的數(shù)據(jù)同步增加、刪除與更新實(shí)現(xiàn)思路
可以采用分別創(chuàng)建增加、刪除、更新的觸發(fā)器(Trigger)來(lái)達(dá)到兩張表之間數(shù)據(jù)同步的目的,感興趣的朋友可以參考下,希望可以幫助到你2013-03-03
sqlserver中查詢橫表變豎表的sql語(yǔ)句簡(jiǎn)析
SQL 查詢橫表變豎表是我工作遇到過(guò)得情況,總結(jié)下來(lái)。如果有遇到這種情況的話可以參考下2012-05-05

