我們的12月試用賬號的免費服務里有一個Azure Sql服務,最近正好自己做一個小工具需要一個資料庫,正好可以把它當測驗庫順便體驗一把Azure Sql,
概述
Azure SQL 資料庫
Azure SQL 資料庫是 Azure 中托管的關系資料庫即服務 (DBaaS),屬于“平臺即服務 (PaaS)”行業類別,
最適合用于需要使用最新的 SQL Server 穩定功能,且開發與面市時間有限的新式云應用程式,
完全托管的 SQL Server 資料庫引擎,基于最新穩定的 SQL Server Enterprise Edition, SQL 資料庫有兩個部署選項,每個選項都以 Microsoft 所擁有、托管及維護的標準化硬體和軟體為基礎,
在 SQL Server 中,無論是本地的還是 Azure 虛擬機中,都可使用需要進行廣泛配置的內置特性和功能, 使用 SQL 資料庫時,可以即用即付,并使用向上或向外縮放選項獲得更強大的功能且不會中斷服務, SQL 資料庫具有 SQL Server 所不能提供的其他一些功能,例如,內置的高可用性、智能和管理,
以上摘自 Azure Sql 檔案
以上說的比較官方,簡單來說就是Azure提供了一個云資料庫服務,它的Sql引擎自然是微軟自家的Sql Server,你大致可以認為它就是一個在線版本的Sql Server,它依托Azure提供了非常強大的高可用、高性能、可以自由伸縮等功能,
創建資料庫
在portal控制臺找到 Azure Sql 點擊創建:

這里主要是2有個地方要注意:
- 服務器選項如果是第一次創建需要新建一個服務器,點擊“新建”彈出創建服務器界面:
填寫服務器名稱,管理員,密碼等資訊,請牢記,后面需要用到,

- 計算+儲存選項如果是第一次同樣需要創建,點擊“新建”跳轉到計算與儲存選擇界面:

以為我使用的是12月試用賬號,有免費額度,選擇“標準”實體,DTU選擇10,資料儲存選擇250G,這個配置是免費的,
注意:以上配置在12月試用賬號內是免費的,千萬不要選錯,即使選了更低級的實體也會收費,
配置完之后點擊“創建+查看”開始創建資源,等待一會后提示創建成功,這個時候我們的Azure Sql 資料庫就創建好了,
使用SSMS管理資料庫
通常我們管理Sql Server資料庫的時候都會使用SSMS(Microsoft SQL Server Management Studio)進行新建,查詢等操作,那么Azure Sql 同樣支持SSMS工具進行連接并管理,
登錄資料庫

跟連接普通的Sql Server資料庫一樣在登錄界面填寫:
服務器名稱:這里填寫前面創建服務器的時候填寫的名稱及域名
身份驗證:SQL Server 身份驗證
登錄名:填寫前面創建服務器的時候填寫的管理員名稱
密碼:填寫前面創建服務器的時候填寫的管理員密碼
新建防火墻規則
填寫完之后點擊“連接”開始嘗試連接資料庫,第一次連接會提示新建防火墻規則, 我們需要在portal上把客戶端的ip加入白名單,

選擇左側選單“概述”,點擊“設定服務器防火墻”

在客戶端ip一欄,填寫本機的ip地址,也可以填寫一個網段,

配置完成后點擊“保存”,提示成功后重新使用SSMS連接服務器,這次成功連接上去了,

管理資料
連接成功后就可以像普通Sql Server一樣進行查詢資料等操作了,
新建一張表Table_1:

編輯一行資料:

查詢資料:

使用Ado.net操作資料
以上演示了使用SSMS來管理操作資料,下面演示下使用.NET Ado.net技術操作下Azure Sql,使用Ado.net操作Azure Sql我們完全可以把Azure Sql當做SqlServer來使用,所以我們只要使用SqlServer的Data Provider來操作就可以了,
安裝Dapper
為了偷懶直接使用Dapper來演示,因為Dapper本身就是基于Ado.net技術實作的,
新建一個控制臺專案,使用Nuget安裝Dapper,

撰寫CRUD代碼
我們使用Dapper來撰寫資料庫改刪查代碼,資料庫連接串可以在portal上點擊左側“資料庫連接字串”選單獲取,
static IDbConnection GetConnection()
{
var connstring = "x";
var conn = new SqlConnection();
conn.ConnectionString = connstring;
return conn;
}
static void Main(string[] args)
{
using (var conn = GetConnection())
{
conn.Open();
//insert
var result = conn.Execute("insert into Table_1 values (@id, @name, @birthday)", new { id=0, name = "user0", birthday=DateTime.Now });
Console.WriteLine("Run insert into {0}", result>0?"success":"fail");
result = conn.Execute("insert into Table_1 values (@id, @name, @birthday)", new { id = 1, name = "user1", birthday = DateTime.Now });
Console.WriteLine("Run insert into {0}", result > 0 ? "success" : "fail");
//select
var list = conn.Query<Table_1>("select * from Table_1");
foreach (var row in list)
{
Console.WriteLine("id:{0} name:{1} birthday:{2}", row.Id, row.Name, row.Birthday);
}
//update
result = conn.Execute("update Table_1 set Name = @name where id = @id", new { id = 0, name = "user00" });
Console.WriteLine("Run update {0}", result > 0 ? "success" : "fail");
//delete
result = conn.Execute("delete from Table_1 where id = @id", new { id = 0});
Console.WriteLine("Run delete {0}", result > 0 ? "success" : "fail");
}
Console.ReadLine();
}
運行結果
寫完代碼我們直接F5運行一下,可以看到我們成功的使用Ado.net操作了資料,

總結
通過以上我們簡單介紹并演示了如果使用Azure Sql資料庫,絕大部分時候我們可以把Azure Sql當做SqlServer來管理或者用代碼操作,這為我們從本地資料庫遷移到Azure Sql資料庫提供了非常巨大的方便,對于應用層代碼,只需要更改連接字串就可以了,當然Azure Sql資料庫跟本地Sql Server還是有一些差異的,在遷移前請先閱讀檔案:決議遷移到 SQL 資料庫的程序中的 Transact-SQL 差異
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/172583.html
標籤:其他
下一篇:vtp
