第六章ORACLE复习提纲.doc

  1. 1、本文档共35页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第六章ORACLE复习提纲

第六章 PL/SQL基础 一、PL/SQL块 1、分类 无名块:动态构造,只能执行一次。 子程序:存储在数据库中的存储过程、函数及包等。当在数据库上建立好后可以在其他程序中调用它们。 触发器:当数据库发生操作时,会触发一些事件,从而自动执行相应的程序。 2、无名PL/SQL块结构 由声明部分、执行部分、异常处理部分三个部分组成,执行部分是必须的。 DECLARE /* 声明部分: 在此声明PL/SQL用到的变量,类型及游标,以及局部的存储过程和函数 */ BEGIN /* 执行部分: 过程及SQL 语句, 即程序的主要部分*/ EXCEPTION /* 执行异常部分: 错误处理 */ END; 3、PL/SQL写法 语句可以写在多行上 语法单位可以分为分隔符、标识符(包括保留字)、文字常量、注释 分隔符是有特殊意义的简单或复合符号,如: + - * / = @(访问远程数据库的符号) ;(语句结束符) != || --(单行注释) /* */(注释开始和结束) := 标识符 文字常量: 字符和日期文字常量必须使用单引号括起 数字常量可以是简单数值或科学计数法表示的数值 XeY表示X*10Y 二、使用变量 1、标识符 标识符名不能超过30个字符; 第一个字符必须为字母; 不分大小写; 不能用‘-’(减号); 不能是SQL保留字。 注意:一般不要把变量名声明与表中字段名完全一样,如果这样可能得到不正确的结果。 变量名不要与数据库中的列重名 本地变量或形参的名字优先于表名 数据库列名优先于本地变量的名字 2、数据类型 变量分为标量类型、复合类型、LOB类型和引用类型 标量数据类型 保存单个值 没有内部组件 CHAR[(maximum_length)]最大32767字节 VARCHAR2(maximum_length)最大32767字节 LONG 32760 字节 LONG RAW 32760 字节 RAW(长度) 最大32760字节 NUMBER[(precision,scale) BINARY_INTEGER 符号数 PLS_INTEGER符号数,占用内存更少,运算速度快 BOOLEAN,只能保存TURE、FALSE和NULL BLOB、CLOB、BFILE,保存了大对象的定位器(一个指向大对象存贮位置的指针) 复合数据类型 分为记录型和集合型 记录型将逻辑上相关的数据项组织成一个整体 集合型包括index by table(索引表)、nested table嵌套表、Varray变长数组,集合类型将数据集合作为一个对象来对待 记录型 必须包括一个或多个由标量型、记录型、索引表型字段,类似于C语言中的structure,使用记录型可以方便的从表中取出一行数据进行处理 记录中可以有任意多个字段 记录中的字段可以有初始值并被定义为NOT NULL 说明为NOT NULL的变量或字段必须有初始值或默认值 V_A number not null (:=123|default 3); 可以在任何PL/SQL块的声明部分定义记录类型 记录类型可以嵌套 定义记录类型: TYPE 记录类型名 IS RECORD (字段1[,字段2]…); 字段定义:字段名 {类型|变量名%TYPE|表.列%TYPE|表名%ROWTYPE} [[NOT NULL]{:=|DEFAULT}expr] 声明记录型变量:变量名 记录类型名; 类型定义:定义了类型的名字,结构,但不分配内存 变量声明:定义了变量的类型,同时分配内存 举例: 定义一个记录类型,保存职工的编号,last name和岗位 将101号职工的信息保存在记录变量中,使用dbms_output包输出信息 DECLARE TYPE emp_record_type IS RECORD (employee_id NUMBER(6)NOT NULL:=100, last_name employees.last_name%TYPE, job_id employees.job_id%TYPE); emp_record emp_record_type; begin select employee_id,last_name,job_id into emp_record from employees where employee_id=101; dbms_output.put_line(emp_record.employee_id); dbms_output.put_line(emp_record.last_name); dbms_output.put_li

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档