Oracle SQL & PL/SQL:使用子查询的游标FOR循环详解

需积分: 41 3 下载量 69 浏览量 更新于2024-08-15 收藏 4.31MB PPT 举报
本资源主要介绍了如何在Oracle SQL & PL/SQL中使用子查询的游标式FOR循环,以及SELECT语句在数据检索中的关键功能。 在Oracle SQL中,游标式FOR循环是一种高效且简洁的方式来遍历查询结果。这种循环方式无需显式声明游标,而是直接在循环内使用SELECT语句。例如,给出的代码段展示了如何通过一个隐式游标循环遍历EMP表中所有部门编号为30的员工记录。在循环内部,如果员工的部门编号等于30,那么会执行特定的操作。在循环结束后,游标会自动关闭,简化了代码维护。 SELECT语句是SQL的核心,它用于从数据库中提取所需的信息。其主要功能包括: 1. **选择**:选择功能允许用户指定需要从表中检索的行。通过添加各种条件(如WHERE子句),可以进一步筛选出符合特定条件的行。 2. **投影**:投影功能则涉及选择要显示的列。用户可以选择源表中的部分列,甚至可以使用计算列(如表达式或函数的结果)。 3. **连接**:虽然在描述中未详细展开,但连接功能是将来自不同表的数据结合在一起。这通常通过JOIN操作实现,可以是INNER JOIN、LEFT JOIN、RIGHT JOIN或FULL OUTER JOIN等。 此外,还介绍了连接操作符`||`,它用于组合列、表达式或常量,形成新的字符表达式。例如,可以将员工的姓名和工作连接在一起,形成一个输出列。 在SQL中,还可以使用原义字符串,即直接在SELECT语句中包含字符、数字或日期。这些字面值必须用单引号括起,对于日期和字符,而数值则不需要。原义字符串可以在每个数据行的输出中显示,提供额外的文本信息,如列标题或定制的格式。 举例来说,下面的SQL语句展示了如何将员工的姓名、冒号和一个文本字符串"1 Month salary="与他们的薪水(经过转换为每月薪水)连接起来,形成一个新的列`MONTHLY`。 ```sql SQL>SELECT ename || ':' || '1' || 'Month salary=' || sal * 12 / 12 FROM emp; ``` 这个查询会显示每个员工的姓名,后面跟着“1 Month salary=”和他们对应的月薪水。 通过这种方式,SQL不仅可以用来查询数据,还可以根据需求构造出丰富的输出格式。在PL/SQL中结合游标式FOR循环,可以更灵活地处理和展示数据库中的信息。