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是一种高级数据库程序设 ...
随机推荐
- winform音频播放器(有声小说[凡人修仙传])
该程序采用多线程的技术及DataGridView单元格扩展的技术 1.获取下载列表 private void GetDownList() { //System.Web.HttpUtility.UrlD ...
- 转-Gitorious搭建步骤
先标记一下,后续手动验证 http://blog.csdn.net/king_sundi/article/details/7457475 安装Gitorious Git是一个分布式的版本控制系统,用于 ...
- curl安装
问题1: curl: error while loading shared libraries: libcurl.so.4: cannot open shared object file: No su ...
- Fedora 23建立wifi热点(Android手机可用)
在ubuntu14.04下使用ap-hotspot,速度还不错.但是在15.04下就用不了了,不知为啥.现在使用fedora23,在学校还是挺需要给手机连wifi的,于是google看看ap-hots ...
- javascript面向对象编程(OOP)——汇总
目录 一.JS的解析与执行过程 预处理阶段 执行阶段 二.作用域 块作用域 函数作用域 动态作用域 词法作用域 三.闭包 什么是闭包 闭包的好处 四.类与对象 对象 类 原型(prototype) t ...
- GameObject类及相关API
GameObject.Find(String name):查找一个名为name的游戏物体,并返回这个游戏物体,找不到返回null.(不到万不得已,不要在Update()中使用,建议在Start()中使 ...
- 教你3分钟读懂HTML5语言的特点
HTML5的跨平台技术 HTML5技术跨平台,适配多终端.传统移动终端上的Native App,开发者的研发工作必须针对不同的操作系统进行,成本相对较高.Native App对于用户还存在着管理成本. ...
- 理解defineProperty以及getter、setter
我们常听说vue是用getter与setter实现数据监控的,那么getter与setter到底是什么东西,它与defineProperty是什么关系,平时有哪些用处呢?本文将为大家一一道来. 对象的 ...
- VC++下编译 程序“减肥”
在vc6 和 vs 2008下 编译 以下代码,不更改任何编译设置(vc6 40k , s2008 7k). 一.vc6下,Release 模式 编译处理. 1.去掉不必要的 链接库 工程(Pro ...
- 深入理解 Android 消息机制原理
欢迎大家前往腾讯云社区,获取更多腾讯海量技术实践干货哦~ 作者:汪毅雄 导语: 本文讲述的是Android的消息机制原理,从Java到Native代码进行了梳理,并结合其中使用到的Epoll模型予以介 ...