连接至 SQL 数据库后,选择您想要查询的表。选择一个主表,或连接多个表以查询全部。
默认情况下,JMP 尝试根据表中分配的键关系连接表。
• 主键标识唯一描述数据(例如,客户 ID 编号)的列。主表中的所有行都包括在您的查询中。
• 副表中的外键与其中一个连接表的主键匹配。仅副表中的匹配行包含在您的查询中。
若不存在键,则按列名匹配数据,这会连接两个表。默认情况下,仅副表中的匹配行包含在您的查询中。
该示例显示如何连接多个表。不过,您也可以使用单个表生成查询。在这种情况下,连接不是必需的。
注意:“查询生成器”示例基于的数据库并未随 JMP 安装。
1. 选择文件 > 新建 > 数据库查询,连接至数据库,然后选择 SQBTest 架构。请参见连接至数据库。
2. 从“架构 - 表”列表中选择所需架构。
若还选择了表,该表将在您点击“下一步”后成为主表。
3. 在“选择要查询的表”窗口中,选择“可用表”列表中的 g6_Customers,然后点击主表。
“列”选项卡显示 CustID 是主键。数据已编入索引,可加快查询速度。
4. 从“可用表”列表中选择 g6_Movies 和 g6_Rentals,然后点击副表。
“左连接”图标 指示这些表已自动连接(图 3.36)。CustID 是 g6_Customers 中的主键,且与另外一个表的外键匹配。
提示:添加主表或副表后,点击添加相关表可添加包含匹配列的表。当未找到相关表或者未选择主表或副表时,该按钮不可用。
图 3.36 中显示了完成的窗口。
图 3.36 选择主表和副表
提示:要在长列表中查找架构,请在架构上方的搜索框中输入名称。您还可以在表的列表上方搜索表。红色小三角菜单提供了用于区分大小写和使用正则表达式进行搜索的选项。
5. 点击每个表的表快照选项卡以预览数据。
图 3.37 “表快照”选项卡
6. 在主表和副表下方,点击预览连接以查看从指定连接创建的表预览。
提示:
• 副表旁边的 图标指示该表未在查询中连接。点击编辑连接按钮 以指定要连接的列。若您无法找到要连接的列,请点击删除按钮 以删除该表。请参见编辑连接表的条件。
• 在“列”选项卡中,“键”列可能会显示多个键;有些列可同时为主键和外键。主键旁边不会显示唯一键图标,因为所有的主键都是唯一的。
• 在“列”选项卡中,为与另一个架构中的主键相匹配的外键指定了“引用”。该引用为架构和列的名称。
• 点击更改数据源可查询其他架构或数据库。
• 要连接不同源(例如,数据库和 Microsoft Excel)中的数据,请使用“查询生成器”将数据库数据导入某个数据表;将 Excel 数据导入某个数据表;然后使用“表”菜单中的“JMP 查询生成器”查询并连接这两个表。
• 导入包含主键的某个表时,“链接 ID”列属性将添加至数据表中的列。该列属性支持您虚拟连接数据表。请参见虚拟连接数据表。
在“选择要查询的表”红色小三角菜单中,最初选定了“自动连接数据库表”。JMP 根据键关系或匹配列名自动连接数据库表。
若不存在键,或者列名不匹配,请点击编辑连接 以指定要连接的列。
注意:“查询生成器”示例基于的数据库并未随 JMP 安装。
编辑连接表的条件
1. 选择文件 > 新建 > 数据库查询,连接至数据库,然后选择 SQBTest 架构。请参见连接至数据库。
2. 在“选择要查询的表”窗口中,选择 g1_books 作为主表,g1_charges 作为副表。
副表旁边的 图标指示该表未在查询中连接。
3. 选择“副表”窗格中的 g1_charges,然后点击编辑连接 。
随即显示“添加条件”窗口。
4. 在“左侧列”列表中,选择 g1_books。
5. 从“左侧列”框中选择 Book ID。
6. 从“右侧列”框中选择 ID。
7. 确保在两个框之间选择了等号。
图 3.38 “添加条件”窗口
8. 点击下一步。
“编辑连接”窗口显示 g1_books 中的不匹配行将包含在数据表中。仅忽略 g1_charges 中出现的行。
要进行完全连接并导入所有行,您需要选择包括下表中的不匹配行: g1_charges。若仅有一个不匹配选项可用,数据库将不支持完全连接。
9. 点击确定。
注意:在连接所有副表之后,确定按钮才可用。
阻止表自动连接
• 从主表上方的“选择要查询的表”红色小三角菜单中,取消选择自动连接数据库表 。
• 若您频繁查询大型数据库,请取消选择首选项 > 查询生成器中的自动连接添加至查询的表,以防止出现内存问题。