第八章 - 数据库连接
本节介绍如何使用 SnapDevelop IDE 中的 数据库服务器资源管理器 来管理数据库连接和查询数据,例如查看数据库中的数据、新建和执行 SQL 语句、以及从数据库表创建 Model。本教程末尾的 附录 D:数据库连接设置 列出了此功能支持的数据库以及相关的连接设置。
管理数据库连接
创建数据库连接
要执行数据库查询操作,首先需要建立数据库连接。
想要创建数据库连接:
选择顶部菜单栏上的 视图,然后选择 数据库服务器资源管理器。
在 数据库服务器资源管理器 中,点击 连接到数据库 图标。
在打开的 新建连接 对话框中,从 数据提供程序 下拉列表中选择一个数据库类型,然后为该数据库类型配置数据库连接信息。
数据库的基本连接选项以及高级连接选项会由于数据库类型而有所不同。具体请参阅 附录 D:数据库连接设置。
输入连接信息后,点击 测试连接 以检查连接状态。如连接成功,点击 确定 保存该数据库连接。
该数据库连接将会显示在 数据库服务器资源管理器 中。
您现在可以在 数据库服务器资源管理器 中访问该数据库中的数据库对象,包括表、视图、存储过程、函数、以及触发器。
更改数据库连接
成功创建数据库连接后,您可以通过右键单击该数据库连接然后选择相应的菜单来刷新、删除、修改数据库连接。
刷新 -- 成功创建数据库连接后,可能会对数据库进行一些修改。在这种情况下,您可以选择 刷新 来更新数据库。
删除 -- 如果要删除数据库连接,可以右键单击该数据库连接,然后选择 删除。
修改连接 -- 如果要修改某些数据库连接属性,可以右键单击该数据库连接,然后选择 修改连接。数据库连接 页面将打开。
操作数据库对象
成功创建数据库连接后,您可以在 数据库服务器资源管理器 中操作数据库中的数据库对象,包括表、视图、存储过程、函数、以及触发器。您可以右键点击对象然后通过弹出菜单来操作该对象。例如:右键点击一个表对象后,您可以使用以下右键菜单。
复制名称 -- 将所选对象的名称复制到粘贴板中,例如:[dbo].[AWBuildVersion]。这样您在编写 SQL 语句时就不必手动输入名称。
刷新 -- 如果只对数据库的某个对象进行了一些修改,您可以刷新该对象查看修改,而不必刷新整个数据库。当然,您也可以选择刷新所有表对象(或视图、或存储过程、或函数、或触发器),或整个数据库。
新建 -- 查询数据。默认提供以下三种常用查询:全选、查询前100条、根据键查询。详情请参考下一小节。
新建查询 -- 编写 SQL 查询语句。详情请参考下一小节。
显示表数据 -- 查看表中的所有数据(列及行)。
显示表数据模式 -- 查看表中的所有数据模式(Schema)。
SqlModelMapper -- 将打开生成 SqlModelMapper 类型 Model 的窗口。配置完毕后,点击 确定 将根据数据表生成 SqlModelMapper 类型 Model。
常用 SQL 查询
在数据库树视图中右键点击一个表或视图,然后选择 新建,可以选择以下三个常用 SQL 查询:全选、查询前100条、根据键查询。
全选 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将查询并返回当前选中的表或视图中的所有数据。下面是 SQL 语句示例:
SELECT * FROM [humanresources].[employee];
查询前100条 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将查询并返回当前选中的表或视图中的前 100 行数据。下面是 SQL 语句示例:
SELECT TOP 100 * FROM [humanresources].[employee];
根据键查询 -- SQL 查询编辑器将自动生成对应的 SQL 语句。点击 SQL 查询编辑器的 执行 图标将根据指定的主键值,查询并返回当前选中的表或视图中对应的数据行。下面是 SQL 语句示例:
SELECT * FROM [humanresources].[employee] WHERE businessentityid = 1;
新建 SQL 查询
如果以上提供的常用 SQL 查询语句无法满足您的需求,您可以自己编写 SQL 查询语句。
在数据库树视图中右键点击一个表或视图,然后选择 新建查询,在 SQL 查询编辑器中输入想要查询的 SQL 语句。
或者选择 新建,然后选择一种查询,在自动生成的 SQL 语句中直接进行修改。
查看结果
点击 执行 图标将依次执行 SQL 查询编辑器中的所有 SQL 语句。
如果您只需执行其中一条 SQL 语句,请用鼠标选中该语句,然后再点击 执行 图标。
SQL 语句的执行结果将在编辑器底部显示。您可以选择以不同的格式来查看 SQL 查询执行结果、拆分结果面板、查看查询消息等。
您可以选择以网格、文本和文件三种格式来查看查询结果。
以 Grid 格式查看结果
以网格格式显示查询结果,这是默认格式。
以 Text 格式查看结果
以文本格式显示查询结果。
以 File 形式查看结果
以文件格式显示查询结果。如果选择这种方式显示查询结果,则需要将结果导出到外部文件。
分栏展示
如果 SQL 查询包含多个 SQL 语句,您可以将结果面板拆分为左右两栏以便可以水平并排显示查询结果。如下图所示,启用 将结果面板分栏展示(左右) 选项,再点击 执行 图标,查询结果将水平并排显示为左右两栏(而不是垂直排列显示)。
查看消息
执行 SQL 语句后,消息 选项卡中会显示一条消息,显示查询执行的状态。
查看数据模式
您可以在 数据模式 选项卡中查看 SQL 语句中涉及的表的关系模式集合 (schema)。
操作 MongoDB 数据库
由于 MongoDB 数据库不直接支持 SQL 语句,因此 SnapDevelop 为 MongoDB 提供了单独的增删改查功能。
MongoDB 把表 (table) 称之为集合 (collection),把行 (row) 称之为文档 (document)。集合无需单独创建,在插入记录的同时,如果存在则插入数据到该集合中,如果不存在,则新建集合。
集群登陆
除了提供基本的单点登陆功能以外,SnapDevelop 还支持 MongoDB 数据库集群登陆的功能。
SnapDevelop 支持的是集群的一种(Replica Set),有一个主节点,一个或多个从节点。主节点写入数据,从节点对主节点中的数据进行同步。使用集群可提高 MongoDB 可用性,主从某个坏了,其它节点可继续工作。通过 读偏好 选项可以指定主从节点数据读取规则。
您可以通过以下连接方式登陆MongoDB数据库集群:
字符串连接登陆。例如:
mongodb://appeon:appeon@172.25.6.252:37017,172.25.6.252:37018,172.25.6.252:37019/sc_tms?replicaSet=cloud&readPreference=primary&serverSelectionTimeoutMS=5000&connectTimeoutMS=10000&authSource=admin&authMechanism=SCRAM-SHA-256
单独填写连接字段。例如:
172.25.6.252:37017,172.25.6.252:37018,172.25.6.252:37019
常规查询
在常规查询中,您需要手工输入查询语句。对于过滤、映射、和排序这三种查询,您还可以到 查询构建器 中通过选择字段、条件、值等来轻松创建查询,而不必手动输入查询语句。详情请看下一小节。
输入相关的语句后,您可以点击底部的 执行 按钮执行该语句,然后在 结果 面板中查看返回的数据结果。或者点击 重置 恢复默认状态。
筛选 -- 输入结果的筛选条件语句,例如:{"Quantity" : 31},将返回 Quantity 字段值为 31 的所有数据;{Quantity : "31", Address : "粤海街道111"},将返回 Quantity 字段值为 31 同时 Address 字段值为 "粤海街道111" 的所有数据。
映射 -- 输入某(些)列的显示语句,例如:{Quantity : 1, _id : 0} 表示 Quantity 字段显示,id 字段不显示。
排序 -- 输入结果的排序语句:1 为升序,-1 为降序。例如:{Quantity: 1},将按 Quantity 字段对结果进行升序排序;{CreatedDate: -1},将按 CreatedDate 字段对结果进行降序排序;{Quantity: 1, CreatedDate: -1} 首先按 Quantity 字段对结果进行升序排序然后按 CreatedDate 字段对结果进行降序排序。
跳过 -- 输入一个整数数字,表示在返回结果集之前跳过多少条数据。
限制 -- 输入一个整数数字,表示返回的结果集中包含的最大数据。
查询构建器
您在 常规查询 的输入框中手动输入的查询语句会自动同步设置到 查询构建器 中。您也可以在 查询构建器 中通过选择字段、条件、值等来轻松创建查询(目前只提供了过滤、映射、和排序这三种查询),而不必手动输入查询语句。点击 查询构建器 将显示详细的设置选项。指定相关的条件后,您可以点击底部的 执行 按钮执行该条件,然后在 结果 面板中查看返回的数据结果。
过滤 -- 指定结果的过滤条件,如下图所示。可以点击 添加 添加多个过滤条件,或者点击条件最后的减号图标来删除此条件。过滤条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 筛选 输入框中会自动显示对应的语句。
映射 -- 指定某(些)列的显示条件,如下图所示。可以点击 添加 添加多个条件,或者点击条件最后的减号图标来删除此条件。条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 映射 输入框中会自动显示对应的语句。
排序 -- 指定结果的排序条件,如下图所示。可以点击 添加 添加多个条件,或者点击条件最后的减号图标来删除此条件。条件创建后,可以通过选择其前面的复选框来决定该条件是否生效。当条件创建完毕(并且其前面的复选框为选中),常规查询 中的 排序 输入框中会自动显示对应的语句。
聚合管道
MongoDB 的聚合管道由一个或多个数据处理的阶段组成。在 SnapDevelop 中您可以通过创建聚合管道来处理数据。
点击 聚合管道 展开创建区域。
阶段默认从 1 开始。您可以选择一个操作符,例如:$addFields,然后双击当前行打开 编辑阶段 的窗口。在此窗口中,您可以输入具体的表达式来定义当前阶段所要执行的操作。
增删改数据
增加数据
点击 结果 窗口中的 添加文档 图标。
在打开的 添加 JSON 文档 窗口,输入要添加的数据。点击 保存。数据将会被保存到数据库中。可以回到 结果 窗口中查看新添加的数据(如没显示,点击 刷新)。
编辑数据
首先在 结果 窗口中把鼠标光标定位到要编辑的数据记录中。
然后点击 结果 窗口中的 编辑文档 图标。
在打开的 编辑 JSON 文档 窗口中修改数据。点击 保存。数据将会被更新及保存到数据库中。可以回到 结果 窗口中查看更新后的数据(如没显示,点击 刷新)。
删除数据
首先在 结果 窗口中把鼠标光标定位到要删除的数据记录中。
然后点击 结果 窗口中的 删除文档 图标。点击 确定 删除数据。 可以回到 结果 窗口中查看删除后的数据。
查看结果
点击 执行 按钮将执行当前页面中设置的条件和语句。
执行结果将在页面底部显示。您可以选择以不同的视图来查看执行结果、插入/编辑/删除数据(见上一小节)、导出结果等。
您可以选择以 JSON 视图、树视图、表格视图等三种格式来查看查询结果。
您可以点击 导出结果 图标,将整个集合、当前搜索结果、或当前选中文档导出为 JSON 或 CSV 文件。