PL/SQL基础操作笔记:查询与数据操纵

需积分: 11 3 下载量 89 浏览量 更新于2024-07-27 收藏 333KB PDF 举报
"这篇文档是关于PL/SQL的个人学习笔记,主要涵盖了在PL/SQL块中可以执行的语句类型以及如何进行数据的检索和操纵。笔记中强调了PL/SQL块不支持直接嵌入DDL(数据定义语言)和DCL(数据控制语言)语句,但允许使用SELECT、DML(数据操作语言)和事务控制语句。" 在PL/SQL编程中,有特定的规则和限制。关键知识点包括: 1. **语句类型**:PL/SQL块中可以直接执行的语句主要包括SELECT、DML(INSERT, UPDATE, DELETE)以及事务控制语句(COMMIT, ROLLBACK, SAVEPOINT)。然而,DDL(CREATE, ALTER, DROP)用于创建、修改或删除数据库对象,以及DCL(GRANT, REVOKE)用于权限管理,这些语句不能直接嵌入PL/SQL块中,通常需要单独执行。 2. **数据检索**: - **单行数据**:可以使用标量变量或记录变量来接收数据。例如,通过`SELECT INTO`语句将查询结果赋值给变量。如果`SELECT INTO`没有返回数据,会引发`NO_DATA_FOUND`异常;如果返回多条数据,会触发`TOO_MANY_ROWS`异常。在`WHERE`子句中,确保变量名与列名不同,以避免`TOO_MANY_ROWS`异常。 - **使用记录变量**:定义一个记录类型,可以存储多列数据,例如`emp_record`类型,然后将查询结果直接存入记录变量。 3. **数据操纵**: - **插入数据**:可以通过`VALUES`子句或子查询来插入数据。例如,可以为新的部门记录分配变量并使用`INSERT INTO`语句插入。子查询可以用于从现有数据中获取值,然后插入到目标表中。 - **更新数据**:可以使用表达式更新列的值,例如更新部门的地点。这里展示了如何根据部门编号更新`dept`表中的`loc`字段。 4. **异常处理**:在PL/SQL中,可以使用异常处理结构来捕获和处理可能出现的错误情况,比如上述的`NO_DATA_FOUND`和`TOO_MANY_ROWS`异常。这增强了代码的健壮性,确保程序在遇到预期外的情况时能够优雅地处理。 5. **变量赋值**:在PL/SQL中,可以使用`:=`运算符为变量赋值,如`v_deptno := no;`。 6. **用户输入**:笔记中使用了`&no`和`&name`这样的符号,这通常是SQL*Plus或其他数据库交互工具中的占位符,代表用户在运行脚本时提供的输入值。 在实际开发中,理解这些基本概念和操作对于编写有效的PL/SQL代码至关重要。熟练掌握这些技巧,不仅可以提高代码的效率,还能确保代码的可读性和维护性。在编写PL/SQL程序时,应始终考虑异常处理、性能优化和代码的可扩展性。