PL/SQL基础操作笔记:查询与数据操纵
需积分: 11 175 浏览量
更新于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程序时,应始终考虑异常处理、性能优化和代码的可扩展性。
2008-12-01 上传
2008-10-21 上传
2009-01-05 上传
2009-02-16 上传
2013-07-20 上传
2012-02-23 上传
2012-05-22 上传
2012-11-09 上传
2009-11-16 上传
Jake443403168
- 粉丝: 47
- 资源: 387
最新资源
- SSM Java项目:StudentInfo 数据管理与可视化分析
- pyedgar:Python库简化EDGAR数据交互与文档下载
- Node.js环境下wfdb文件解码与实时数据处理
- phpcms v2.2企业级网站管理系统发布
- 美团饿了么优惠券推广工具-uniapp源码
- 基于红外传感器的会议室实时占用率测量系统
- DenseNet-201预训练模型:图像分类的深度学习工具箱
- Java实现和弦移调工具:Transposer-java
- phpMyFAQ 2.5.1 Beta多国语言版:技术项目源码共享平台
- Python自动化源码实现便捷自动下单功能
- Android天气预报应用:查看多城市详细天气信息
- PHPTML类:简化HTML页面创建的PHP开源工具
- Biovec在蛋白质分析中的应用:预测、结构和可视化
- EfficientNet-b0深度学习工具箱模型在MATLAB中的应用
- 2024年河北省技能大赛数字化设计开发样题解析
- 笔记本USB加湿器:便携式设计解决方案