試用 Azure Sql 數據庫


我們的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 點擊創建:
0TiZjO.png
這里主要是2有個地方要注意:

  1. 服務器選項如果是第一次創建需要新建一個服務器,點擊“新建”彈出創建服務器界面:
    填寫服務器名稱,管理員,密碼等信息,請牢記,后面需要用到。
    0TiSuF.png
  2. 計算+儲存選項如果是第一次同樣需要創建。點擊“新建”跳轉到計算與儲存選擇界面:
    0TiVgK.png
    以為我使用的是12月試用賬號,有免費額度。選擇“標准”實例,DTU選擇10,數據儲存選擇250G。這個配置是免費的。

注意:以上配置在12月試用賬號內是免費的,千萬不要選錯,即使選了更低級的實例也會收費。

配置完之后點擊“創建+查看”開始創建資源,等待一會后提示創建成功。這個時候我們的Azure Sql 數據庫就創建好了。

使用SSMS管理數據庫

通常我們管理Sql Server數據庫的時候都會使用SSMS(Microsoft SQL Server Management Studio)進行新建,查詢等操作。那么Azure Sql 同樣支持SSMS工具進行連接並管理。

登錄數據庫

0TimuD.png
跟連接普通的Sql Server數據庫一樣在登錄界面填寫:
服務器名稱:這里填寫前面創建服務器的時候填寫的名稱及域名
身份驗證:SQL Server 身份驗證
登錄名:填寫前面創建服務器的時候填寫的管理員名稱
密碼:填寫前面創建服務器的時候填寫的管理員密碼

新建防火牆規則

填寫完之后點擊“連接”開始嘗試連接數據庫。第一次連接會提示新建防火牆規則。 我們需要在portal上把客戶端的ip加入白名單。
0TiE36.png
選擇左側菜單“概述”,點擊“設置服務器防火牆”
0TiA9x.png
在客戶端ip一欄,填寫本機的ip地址。也可以填寫一個網段。
0TiuHH.png
配置完成后點擊“保存”。提示成功后重新使用SSMS連接服務器,這次成功連接上去了。
0TinDe.png

管理數據

連接成功后就可以像普通Sql Server一樣進行查詢數據等操作了。
新建一張表Table_1:
0TiMEd.png
編輯一行數據:
0TnMVK.png
查詢數據:
0TntKI.png

使用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。
0TiQUA.png

編寫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操作了數據。
0TQpz4.png

總結

通過以上我們簡單介紹並演示了如果使用Azure Sql數據庫。絕大部分時候我們可以把Azure Sql當做SqlServer來管理或者用代碼操作。這為我們從本地數據庫遷移到Azure Sql數據庫提供了非常巨大的方便。對於應用層代碼,只需要更改連接字符串就可以了。當然Azure Sql數據庫跟本地Sql Server還是有一些差異的,在遷移前請先閱讀文檔:解析遷移到 SQL 數據庫的過程中的 Transact-SQL 差異


免責聲明!

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



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