设为首页 加入收藏

TOP

Oracle 11g基础学习--(4)PLSQL语言基础(一)
2014-11-24 07:16:32 来源: 作者: 【 】 浏览:7
Tags:Oracle 11g 基础 学习 PLSQL 语言基础

学习Oracle从哪里入手呢,在这里,我将带你走进Oracle的大门,一天一章,7天入门不是梦

1. PL/SQL语言简介

PL/SQL是Oracle在标准SQL语言上的过程性扩展 允许嵌入SQL语句,定义变量和常量,允许过程语言结构(条件分支语句和循环语句),允许使用异常来处理Oracle错误PL/SQL可以用于创建存储过程、触发器和程序包等,也可以用于处理业务

规则、数据库事件或给SQL命令的执行添加程序逻辑

1.2 PL/SQL优点提高应用程序的运行性能提供模块化的程序设计功能允许定义标识符具有过程语言控制结构具有良好的兼容性处理运行错误

1.3 PL/SQL块所有的PL/SQL程序都以块作为基本单位块中包含过程化语句和SQL的DML语句。这些块可以按顺序出现,也可以相互嵌套(一个块在另一个块的内部)块的分类匿名块匿名块是出现在应用程序中的没有名字且不存储到数据库中的块匿名块出现在SQL语句可以出现的地方,它们可以调用其他程序,却不能被其他程序调用命名块命名块是一种带有标签的匿名块,标签为块指定了一个名称子程序子程序是存储在数据库中的过程(procedure)、函数(function),生成之后可以被多次执行程序包程序包是存储在数据库中的一组子程序、变量定义程序包中的子程序可以被其他程序包或者子程序调用触发器触发器是一种存储在数据库中的命名块,生成之后可以被多次执行在相应的触发器事件发生之前或之后就会被执行一次或多次

2. 程序结构组成部分PL/SQL是Oracle在标准SQL语言上的过程性扩展 允许嵌入SQL语句,定义变量和常量,允许过程语言结构(条件分支语句和循环语句),允许使用异常来处理Oracle错误PL/SQL可以用于创建存储过程、触发器和程序包等,也可以用于处理业务 规则、数据库事件或给SQL命令的执行添加程序逻辑

2.2 PL/SQL注释单行注释单行注释可以在一行的任何地方由两个短横线(--)开始,并且直到该行的最后多行注释多行注释由“/*”开始、“*/”结束,可以跨越多行,但不允许嵌套

2.3 常量与变量在声明部分中可以声明需要使用的常量、变量、函数、游标、异常处理名称 声明identifier_name [CONSTANT] data_type [NOT NULL][:= value_expression] | [DEFAULT value_expression]参数 说明identifier_name 指定需要声明的常量、变量的名称data_type 指定数据类型:= 赋值运算符DEFAULT 给变量赋予默认值value_expression 赋值表达式CONSTANT 表明声明的是一个常量NOT NULL 表明声明的变量不能为空除了可以使用常量来给变量赋值之外,还可通过SELECT INTO语句将从数据库表中查询的结果赋予变量

2.4 数据类型CHAR CHAR表示固定长度字符串,长度不够的使用空格来补充,最多可以存储2000字节VARCHAR2 VARCHAR2表示可变长度字符串,最多可以存储4000字节NUMBER NUMBER类型可以存储正数、负数、零、定点数和精度为38位的浮点数DATE类型DATE数据类型用于存储表中的日期和时间数据DATE类型的长度是7,7个字节分别表示世纪、年、月、日、时、分和秒TIMESTAMP类型TIMESTAMP数据类型用于存储日期的年、月、日、小时、分和秒值。其中,秒值精确到小数点6位,该数据类型同时包含时区信息CLOB大字符串对象类型CLOB数据类型用于存储可变长度的字符数据,最多可存储4GB 该数据类型用于存储VARCHAR2类型不能存储的长文本信息BLOB大二进制类型BLOB数据类型用于存储较大的二进制对象,如图形、视频剪辑和声音剪辑等,该类型最多可以存储4GB数据%TYPE数据类型当定义PL/SQL变量存放值时,必须确保变量使用合适的数据类型和长度,否则可能会在运行过程中出现PL/SQL运行错误 为了避免这种不必要的错误,可以使用%TYPE属性来定义变量

当使用%TYPE属性定义变量时,Oracle会自动地按照数据库列或其他变量来确定新变量的类型和长度%ROWTYPE数据类型如果一张表中包含较多的列,则可以使用%ROWTYPE来定义一个表示表中一行记录的变量 为了使一个变量的数据类型与一张表中记录的各个列的数据类型对应一致,Oracle提供了%ROWTYPE定义方式RECORD数据类型PL/SQL记录类似于高级语言中的结构,每个PL/SQL记录一般都包含多个成员

当使用PL/SQL记录时,首先需要在定义部分定义记录类型和记录变量,然后在执行部分引用该记录变量 当引用记录成员时,必须将记录变量作为前缀,格式为:记录变量.记录成员TYPE record_name IS RECORD( v1 data_type1 [NOT NULL] [:=default_value], v2 data_type2 [NOT NULL] [:=default_value], vn data_typen [NOT NULL] [:=default_value]);TABLE数据类型TABLE(索引表)相当于一个键值集合,键是唯一的,用于查找对应的值。键可以是整数或字符串TYPE table_name IS TABLE OF element_type [NOT NULL]INDEX BY [BINARY_INTEGER | PLS_INTEGER | VARCHAR2];VARRAY数据类型VARRAY(数组)是具有相同数据类型的一组成员的集合。每个成员都有一个唯一的下标,它取决于成员在数组中的位置 语法TYPE varray_name IS VARRAY(size) OF element_type [NOT NULL]; varray_name是VARRAY数据类型的名称size指定可以容纳的成员的最大数量,每个成员的数据类型是element_type对于VARRAY数据类型而言,首先的3个步骤是定义、声明、初始化。这3个步骤缺一不可,否则就会在后面的使用过程中出错。在引用VARRAY数组中的成员时,需要在一对括号中使用顺序下标,下标从1开始3. 流程控制IF 条件表达式THEN 语句段END IF;IF 条件表达式THEN 语句段1ELSE 语句段2END IF;IF 条件表达式1 THEN语句段1ELSIF 条件表达式2 THEN语句段2ELSIF 条件表达式3 THEN语句段3......ELSIF 条件表达式n语句段nEND IF;

3.1 条件控制CASE 表达式WHEN 条件表达式结果1 THEN语句段1;WHEN 条件表达式结果2 THEN语句段2;......ELSE语句段n;END CASE;CASEWHEN 条件表达式结果1 THEN语句段1;WHEN 条件表达式结果2 THEN语句段2;......ELSE语句段n;END CASE;

3.2 循环控制基本循环:LOOP语句段;EXIT [WHEN 条件表达式]END LOOP;EXIT语句必须放在循环体内,且只能退出循环体,不能退出PL/SQL块。当需要退出PL/SQL块时,应该使用RETURN语句WHILE循环WHILE 条件表达式LOOP语句段;END LOOP;FOR循环 当使用基本循环或WHILE循环时,需要定义循环控制变量 当使用FOR循环时,Oracle会隐含

首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇oracle11g导入/导出工具Data Pump 下一篇Oracle基础知识--启动数据库,连..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Redis 分布式锁全解 (2025-12-25 17:19:51)
·SpringBoot 整合 Red (2025-12-25 17:19:48)
·MongoDB 索引 - 菜鸟 (2025-12-25 17:19:45)
·What Is Linux (2025-12-25 16:57:17)
·Linux小白必备:超全 (2025-12-25 16:57:14)