试用 Azure Sql 数据库

时间:2022-07-28
本文章向大家介绍试用 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 点击创建:

这里主要是2有个地方要注意:

  1. 服务器选项如果是第一次创建需要新建一个服务器,点击“新建”弹出创建服务器界面: 填写服务器名称,管理员,密码等信息,请牢记,后面需要用到。
  1. 计算+储存选项如果是第一次同样需要创建。点击“新建”跳转到计算与储存选择界面:

以为我使用的是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 差异