试用 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,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 差异

相关文章

Microsoft云包括了Azure、PowerPlatform、Microsoft365、Git...
《WindowsAzurePlatform系列文章目录》 我们在使用AzureAPI...
微软免费使用一年的Azure虚拟机,默认提供了一个64G的磁盘,...
上篇请访问这里做一个能对标阿里云的前端APM工具(上)样本多...
一年一度的MicrosoftBuild终于来了,带来了非常非常多的新技...