PL/SQL 知识点总结

一、PL/SQL 程序结构

1、基本块结构

复制代码
DECLARE
  -- 变量声明部分(可选)
BEGIN
  -- 执行部分(必需)
EXCEPTION
  -- 异常处理部分(可选)
END;
/

2、设置输出环境

复制代码
SET SERVEROUTPUT ON;  -- 启用控制台输出

二、变量声明与使用

1、基本变量声明

复制代码
v_student_id VARCHAR2(20) := '20235104163';
v_empno NUMBER(4) := 7521;

2、使用 %TYPE 属性

  • 引用表中列的数据类型

  • 提高代码的可维护性

    v_empno emp.EMPNO%TYPE := 7521;
    v_ename emp.ENAME%TYPE;

3、使用 %ROWTYPE 属性

  • 声明记录变量,包含表的所有列

    v_emp emp%ROWTYPE;

三、数据操作语句

1、表创建

复制代码
CREATE TABLE table_name (
  column1 datatype,
  column2 datatype,
  ...
);

2、数据插入

复制代码
INSERT INTO table_name VALUES (value1, value2, ...);
COMMIT;  -- 提交事务

3、SELECT...INTO 语句

  • 将查询结果赋值给变量

    SELECT column_name INTO variable_name FROM table WHERE condition;

四、控制结构

1、条件判断 - CASE 语句

复制代码
-- 简单CASE语句
CASE expression
  WHEN value1 THEN result1
  WHEN value2 THEN result2
  ELSE default_result
END;

-- 搜索式CASE语句
CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ELSE default_result
END;

2、循环结构 - WHILE 循环

复制代码
WHILE condition LOOP
  statements;
  i := i + 1;  -- 循环控制变量更新
END LOOP;

五、输入输出功能

1、输出语句

复制代码
DBMS_OUTPUT.PUT_LINE('文本内容' || variable);

2、输入功能

  • 使用替换变量 & 接收用户输入

    v_empno := &v_empno;

六、常用函数

1、日期转换

复制代码
TO_DATE('1980-12-17', 'YY-MM-DD')

2、空值处理

复制代码
NVL(expression, replacement_value)
NVL(TO_CHAR(v_emp.COMM), '无')  -- 将NULL转换为'无'

七、重要特性总结

1、强类型语言

  • 所有变量必须声明类型

  • 支持基于表结构的类型引用

2、块结构编程

  • 支持模块化编程

  • 可以在块中声明局部变量

3、数据库集成

  • 可以直接在PL/SQL中执行SQL语句

  • 支持事务控制(COMMIT)

4、错误处理

  • 支持异常处理机制

  • 可以在块中捕获和处理错误

八、编程最佳实践

  1. 使用 %TYPE 和 %ROWTYPE 提高代码的健壮性和可维护性

  2. 及时提交事务 确保数据一致性

  3. 合理处理空值 避免运行时错误

  4. 使用循环控制变量 防止无限循环

  5. 添加适当的输出 便于调试和跟踪

相关推荐
Y***K43425 分钟前
MySQL网站
数据库·mysql
q***448129 分钟前
postgresql链接详解
数据库·postgresql
菜鸟‍43 分钟前
【后端学习】MySQL数据库
数据库·后端·学习·mysql
污斑兔1 小时前
腾讯云 CloudBase 数据库 CRUD 完整指南
数据库·云计算·腾讯云
tuokuac1 小时前
批量新增操作为什么要加@Transactional注解
数据库
q***9944 小时前
Redis的Spring配置
数据库·redis·spring
S***y3964 小时前
MySQL视频
数据库·mysql
周杰伦fans4 小时前
[特殊字符] 代理模式超详细讲解 ——.NET
数据库·c#·代理模式
YJlio4 小时前
「C++ 40 周年」:从“野蛮生长的指针地狱”到 AI 时代的系统底座
c++·人工智能·oracle
TDengine (老段)5 小时前
TDengine 转换函数 TO_JSON 用户手册
android·大数据·数据库·json·时序数据库·tdengine·涛思数据