1、PL/SQL概述
1)概念
pl/sql(procedural language)是Oracle在标准sql语言的基础上的扩展,可以实现定义变量、使用逻辑控制语句等
作用:默认oracle一次只能处理一条SQL语句,每条SQL语句都会向服务器发送请求调用,如果使用PL/SQL,一个块中的语句作为一个组,只向服务器发送一次请求调用,减少了网络传输,节省带宽,提高效率,提高安全性
缺点:移值性差,只有oracle中可用
2)组成
pl/sql程序由块组成,由块可组成不同的程序形式,包括:匿名块、存储过程、函数、包、触发器等
3)注释
--单行注释
/*多行注释*/
4)命名
当定义变量时,建议以v_作为前缀:v_name
当定义常量时,建议以c_作为前缀:c_rate
当定义过程时,建议以p_作为前缀
当定义函数时,建议以fun_作为前缀
当定义包时,建议以pac_作为前缀
当定义游标时,建议以cur_作为前缀
当定义例外时,建议以err_作为前缀

2、块block
1)概述
块是pl/sql的基本组成单元,编写pl/sql实际上就是块
块由三部分组成:定义部分、执行部分、异常处理部分(例外处理部分)
定义部分declare:定义变量、常量、复杂数据类型、游标、异常等,可选
执行部分begin:要执行的sql语句或pl/sql语句,必选
异常处理部分exception:用来处理运行时的各种错误,可选

以上为常规基础。。。。。。。。。。。。。。。。开始吧
例1:只包含执行部分的pl/sql块
--打开输出,使pl/sql程序能够输出信息
set serveroutput on;(在Sqlplus中使用,用于打开oracle自带的输出方法dbms_output)

begin
  dbms_output.put_line('Hello Oracle!');
end;  
注:如果使用工具是类似sqlplus等终端工具以 /结束语句;(如下图)

例2:包含定义部分和执行部分的pl/sql块
定义变量语法:变量名 [constant] 数据类型 [not null]
为变量赋值:变量名:=变量值
注:常量在声明时必须赋初始值

注:常量在声明时必须赋初始值(上图为变量赋值方法)
例3:包含定义部分和执行部分的pl/sql块,使用查询为变量赋值(表数据为Oracle下scott账户自带表)
declare
  v_ename varchar2(20); 
  v_empno number(4);
begin
  v_empno:=&请输入雇员编号;
  select ename into v_ename from emp where empno=v_empno;
  dbms_output.put_line(v_empno||'的姓名:'||v_ename);
end;
注:红色部分为 提示输入数据,会根据使用平台的差异,提示方式不一样,所起到的效果类似于java下的Scanner提示输入。

例4:同时输出指定雇员的姓名和工资(查询多个值)
declare
  v_ename varchar2(20);
  v_sal number(7,2);
begin
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  dbms_output.put_line(v_ename||','||v_sal);
end;

注:into只能用于通过查询为变量赋值,对于增删改,需要使用returning into 赋值
例5:插入一个部门,将插入的部门信息显示出来
declare
  v_deptno number(4);
  v_dname varchar2(20);
  v_loc varchar2(30);
begin
  insert into dept values (50,'Development','NanJing') 
  returning deptno,dname,loc into v_deptno,v_dname,v_loc;
  dbms_output.put_line('编号:'||v_deptno||',名称:'||v_dname||',位置:'||v_loc);
end;

获取插入值的方法。
例6:包含定义部分、执行部分、异常处理部分的块(异常块处理)
declare
  v_ename varchar2(20);
  v_sal number(7,2);
begin
  select ename,sal into v_ename,v_sal from emp where empno=&no;
  dbms_output.put_line(v_ename||','||v_sal);
exception --异常处理
  when no_data_found then
  dbms_output.put_line('您查找的雇员不存在!');
end;
no_data_found为系统报错原因,根据异常原因,输出特定异常原因。

PL/SQL入门理解(一)的更多相关文章

  1. Oracle PL/SQL入门之慨述

    Oracle PL/SQL入门之慨述 一.PL/SQL出现的目的 结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,它属于第四代语言( ...

  2. PL/SQL 入门

    1. 概述 PL/SQL(Procedure Language/SQL)是 Oracle 对 sql 语言的过程化扩展,指在 SQL 命令语言中增加了 过程处理语句(如分支,循环等),使 SQL 语言 ...

  3. Oracle PL/SQL 入门

    PL/SQL 全称:Procedure Language/SQL.产生背景自己去百度. 模板: Declare ---变量定义 num ; name ) := 'damon'; idesc cnt_i ...

  4. Oracle PL/SQL入门语法点

    PL_SQL:带有分支和循环,面向过程匿名块:declare(可选,声明各种变量和游标的地方)begin(必要的,从此开始执行)exception(抓取到异常后执行的)end;[sql] view p ...

  5. PL/SQL入门随笔

    PL/SQL(Procedure Language/SQL) PLSQL是Oracle对sql语言的过程化扩展:在SQL命令语言中增加了过程处理语句(如分支.循环等),使SQL语言具有过程处理能力.S ...

  6. Oracle学习笔记之五,Oracle 11g的PL/SQL入门

    1. PL/SQL概述 PL/SQL(Procedural Language/SQL)是Oracle的专用语言,是对标准SQL语言的扩展,它允许在其内部嵌套普通的SQL语句,还可以定义变量和常量,允许 ...

  7. Oracle+PL+SQL从入门到精通.丁士锋.清华大学出版社.2012

    \t第1篇 pl/sql开发入门第1章 oracle 11g数据库系统1.1 关系型数据库系统介绍1.1.1 什么是关系型数据模型1.1.2 数据库系统范式1.1.3 关系型数据库管理系统1.1.4 ...

  8. PL/SQL基础语法入门

    先前安装了PL/SQL软件 PL/SQL全称为Procedural Language/SQL. PL/SQL也是一种程序语言,叫做过程化SQL语言,是Oracle数据库对SQL语句的扩展 打PL/SQ ...

  9. PL/SQL轻量版(一)——入门介绍

    一.概述 1.概念对比: SQL:结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目 ...

随机推荐

  1. 如何从线程返回信息——轮询、回调、Callable

    考虑有这样一个LiftOff类: /** * 类LiftOff.java的实现描述:显示发射之前的倒计时 * * @author wql 2016年9月21日 下午1:46:46 */ public ...

  2. C#冒泡排序法

    基本原理 比较两个相邻的数的大小,每次比较完后把最大的数放到本轮的末尾.假设有数组: 258,445,131,97,22,36,17,38,28,28,第一轮:258和445比较,位置不用交换.第二轮 ...

  3. 什么是SARG ?

    看书看到好几次这几个字母,每次都查,每次查完下次看到还忘记,还是得查. 简单的理解就是:sql查询语句查询过程中用到索引查找的是SARG写法 sql查询语句查询过程中未用到索引就是非SARG写法

  4. thinkphp怎么设置输入网址直接进入首页

    1.设置apache服务器的时候,文件的位置要写包含index.php的那个主文件夹. 2.apache和thinkphp默认index.html是作为网站的默认首页,所以在浏览器端可以直接输入网址进 ...

  5. 从零开始学 Java - 数据库连接池的选择 Druid

    我先说说数据库连接 数据库大家都不陌生,从名字就能看出来它是「存放数据的仓库」,那我们怎么去「仓库」取东西呢?当然需要钥匙啦!这就是我们的数据库用户名.密码了,然后我们就可以打开门去任意的存取东西了. ...

  6. hibernate理解

    SSH框架: Struts框架, 基于mvc模式的应用层框架技术! Hibernate,基于持久层的框架(数据访问层使用)! Spring,创建对象处理对象的依赖关系以及框架整合! Dao代码,如何编 ...

  7. gulp压缩css文件跟js文件

    越到最后啊 就越发现,真的很理解那句话 就是自己多学一点一点知识,就少一句问别人的东西 这是多么痛苦的领悟 今天需要压缩css跟js文件 然后不懂啊 就问别人啊 就问啊问啊 然后再上网了解啊了解啊 用 ...

  8. jquery投色子动画

    可以点击这里体验效果:http://keleyi.com/keleyi/phtml/jqtexiao/26.htm 效果图: 代码如下: <!DOCTYPE HTML> <html& ...

  9. Sass-也许你想和CSS玩耍起来(上篇)

    我们努力,我们坚持,共勉! 众所周知,css其实不是一门编程语言,熟悉的人都知道css全称Cascading Style Sheets(层叠样式表)是一种用来表现HTML(标准通用标记语言的一个应用) ...

  10. 使用独立模式安装Sharepoint Server 2013出现创建示例数据错误的解决方案

    使用独立模式安装Sharepoint Server 2013,允许配置向导到第8步创建示例数据时,出错了! Exception: System.ArgumentException: The SDDL ...