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是一种高级数据库程序设 ...
随机推荐
- WPF TextBox按字节长度限制输入
前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度. 数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我 ...
- 绕过校园网WEB认证_dns2tcp实现
相信很多高校学生都有用WEB认证方式接入校园网的经历 拿我所在的大学为例,我们大学的校园网由联通公司承建,当我连上寝室的无线路由器后,浏览器会自动弹出一个由卓智公司开发的认证界面,如下图: 如果买了联 ...
- EF动态拼接查询
1.业务中遇到个问题,需要查询如某表的id为1或者2或者3,这里是根据传递参数获取如:传递1,2或者1,3或者1,2,3这里在sql中很好拼接如下: or id= or name=3//3代表另一个字 ...
- Java中Date日期字符串格式的各种转换
public class DateParserT { /** * Date 与 String.long 的相互转换 * @param args ...
- windows中更换Jdk版本不生效
本机已经安装了jdk1.7,而比较早期的项目需要依赖jdk1.6,于是同时在本机安装了jdk1.6和jdk1.7. 安装jdk1.6前,执行java -version得到 C:\Users\liuxi ...
- org.springframework.web.filter.DelegatingFilterProxy的作用
一.类结构 DelegatingFilterProxy类继承GenericFilterBean,间接实现了Filter,故而该类属于一个过滤器.那么就会有实现Filter中init.doFilter. ...
- css基础-选择器
CSS选择符(选择器) 一.各类选择器 选择符表示要定义样式的对象,可以是元素本身,也可以是一类元素或者制定名称的元素. 常用的选择符有十种左右 类型选择符,id选择符,class选择符,通配符,群组 ...
- python坑之input获取字符串
space = input("set user quotation:").strip() quotation = int(space* 1024 * 1024) print(quo ...
- NodeJS寻常小毛病
在写关于NodeJS项目中常遇到的小错误 此时用到的服务器是phpstudy中的MySQL 1. First argument must be a string or Buffer 解决方法: ...
- JS组件系列——Gojs组件,前端图形化插件之利器
前言:之前分享过两篇关于流程画图的前端组件,使用的jsPlumb.这个组件本身还不错,使用方便.入门简单.轻量级,但是使用一段时间下来,发现一些弊病,比如组件不太稳定,初始进入页面的时候连线的样式有时 ...