Chat now with support
Chat with Support

Toad for Oracle 12.11 - 用户指南

目录 欢迎来到 Toad Toad 资源 所需特权 创建和管理数据库连接 编辑器基本信息 模式浏览器基本信息 数据网格基本信息 使用数据 使用数据库对象 使用代码
编写语句和脚本 使用查询生成器 执行语句和脚本 保存语句(SQL 重新调用) 使用 PL/SQL 对象 调试 分析代码 优化 SQL
自定义 Toad 环境 将其他 Quest Software 产品与 Toad 搭配使用

生成查询

使用代码 > 使用查询生成器 > 生成查询

按照以下步骤可以开始使用查询生成器。

要构建查询

  1. 从模式浏览器、项目管理器、对象调色板或对象搜索窗口将表 (Tables)、视图 (Views) 或同义词 (Synonyms) 拖放到查询生成器工作区选项卡。
  2. 单击列旁边的复选框,以将其添加到活动查询的 SELECT 子句中或从 SELECT 子句中删除。

  3. 将列从一个表拖放到另一个表,以便在表之间创建联接。
  4. 右键单击列然后选择 Include in n 子句,以添加任何 WHERE、GROUP BY、HAVING 或 ORDER BY 子句。如有必要,右键单击并调整子句属性。
  5. 如要创建新子句,从表中拖放列到查询浏览器树节点的 WHERE、GROUP BY、HAVING 或 ORDER BY。

  6. 单击工具栏上的 以保存模型到磁盘。
  7. 单击生成的查询 (Generated Query) 选项卡,以查看或编辑生成的查询。
    1. 如果您更新图表,而 SQL 代码未同步,则单击生成的查询工具栏中的 以更新代码。
    2. 如果您更新代码,单击生成的查询工具栏上的 以更新图表。

另请参阅创建子查询

 

创建子查询

使用代码 > 使用查询生成器 > 创建子查询

您可以轻松创建子查询或嵌套子查询。子查询可以从 FROM 子句或 WHERE 子句中创建。

必须将列直接从表区域拖到子查询中,或从当前语句中拖到子查询中。

使用以下任何一种方法初始化子查询后,可以按照创建普通查询的方式创建子查询。

如要在 WHERE 子句中创建子查询

  1. 将一个列拖到 WHERE 节点。
  2. 在条件 (Condition) 对话框中,使用简单或复杂模式。

    如果您单击嵌套子查询 (Nested Subquery),新的查询则在工作区中创建。

如要创建 EXISTS 子查询

  1. 在树视图中右键单击 WHERE 子句。
  2. 选择添加 EXISTS 子查询添加 NOT EXISTS 子查询

如要在 FROM 子句中创建子查询

  1. 在树视图中右键单击FROM子句。
  2. 选择添加 (Add) |新建命名的子查询 (New Named Subquery)(或新建内联视图 (New Inline View))。

 

填充 Where 子句

使用代码 > 使用查询生成器 > 填充 Where 子句

在查询生成器生成的 SQL 中,有两种方法填充 WHERE 子句:将其作为单独的 WHERE,或者作为全局的 WHERE。

如要填充 where 子句

  1. 执行以下其中一项:
    • 右键单击 SELECT 节点下的列,然后选择包括在 Where 子句中 (Include in Where Clause)。
    • 将一个列从 SELECT 节点拖到 WHERE 节点。

    添加条件,选择或清除您想要应用的任何外联接。

    注:如要生成更加高级的查询,单击专家 (Expert) 选项卡,在顶部方框中输入您的代码,或者双击函数字段和数据字段以进行输入。

  2. 单击确定 (OK)。

    重复以上步骤,直至添加了所有条件为止。

    注:当您将多个列添加到 WHERE 子句时,这些列会自动定位。

  3. 如果一个条件应当是 OR 条件,而不是 AND,则右键单击,选择 OR。

如要创建全局 WHERE 子句

  1. 在表模型区中右键单击。
  2. 选择SQL | 全局 Where 子句 (Global Where Clauses)。
  3. 单击
  4. 输入或构建条件。
  5. 单击确定 (OK) 以关闭定义窗口。
  6. 单击确定 (OK)。

示例

如要构建以下查询:

