SQL-PL/SQL基础
SQL的4GL,对流程控制的支持不够,Oracle的PL/SQL是3GL。加入了流程控制、变量等支持能够在数据库层面上进行程序的设计。
PL/SQL的特点
1.支持事务控制和SQL.
2.数据类型在SQL的基础上进行了扩展。
3.PL/SQL可存储在Oracle数据库上。
4.能够对PL/SQL进行权限控制。PL/SQL的优势
1.能够提高横向的运行性能。
2.能够使程序模块化。
3.能够採用逻辑控制语句来控制程序的结构。
4.利用运行时的错误信息,做日志记录。
5.良好的移植性。PL/SQL的结构
pl/sql的基本单位是块。分为三部分:声明部分,运行部分和异常处理部分。
以declare作为開始标记。运行部分用begin作为标志,异常处理部分以exception作为标志。当中运行部分是必须有的。
[declare]
....
begin
...
[exception]
...
end;
比如:
仅仅包括运行体
begin
dbms.output.put_lin('运行体...');
end;
注意,在使用dbms_output之前要打开控制器输出开关:set serveroutput on;
包括声明和运行体两部分:
declare
v_result number(8,2);
begin
v_result = 100 / 6;
dbms_output.put_line('结果是:'||v_result);
end;
包括声明、运行体和异常处理三部分
declare
v_ename varchar2(20);
begin
select ename into v_ename from emp where empno=7369;
dbms_output.put_line('姓名:'||v_ename);
exception
when no_data_found then
dbms_output.put_line('没有该员工');
when too_many_rows_exeption then
dbms_output.put_line('数据过多');
end。
- PL/SQL中变量的使用
1.声明变量的语法结构
variable_name datatype[ [not null] {:=|default} expression];
2.常量声明
constant_name constant datatype
[not null]
{:=default} expression;
常量的datatype有下面三种:
1)标量类型:单一类型,不存在组合
2)复合类型:由几种单一类型组成
3)引用类型:使用其它数据项的引用
标量类型:
数值
number(pression,scade)
binary_integer
pls_integer
simple_integer
字符
char
varchar2
nvarchar
long
布尔类型
true/false/null
日期类型
date/datestamp
复合类型(先定义后声明变量)
记录类型声明语法
type type_name is recode
(
field_name datatype
[ [not null] {:=|default} expression]
[,field_name datatype
[not null]
{:=|default} expression
]
);
VARRAY变长数组:它是一个存储有序元素的集合。适合较少的数据使用。
声明语法:
type type_name is {varray} (size_limit) of element_type [not null]
- PL/SQL中的结构控制语句
1.IF条件语句
①
IF condition THEN
statement;
END IF;
②
IF condition THEN
statement;
ELSE
statement;
ENDF IF;
③
IF condition THEN
statement;
ELSE IF condition THEN
statement;
ELSE
statement;
END IF;
2.CASE语句
①简单case
[<<label_name>>]
CASE case_operate
WHEN condition THEN
statement;
[WHEN condition THEN
statement;]
[ELSE
statement;]
END CASE[<<label_name>>]
②搜索case
[<<label_name>>]
CASE
WHEN boolean_exp THEN statement;
[WHEN boolean_exp THEN statement;]
...
[ELSE statement;]
END CASE[<<label_name>>]
- LOOP循环控制语句
1.基本LOOP
[<<label_name>>]
LOOP
statement;
END LOOP [<<label_name>>];
基本loop语句通常和exit连用。否则会出现死循环
[<<label_name>>]
loop
....
exit when ...
| if ... exit;
2.WHILE..LOOP
[<<label_name>>]
when boolean_exp
loop
statement;
end loop[<<label_name>>]
3.FOR…LOOP
[<<label_name>>]
for index_name in
[REVERSE] //反向
lower_bound, upper_bound
loop
statement;
end loop[<<label_name>>]
SQL-PL/SQL基础的更多相关文章
- SQL PL/SQL语法手册
SQL PL/SQL语法手册 目 录 第一部分 SQL语法部分 3 一. CREATE TABLE 语句 3 二. CREATE SEQUENCE语句 5 三. CREATE VIEW语句 6 ...
- SQL & PL/SQL 模块总结
SQL 1. 各种function 2. merge 3. connect by PL/SQL 1. pl/sql 寄出 2. 游标 3. procedure 4. function 5. packa ...
- sql: PL/SQL proc
A PL/SQL block has the following structure: [DECLARE declaration_statements ] BEGIN executable_state ...
- Oracle数据库之PL/SQL基础
介绍PL/SQL之前,先介绍一个图像化工具:Oracle SQL Developer 在oracle的开发过程中, 我们难免会使用第三方开发的软件来辅助我们书写SQL, pl/sql是一个不错的sql ...
- PL/SQL编程基础(一):PL/SQL语法简介(匿名PL/SQL块)
PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/ ...
- PL/SQL编程基础——PL/SQL简介
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库 ...
- Oracle PL/SQL语句基础学习笔记(上)
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL ...
- 慕课网笔记之oracle开发利器-PL/SQL基础
实例1--if语句 /* 慕课网Oracle数据库开发必备之PL/SQL_2-3 判断用户从键盘输入的数字 1.如何使用if语句 2.接收一个键盘的输入(字符串) */ set serveroutpu ...
- oracle学习(二)pl/sql基础
pl/sql组成:DDL DML DCL pl/sql特点: SQL&PL/SQL编译器集成PL/SQL,支持SQL所有范围的语法 支持CASE语句和表达式 继承和动态方法释放 类型进化.属性 ...
- ORACLE PL/SQL编程详解
ORACLE PL/SQL编程详解 编程详解 SQL语言只是访问.操作数据库的语言,并不是一种具有流程控制的程序设计语言,而只有程序设计语言才能用于应用软件的开发.PL /SQL是一种高级数据库程序设 ...
随机推荐
- javabean 和 xml 互转
1.场景描述 将javabean对象转换为xml字符串,将xml字符串转换为javabean对象. 2.maven依赖 <dependency> <groupId>jdom&l ...
- 颜色框架Hue相关使用方法
Hue地址 cocoapods安装Hue pod "Hue" 导入框架 import Hue 将十六进制数字变成对应的颜色值 let color = UIColor.init(he ...
- POI不同版本替换Word模板时的问题
一.问题描述 通过POI,把Word中的占位符替换为实际的值,以生成复杂结构的业务报告. 在POI 3.9上,功能正常.由于某些原因升级到POI 3.10.1后,项目组反馈说Word模板出错,无法生成 ...
- 清理win10过期补丁的命令
作用是删除已经被新版本取代的旧系统文件 DISM.exe /Online /Cleanup-Image /StartComponentCleanup /ResetBase 注1: 执行后, 补丁就无法 ...
- Maven中settings.xml的配置项说明精讲
1.Maven的配置文件(Maven的安装目录/conf/settings.xml ) 和 Maven仓库下(默认的Maven仓库的是用户家目录下的.m2文件,可以另行制定)的settings.xml ...
- SQL server中事务的四个属性特征(ACID)
事务的概念.类型和四个特征(ACID). 1.事务(Transaction)是并发控制的单位,是用户定义的一个操作序列.这些操作要么都做,要么都不做,是一个不可分割的工作单位. 通过事务,SQL Se ...
- Python之re正则模块
正则表达式可以帮助我们更好的描述复制的文本格式,可以更好地利用它们对文本数据进行检索.替换.提取和修改操作. http://www.cnblogs.com/huxi/archive/2010/07/0 ...
- Liunx初学指令
今天又讲了一下Liunx操作系统,这个感觉比较简单一点了,多积极练练就好了,今天的课堂笔记重点如下: 1. 查看当做操作目录位置 > pwd 2. 查看(当前)目录里边的文件内容 > ls ...
- Celery 源码解析七:Worker 之间的交互
前面对于 Celery 的分布式处理已经做了一些介绍,例如第五章的 远程控制 和第六章的 Event机制,但是,我认为这些分布式都比较简单,并没有体现出多实例之间的协同作用,所以,今天就来点更加复杂的 ...
- 状态压缩- Brackets
标签: ACM 题目: We give the following inductive definition of a "regular brackets" sequence: t ...