JMP 中最重要的 SQL 语句是 SELECT 语句。该语句指示数据库从数据源中获取哪些行。当您完成编写 SQL 语句以查询数据库中针对 Solubility.jmp 样本数据表的过程之后,实际就是向数据源发送了以下 SQL 语句:
SELECT * FROM "Solubility"
* 运算符是“所有列”的简写形式。这样,该语句即向数据库发送了一个请求,请求从指定的数据表中返回所有列。
SELECT ETHER, OCTANOL, CHLOROFORM FROM "Solubility"
JMP 提供一种图形化的方式来构造简单的 SELECT 语句,这样就不必再键入实际的 SQL。要从数据源中选择特定列,请在列列表中突出显示这些列。
有时,您希望从数据源中仅获取唯一记录。也就是说,您希望消除重复记录。要启用该功能,请使用 DISTINCT 关键字。
SELECT DISTINCT ETHER, OCTANOL, CHLOROFORM FROM "Solubility"
您可以按数据库中的一个或多个字段对结果排序。使用 ORDER BY 命令指定要排序的变量。
SELECT * FROM "Solubility" ORDER BY LABELS
选择所有字段,按 LABELS 变量对生成的数据表排序。若要指定更多变量作为排序依据,请将其添加到逗号分隔列表中。
SELECT * FROM "Solubility" ORDER BY LABELS, ETHER, OCTANOL
SELECT * FROM "Solubility" WHERE ETHER > 1
WHERE 语句放置在 FROM 语句之后,可使用以下任意逻辑运算符。
SELECT * FROM "Solubility" WHERE ETHER > -2 OR OCTANOL < 1 AND CHLOROFORM > 0
SELECT * FROM "Solubility" WHERE ETHER > -2 OR (OCTANOL < 1 AND CHLOROFORM > 0)
SELECT * FROM "Solubility" WHERE LABELS IN (’Methanol’, ’Ethanol’, ’Propanol’)
获取 LABELS 列的值为 Methanol、Ethanol 或 Propanol 的所有行。
SELECT * FROM "Solubility" WHERE ETHER BETWEEN 0 AND 2
获取 ETHER 值介于 0 和 2 之间的所有行。
使用 LIKE 语句,您可以选择与给定字符串相似的值。用 % 来表示可包含任何值的字符串。例如,您可能想要从 Solubility 数据中选择所有乙醇类的化学品,即:以 –ol 结尾的化学品。下面的 SQL 语句可完成该任务。
SELECT * FROM "Solubility" WHERE LABELS LIKE ‘%OL’
% 运算符可放置于 LIKE 语句中的任何位置。下面的示例提取包含以 M 开头且以 OL 结尾的标签的所有行:
SELECT * FROM "Solubility" WHERE LABELS LIKE ‘M%OL’
•
|
SELECT SUM(ETHER), SUM(OCTANOL) FROM "Solubility"
•
|
下面的语句返回 ETHER 值大于 1 的行数:
|
SELECT COUNT(*) FROM "Solubility" WHERE ETHER > 1
•
|
下面的语句可为您计算乙醇类数据的 OCTANOL 平均值:
|
SELECT AVG(OCTANOL) FROM "Solubility" WHERE LABELS LIKE ‘%OL’
GROUP BY 和 HAVING 命令特别适用于聚合函数。这两个命令支持您基于数据集中某个字段的值多次执行聚合函数。
•
|
SELECT COUNT(ETHER) FROM "Solubility" GROUP BY (ETHER) 返回一列数据,列中每个条目对应 ETHER 的一个水平。
|
•
|
SELECT COUNT(ETHER) FROM "Solubility" WHERE OCTANOL > 0 GROUP BY (ETHER) 的作用与上一语句相同,只不过是为 OCTANOL > 0 的行计算记录数。
|
SELECT ETHER, COUNT(ETHER) FROM "Solubility" GROUP BY (ETHER)
在返回计数之外还返回包含 ETHER 水平的一列。
聚合函数还有助于计算要在 WHERE 语句中使用的值。例如,您可能希望获取大于 ETHER 平均值的所有值。换言之,您希望找到 ETHER 的平均值,然后仅选择值大于该平均值的记录。请记住 SELECT AVG(ETHER) FROM "Solubility" 语句可获取您想要的平均值。所以,正确的 SQL 命令会在 WHERE 条件语句中使用上述语句:
SELECT * FROM "Solubility" WHERE ETHER > (SELECT AVG(ETHER) FROM "Solubility")
构造查询之后,您可能希望以后重新运行该查询, 但不想在每次想要使用该查询时都手动键入它。此时,您可以将该查询导出至外部文件。请在读取存储在 Excel 文件的 Solubility 表中的所有变量所示的窗口中点击导出 SQL 按钮。 这将调出一个窗口,您可在其中将 SQL 查询另存为文本文件。
要加载保存的查询,请在读取存储在 Excel 文件的 Solubility 表中的所有变量所示的窗口中点击导入 SQL 按钮。 这将调出一个窗口,您可在其中导航到保存的查询。该查询一打开即加载到该窗口中。
JMP 可以帮助在 ODBC 导入期间生成 SQL 查询的 WHERE 子句。它提供 WHERE 子句编辑器,可帮助您生成使用 SQL 常用功能的基本表达式,同时允许使用供应商特定的函数。例如,您不必了解 SQL 是使用“=”还是“==”来进行比较,也不必了解是使用 avg() 还是 average() 来求平均值。
2.
|
3.
|
点击 Where 按钮。
|
WHERE 子句编辑器与“公式编辑器”(在公式编辑器中介绍)的工作方式类似。