`
cjh820425
  • 浏览: 153881 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

oracle pl/sql

阅读更多

 

  ORACLE     PL/SQL

 

<!---->1.       <!---->PL/SQL SQL 语言存储过程的扩展 , 包括两部分 : 一部是数据库引擎部分 , 另一部分是可嵌入到其他许多产品 (C,JAVA) 工具中的独立引擎 . 可将这两部分称为数据库 PL/SQL 和工具 PL/SQL. 以下介绍的是数据库 PL/SQL

<!---->2.       <!---->PL/SQL 语言由以下几部分组成 :

<!---->1)      <!---->数据库定义语言 (DDL). 用于执行数据库中的任务 , 对数据库以及数据库中的各种对象进行创建 . 删除 , 修改 .

   

命令

功能说明

ALTER  PROCEDURE

重新编译存储过程

ALTER  TABLE

修改表

ANALYZE

收集数据库对象性能统计资料

ALTER  TABLE AND CONSTRAINT

在已有表上增加约束

CTREATE TABLE

创建表

CREATE  INDEX

创建索引

DROP   TABLE

删除表

DROP   INDEX

删除索引

 

<!---->2)      <!---->数据操纵语言 (DML). 用于操纵数据库中各种对象 , 检索 , 或修改数据 . 在使用 DML , 必须获得相应的权限 .

命令

功能说明

SELECT

查询数据库

INSERT

插入一行记录

UPDATE

修改数据库记录

DELETE

从表中删除数据

 

<!---->3)      <!---->数据控制语言 (DCL) 用于安全管理 , 确定哪些用户可以查看或修改数据库中的数据 ,DCL 包括的主要语句及其功能如下 :

命令

功能说明

GRANT

将用户或角色授与用户和角色

REVOKE

从用户或角色收回权限

 

PL/SQL 是面向过程的程序结构 , 包括以下几点 :

<!---->1)      <!---->变量和类型

<!---->2)      <!---->控制语句

<!---->3)      <!---->过程和函数

<!---->4)      <!---->对象类型和方法

<!---->3.       <!---->PL/SQL 结构 :

DECLARE

/** 变量声明 **/

BEGIN

  Statements

  Exceptions

END

其中变量声明和异常是可选的 .

<!---->4.       <!---->PL/SQL 标识符 : 所有的大小写英文字母 , 数字 0-9, 常用符号 ( ”-“), 最大标识符为 30 个字符

<!---->5.       <!---->PL/SQL 运算符 : 算术运算符 {+,-,*, / ,**( 指数 ),||( 连接 )}, 关系运算符 { 常用比较运算符 ,BETWEEN  AND ,IN ,LIKE,IS NULL}; 逻辑运算符 {AND , OR ,NOT}

<!---->6.       <!---->其他符号

   

符号

意义

样例

( )

列表分隔

(‘john’,’rose’)

;

语句结束

Procedure_name(arg1,arg2)

.

项分离

Select * from account.table

字符串定界符

If var1=’a+1’

:=

赋值

a:=a+1

||

并置

Fullname:=’a’||’b’

--

注释符

--this is a comment

/* */

注释定界符

/*this too is a comment*/

<!---->7.       <!---->PL/SQL 变量 : 变量的类型可以是 PL/SQL 中的 , 也可以是自定义的 .

变量的定义 :< 变量名 >< 数据类型 >[( 宽度 ):=< 初始值 >]

:count varchar2(20):=’1’;

 

变量的属性包括变量名和数据类型

%TYPE 属性提供了变量和数据列的数据类型 .

:my_xh XS.XH%TYPE 表示变量 my_xh 和字段 XH 拥有相同的数据类型 .

使用 %TYPE 有两个优点 :

<!---->1)      <!---->不必知道 XH 列的确切数据类型

<!---->2)      <!---->如果改变了 XH 的列定义 ,my_xh 的数据类型在运行时可自动修改 .

%ROWTYPE 用于声明表的行记录 . 对用户自定义的域 . 记录包含唯一的命名域 , 具有不同的数据类型 .

 

DECLARE

      TYPE TimeRec is RECORD (HH number(2),MM number(2));

      TYPE MeetingTyp is RECORD

      (

        Meeting_Date date,

        Meeting_Time TimeRec,-- 嵌套变量

        Meeting_Addr varchar2(20),

        Meeting_Purpose varchar2(50)

      

)

        DECLARE

                   cj_rec XS_KC%ROWTYPE

        引用

          my_xh := cj_rec.xh;

 

        如果使用了游标提取 XH,KCH,CJ,XF 则可以使用 %ROWTYPE 声明一个记录保存相同的信息 .

         DECLARE

         CURSOR

         IS

          SELECT XH,KCH,CJ

          FROM XS_KC

         Cj_rec c1%ROWTYPE;

         当执行下面的语句时

          FETCH c1 INTO cj_rec;

          XS_KC 表的 XH 列的值就是赋于 cj_rec XH

         变量的作用域 : 位于 BEGIN END 之间

         PL/SQL 常量定义 :

         < 常量名 >CONSTANT< 数据类型 >:=< >

         PL/SQL 常用数据类型 :

         VARCHAR 类型

         NUMBER 类型

         DATE 类型

         BOOLEAN 类型

         * 用户自定义数据类型

         语法格式 :

         TYPE typename IS system_data_type

         Typename 是用户自定义的数据类型名称 ,system_date_type 是自定义类型依赖的基类型

         定义一个记录类型

         TYPE xs_rec IS RECORD

         {

          Xh number(2) not null:=1;

          Xm char(8)

}

         数据类型转换 :

<!---->1)      <!---->TO_CHAR( NUMBER,DATE 转换成 VARCHAR2 类型 )

<!---->2)      <!---->TO_DATE( CHAR 转换成 DATE 类型 )

<!---->3)      <!---->TO_NUMBER: CHAR 转换成 NUMBER 类型

PL/SQL 的自动转换 :

<!---->1)      <!---->字符型和数字型

<!---->2)      <!---->字符型和日期型

   

<!---->8.       <!---->PL/SQL 基本程序控制结构 :

1. 条件结构 :

IF 逻辑结构 (3 种表达式 )

  1)IF-THEN

   语法结构 :

   IF boolean_expression THEN

Run_experssion;

           ENDIF;

        2)IF-THEN-ELSE

          语法格式 :

          IF boolean_expression THEN

                Run_expression;

          ELSE

                Run_expression2;

          ENDIF;

         3)IF-THEN-ELSIF-THEN-ELSE

          语法格式 :

          IF boolean_expression1 THEN

               Run_expression1;

          ELSIF boolean_expression2 THEN

                Run_expression2;

          ELSE

                Run_expression3;

          ENDIF;

        2. 循环结构

          1.LOOP – EXIT –END 循环

            语法格式 :

            LOOP

                 Run_expression ;

            IF boolean_expression THEN

                 EXIT;

            ENDIF;

            END LOOP;

          2.LOOP – EXIT-WHEN-END

            语法格式 :

            LOOP

                  Run_expression

             EXIT WHEN boolean_expression

             ENDLOOP

          3.WHILE-LOOP-END

语法格式 :

WHILE boolean_expression

LOOP

Run_expression

END LOOP

 

          4.FOR – IN –LOOP – END

语法格式 :

FOR count IN count_1 ..count_n

LOOP

Run_expression

END LOOP

   说明 :

   Count 是循环变量 ,IN 确定循环变量的初始值 count_1 和终值 count_n, 在循环变量之间的范围之间的是分隔符

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics