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是一种高级数据库程序设 ...
随机推荐
- hadoop命令
1.查看指定目录下内容 Hadoop dfs –ls [文件目录] eg: hadoop dfs –ls /user/wangkai.pt 2.打开某个已存在文件 hadoop dfs –cat [f ...
- ssh秘钥分发错误“/usr/bin/ssh-copy-id: ERROR: No identities found”
在做ssh的时候出现下面的错误,这个错误根本没有遇到过啊,仔细一看,后面的端口不对,我要发到的服务器端口是22,我想肯定是这个原因,结果不加端口,还是提示 这个错误,于是咨询下其他人,结果发现要分发的 ...
- Fiddler手机抓包图文教程
上篇Fiddler教程,我们教了大家Fiddler安装配置及如何使用Fiddler进行基本的Http抓包及模拟请求,今天给大家介绍下如何使用Fiddler进行手机抓包. 运行环境为Windows 10 ...
- Cocoapods使用过程中遇到的问题
前言:记录一些在CocoaPods使用过程中遇到的问题,本地环境:Xcode9.0 发现有的时候在执行pod init的时候不能正常地创建出来pod File文件,显示的错误如下: ――― MARKD ...
- Asp.Net MVC 使用 Ajax
Asp.Net MVC 使用 Ajax Ajax 简单来说Ajax是一个无需重新加载整个网页的情况下,可以更新局部页面或数据的技术(异步的发送接收数据,不会干扰当前页面). Ajax工作原理 Ajax ...
- [转载] Java NIO教程
转载自并发编程网 – ifeve.com http://ifeve.com/java-nio-all/ 关于通道(Channels).缓冲区(Buffers).选择器(Selectors)的故事. 从 ...
- 准备冲锋 golang入坑系列
史前摘要: 本来想写读前必读,但连续几篇博文都写读前必读,感觉就没有了新意. 所以换成史前摘要,反正是一个意思. 此摘要的目的仍然是提醒点击而来的同学,本系列最新文章在这里.放到博客园的目的是为了方便 ...
- 是用Epplus生成Excel 图表
1. 前言 这是我最近项目刚要的需求,然后在网上找了半天的教材 但是很不幸,有关于Epplus的介绍真的太少了,然后经过了我的不断研究然后不断的采坑,知道现在看到Excel都想吐的时候,终于成功的 ...
- linux配置远程Git仓库
一,安装git yum install git 二,在服务器(119.28.1.1)目录( /git/admin )上创建一个仓库 cd /git/admin touch aaa.html git i ...
- JavaEE中的MVC(四)AOP代理
咱们来吹牛,JDK的动态代理在AOP(Aspect Oriented Programming,面向切面编程)中被称为AOP代理,而AOP是Spring框架中的重要组成部分. 代理模式 但是什么是代理模 ...