SELECT DEPT.DEPTNO, DEPT.DNAME, DEPT.LOC

FROM DEPT

WHERE (((UPPER (RTRIM (DNAME)) = 'SALES') AND (DEPT.DEPTNO < 40)) AND ((DEPT.LOC = 'CHICAGO')OR ((DEPT.LOC IS NULL = '')))

执行以下操作:

  1. 打开查询生成器 (Query Builder)。
  2. 在对象调色板 (Object Palette)中,选择 Scott 模式,双击 DEPT 表以添加到模型中。
  3. 右键单击DEPT,选择选择全部 (Select All)。
  4. 将DEPTNO列拖到WHERE节点。
  5. 在运算符方框中选择<,单击常量 (Constant),在条件方框中输入40
  6. 单击确定 (OK)。
  7. 将LOC列拖到WHERE节点。
  8. 在 WHERE 定义对话框中,单击专家 (Expert) 选项卡。单击确定 (OK) 以确认。
  9. 双击 SQL 运算符区中的IS NULL,然后单击确定 (OK)。
  10. 将DEPTNO拖到树视图的LOC之上。
  11. 右键单击LOC 列,选择OR。
  12. 右键单击OR | LOC ,选择属性 (Properties)。在运算符方框中选择 =,单击常量 (Constant),在条件方框中输入 CHICAGO。
  13. 单击确定 (OK)。
  14. 在表模型区(表图像周围的区域),右键单击并选择SQL | Global Where。 单击
  15. 在顶部编辑框中,输入(UPPER (RTRIM (DNAME))) = 'SALES'
  16. 单击确定 (OK),然后再单击确定 (OK)

查看生成的查询。应当显示为上述形式。

 

填充 Having 子句

使用代码 > 使用查询生成器 > 填充 Having 子句

您通过以下任何一种方式,自动填充由查询生成器生成的 SQL 中的 Having 子句。

注:如要创建 HAVING 子句,您必须将列添加到 GROUP BY 节点。

HAVING 条目的形式是 <expression1> <operator> <expression2>。

如要填充 HAVING 子句

  1. 执行以下其中一项:
    • 在树中右键单击所需的列,然后选择包括在 Having 子句中 (Include in Having Clause)。
    • 将一个列从表模型区的一个表中拖到 HAVING 子句。
  2. 输入或构建条件。
  3. 单击确定 (OK)。
  4. 重复以上步骤,直至完成。

全局 HAVING 子句

如要包括一个全局 HAVING 子句,还必须有 GROUP BY 子句。

如要创建全局 HAVING 子句

  1. 在表模型区中右键单击。
  2. 选择 SQL | Global Having。
  3. 单击添加 (Add) 按钮。
  4. 输入或构建条件。
  5. 单击确定 (OK) 以关闭定义窗口。
  6. 单击确定 (OK)。

示例

如要构建以下查询:

SELECT emp.empno, emp.ename, emp.job, emp.mgr, emp.sal,

emp.comm, emp.deptno

FROM emp

GROUP BY emp.deptno, emp.comm, emp.sal, emp.mgr, emp.job,

emp.ename, emp.empno

HAVING ((emp.sal + NVL (emp.comm, 0)> 4000))

执行以下操作:

  1. 打开查询生成器 (Query Builder)。
  2. 在对象调色板 (Object Palette) 中,选择 Scott 模式。
  3. 双击 EMP 表,以添加到模型中。
  4. 右键单击 EMP ,选择选择全部 (Select All),然后清除 Hiredate。
  5. 将 DEPTNO、COMM、SAL、MGR、JOB、ENAME 及 EMPNO 拖到 Group by 节点。
  6. 右键单击表模型区,选择 SQL | Global Having。单击 以添加新的全局 Having 子句。

    输入 Having 子句以表示:

    EMP.SAL + NVL(EMP.COMM, 0) > 4000

  7. 单击确定 (OK) 两次。

查看生成的查询。应当显示为上述形式。此查询选择所有员工,其工资加佣金大于 4000。

NVL 命令用指定的值替换指定列中的 null 值,在本例中为 0。

 

Related Documents

The document was helpful.

Select Rating

I easily found the information I needed.

Select Rating