輕量級數(shù)據庫SQL?Server?Express?LocalDb介紹
一、介紹
1、SqlLocalDb
全稱:SQL Server Express LocalDb。
簡化SQL Server的本地數(shù)據庫。SqlLocalDb就是一個輕量級的基于本地的T-SQL數(shù)據庫。
SQL Server既可以作為遠程,也可以做本地。而SqlLocalDb只能作為本地使用,不支持聯(lián)網,只能本機連接。
2、輕量級數(shù)據庫對比(LocalDB vs. SQL Express vs. Compact)
LocalDB并不能完全替代SQL Server Express,它只是對開發(fā)人員提供了另外一種選擇,并保證與SQL Server Express一致的兼容性。
LocalDB與SQL Server Compact之間有很大區(qū)別。
最新的Microsoft SQL Server Compact 4.0 SP1 是一種免費的嵌入式數(shù)據庫,軟件開發(fā)人員可以使用它來構建 ASP.NET 網站和 Windows 桌面應用程序。
SQL Server Compact 4.0 的優(yōu)點是:占用的空間小,支持在應用程序文件夾中專門部署其二進制文件,輕松地使用 Visual Studio 和 WebMatrix 進行應用程序開發(fā),以及無縫地將架構和數(shù)據遷移到 SQL Server。
單獨下載地址:
https://www.microsoft.com/zh-CN/download/details.aspx?id=30709
CompactView(sdf文件查看器):
https://sourceforge.net/projects/compactview/files/
SQL Server Compact的特點:
- 運行模式:SQL Server Compact是一個進程內(in-proc)DLL,LocalDB則作為獨立進程運行。
- 磁盤占用:SQL Server Compact的體積僅有4MB,LocalDB安裝之后則有250MB。
- 功能特性:SQL Server Compact僅提供RDBMS的核心功能,而LocalDB則提供更豐富的功能,比如存儲過程、幾何和地理數(shù)據類型。
二、安裝這個SqlLocalDb
Visual Studio 安裝時會自動裝上MSSQLLocalDB 。
1、通過VS Installer安裝:
Visual Studio 2019 內置的SQL Server 2016 Express LocalDB。
如果選了.NET負載,直接在里面勾上就行;如果沒有,選到單個組件,勾上localdb,會自動勾上下一項那個依賴。
2、通過SQL Server Express安裝
最新版單獨下載SQL Server Express:
(SQL Server Express入口:https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads)
注:SQL Server 2016 Express LocalDB微軟已經在SQL Server Express不再提供,目前為最新的為2019版本。
下載之后,打開該引用,并點擊“下載介質”:
在彈出的頁面中,選擇LocalDB(第三個),點擊下一步下載SqlLocalDB.msi
下載后安裝
安裝后:
2012的版本為11,2016的版本為13,2019的版本為15。
三、連接SqlLocalDB
使用 Windows 身份驗證,服務器類型:數(shù)據庫引挈。
LocalDB的實例歸類設置為SQL_Latin1_General_CP1_CI_AS
,不能更改,導致的最直接的結果就是直接新建數(shù)據庫會存不了中文。
解決辦法是對于每一個數(shù)據庫手動指定排序規(guī)則:
create/alter database DBName COLLATE Chinese_PRC_CI_AS
1、SSMS可以連接此實例。
連接SqlLocalDB2012 :實例名: (LocalDb)\v11.0
連接SqlLocalDB2019 :實例名: (LocalDb)\MSSQLLocalDB
2、VS連接到SQLLoalDB
1、打開Visual Studio 2019,依次點擊“視圖”(菜單欄)->“服務器資源管理器”,將會打開“服務器資源管理器”窗口:
2、右鍵點擊“數(shù)據連接”,在彈出的上下文菜單中選擇“添加連接”,在彈出的窗口中將“服務器名”設置為(LocalDb)\MSSQLLocalDB,如下圖所示:
然后附加一個名稱為MusicDBContext.mdf的數(shù)據庫文件(文件可以自己定義)并點擊確定,此時,MusicDBContext.數(shù)據庫作為默認的數(shù)據庫,我們可以選擇SQLLocalDB中的其他已有數(shù)據庫。
生成的連接字符串如下:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=C:\Users\CNC\Desktop\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
我們可以將mdf文件的路徑改為相對路徑:
Data Source=(LocalDb)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\MusicDBContext.mdf;Initial Catalog=MusicDBContext;Integrated Security=True
3、SQL Server 對象管理器可以查看已有的連接
3、編寫程序對已有數(shù)據的讀取
如下代碼所示:
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}")); } } }
運行結果如下:
四、SQL 示例數(shù)據庫下載
SQL 示例數(shù)據庫:
- 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
到此這篇關于輕量級數(shù)據庫SQL Server Express LocalDb的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
SQLServer 獲得用戶最新或前n條訂單的幾種SQL語句小結
場景:有一張用戶表,一個訂單表,要求獲得一個用戶對應的最新的一條訂單信息。2011-08-08參考sql2012存儲過程寫的統(tǒng)計所有用戶表尺寸大小的示例
參考SQL2005, 2008和2012的系統(tǒng)存儲過程master.sys.sp_spaceused代碼后,寫了下面一條語句來方便平時統(tǒng)計所有用戶表尺寸大小2014-01-01系統(tǒng)存儲過程sp_MSforeachtable和sp_MSforeachdb使用說明
系統(tǒng)存儲過程sp_MSforeachtable和sp_MSforeachdb2009-09-09解析SQL Server聚焦移除(Bookmark Lookup、RID Lookup、Key Lookup)
本文主要講解索引性能優(yōu)化,著重對Bookmark Lookup、RID Lookup、Key Lookup三者進行移除的實現(xiàn)進行解析,以此來提高查詢性能。希望對大家有所幫助2016-12-12