oracle学习(二)pl/sql基础

  • pl/sql组成:DDL DML DCL
  • pl/sql特点:
    1. SQL&PL/SQL编译器集成PL/SQL,支持SQL所有范围的语法
    2. 支持CASE语句和表达式
    3. 继承和动态方法释放
    4. 类型进化。属性和方法可以添加到对象类型中,也可以从对象类型中删除,不需要重新构建类型和响应数据。这使得类型体系能够随着应用改变,不需要在开始的地方就规划好。
    5. ……
    6. 数据抽象
    7. 信息隐藏
  • 开发和运行环境:pl/sql编译和运行系统时一项技术而不是一个独立的产品,pl/sql能够驻留在oracle数据库服务器和开发工具两个环境中,pl/sql与oracle服务器捆绑在一起。在这两个环境中,pl/sql引擎接收任何pl/sql块和子程序作为输入,引擎执行过程语句将sql语句发送给oracle服务器的sql语句执行器执行。
  • 字符集:
    1. 所有的大写和小写英文字母
    2. 数字0-9
    3. 符号() + - * /< > = ! ~ ; : . ' @ % , “ # ^ & _ { } ? [ ]
  • 数据类型:
    • 常用数据类型:VARCHAR NUMBER DATE BOOLEAN
    • 变量
    • 常量
    • 对象类型
  • 基本程序结构和语句
    • 程序块基本结构
    • 几个结构框架
      1. 条件结构:
        1 IF<条件表达式>THEN
        2     <PL/SQL 语句>;
        3 END IF;
        1 IF<条件表达式>THEN
        2     <PL/SQL 语句>;
        3 ELSE
        4      <PL/SQL 语句>;
        5 END IF;
        1 IF<条件表达式1>THEN
        2    <PL/SQL语句1>;
        3 ELSIF<条件表达式2>THEN
        4    <PL/SQL语句2>;
        5 ELSE
        6     <PL/SQL语句3>;
        7 END IF;
      2. 循环结构
        1 LOOP
        2        <循环体>
        3        IF<条件表达式>THEN
        4             EXIT;
        5        END IF;
        6 END LOOP;
        1 LOOP
        2        <循环体>
        3         EXIT WHEN<条件表达式>
        4 END LOOP;
        1 WHILE<条件表达式>
        2          LOOP
        3               <循环体>
        4           END LOOP;
        1 FOR<循环变量名>IN<变量初值>..<变量终值>
        2       LOOP
        3             <循环体>
        4        END LOOP;
      3. CASE
        1 CASE<变量名>
        2      WHEN<值1>THEN<语句1>
        3      WHEN<值2>THEN<语句2>
        4       ...
        5      WHEN<值n>THEN<语句n>
        6      [ELSE<语句>]
        7 END CASE;
      4. GOTO
         1 GOTO<标号>
         2 <<标号>>语句
         3 eg:
         4 DECLARE 
         5        count NUMBER:=0;
         6 BEGIN
         7         LOOP
         8              count=count+1;
         9              IF count=10 THEN
        10                 GOTO loop_end;
        11               END IF;
        12         END LOOP;
        13     <<loop_end>>
        14      DBMS_OUTPUT.PUT_LINE('计数为10时退出循环');
        15 END;
        View Code
原文地址:https://www.cnblogs.com/yuelien/p/6627514.html