十二、PL/SQL
1、PL/SQL程序的结构和组成
示例:给员工涨工资(根据职位涨工资)
总裁涨1000
经理涨800
其他员工涨400

学习原因:1、操作数据库效率最高
2、为了后期的存储过程的学习

2、PL/SQL具体案例
set serveroutput on
----------打印Hello World
declare
-----说明部分(变量,光标或者例外)
begin
-----程序体
dbms_output.put_line('Hello World');
end;

put_line ----存储过程

查看方法
desc dbms_output

3、什么是PL/SQL程序?
(1)PL/SQL 意为过程语言的SQL
(2)PL/SQL是Oracel对sql语言的过程化扩展
--指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力.
(3)PL/SQL的提出
例1、为职工长工资,每人长10%的工资
update emp set sal=sal*1.1

特点:命令式的语言

例2、按职工的职称长工资,总裁长1000元,经理长800元,其他人员长400.(此问题应用PLSQL)

SQL语言的数据操纵能力+过程语言的数据处理能力=PL/SQL

PL/SQL是面向过程的语言:但是比过程语言更加的简单、高效、灵活、实用。

不同数据库的SQL扩展:
Oracle:PL/SQL
DB2:SQL/PL
SQl Server:Transac-SQL(T-SQL)

4、PL/SQL的程序结构
declare
说明部分(变量说明、光标申明、例外说明)
begin
语句序列(DML语句)
exception
例外处理语句
end;
/

说明部分:
定义基本变量

类型:
char,varchar2,date,number,boolean,long
举例:
var1 char(15);
married boolean :=true;
psal number(7,2);

例:
--使用基本变量类型
declare
--定义基本变量类型
--基本数据类型
pnumber number(7,2);
--字符串变量
pname varchar2(20);
--日期变量
pdate date;

set serveroutput on
begin
pnumber :=1;
dbms_output.put_line(pnumber);

pname:='Tom';
dbms_output.put_line(pname);

pdate:=sysdate;
dbms_output.put_line(pdate);

--计算明天的日期
dbms_output.put_line(pdate+1);
end;
语句序列部分
说明部分:
引用型变量
举例:
my_name emp.ename%type;

--定义引用型变量:查询并打印7839的姓名和薪水

set serveroutput on
declare
pename emp.ename%type;
psal emp.sal%type;

begin
select ename, sal into pename,psal from emp where empno=7839;
--打印员工薪水
dbms_output.put_line(pename||'的薪水是'||psal);
end;

记录型变量
举例:
emp_rec emp%rowtype;

记录型变量分量的引用
emp_rec.ename:='ADAMS';
--记录型变量:查询并打印7839的姓名和薪水

set serveroutput on
declare
emp_rec emp%rowtype;

begin
select * into emp_rec from emp where empno=7839;
--打印员工薪水
dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
end;

begin....end中间部分,如何使用if语句

1、if 条件 then 语句1;
语句2;
end if;

2、if 条件 then 语句序列1;
else 语句序列2;
end if;

3、if 条件 then 语句;
elsif 语句 then 语句;
else 语句;
end if;

事例:判断用户在键盘上输入的数字
说明:1、如何使用if语句
2、接收一个键盘输入(字符串)
set serveroutput on;
--接收一个键盘输入
--num:地址值 含义是:在该地址上保存了输入的值
accept num prompt '请输入一个数字(0或1或2)';

declare
--定义变量保存用户从键盘输入的数字
pnum number:=#

begin
--执行if语句进行条件判断
if pnum =0 then dbms_output.put_line('您输入数字是0');
elsif pnum =1 then dbms_output.put_line('您输入数字是1');
elsif pnum =1 then dbms_output.put_line('您输入数字是2');
else dbms_output.put_line('其他数字');
end if;
end;

循环语句:

(1)while循环
while total<=25000 Loop
...
total:=total+salary;
end loop;

(2)Loop循环
Loop
exit[when 条件];
....
end loop;

(3)for循环
for i in 1..3 loop
语序序列;
end loop;

事例1
--------使用while循环打印数字的1~10
set serveroutput on

declare
--定义循环变量
pnum number:=1;
begin
while pnum <=10 loop
--循环体
dbms_output.put_line(pnum);
--使该变量+1
pnum:=pnum+1;
end loop;
end;

事例2
---------使用loop循环打印数字的1~10
set serveroutput on

declare
--定义循环变量
pnum number:=1;
begin
loop
--退出条件:循环变量大于10
exit when pnum >10;
dbms_output.put_line(pnum);
--使该变量+1
pnum:=pnum+1;
end loop;
end;

事例3
---------使用for循环打印数字的1~10
declare
--定义循环变量
pnum number:=1;
begin
for pnum in 1..10 loop
dbms_output.put_line(pnum);
end loop;
end;

总结:
1、变量的定义
基本数据类型变量
引用型变量
记录型变量
2、循环和条件判断

涨工资未完成。

Oracle学习笔记(九)的更多相关文章

  1. Oracle学习笔记九 数据库对象

    Oracle 数据库对象又称模式对象,数据库对象是逻辑结构的集合,最基本的数据库对象是表. 其他数据库对象包括:  

  2. Oracle学习笔记三 SQL命令

    SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  

  3. oracle学习笔记第一天

    oracle学习笔记第一天 --oracle学习的第一天 --一.几个基础的关键字   1.select select (挑选) 挑选出显示的--列--(可以多列,用“,”隔开,*表示所有列),为一条 ...

  4. 多线程学习笔记九之ThreadLocal

    目录 多线程学习笔记九之ThreadLocal 简介 类结构 源码分析 ThreadLocalMap set(T value) get() remove() 为什么ThreadLocalMap的键是W ...

  5. MDX导航结构层次:《Microsoft SQL Server 2008 MDX Step by Step》学习笔记九

    <Microsoft SQL Server 2008 MDX Step by Step>学习笔记九:导航结构层次   SQL Server 2008中SQL应用系列及BI笔记系列--目录索 ...

  6. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  7. Go语言学习笔记九: 指针

    Go语言学习笔记九: 指针 指针的概念是当时学C语言时了解的.Go语言的指针感觉与C语言的没啥不同. 指针定义与使用 指针变量是保存内存地址的变量.其他变量保存的是数值,而指针变量保存的是内存地址.这 ...

  8. Oracle学习笔记——点滴汇总

    Oracle学习笔记——点滴汇总 http://www.botangdb.com/ Oracle GI = Grid Infrastructure = ASM + Cluster

  9. Oracle学习笔记之四sp1,Oracle 11g的常用函数

    从Oracle学习笔记之四,SQL语言入门中摘出来的,独立成一章节 3.1 字符类函数 ASCII(c)和CHR(i)    分别用于返回一个字符的ASCII码和返回给定ASCII值所对应的字符. C ...

随机推荐

  1. pthread信号

    信号是典型的异步事件.内核在某个信号出现时有三种处理方式: 忽略信号,除了SIGKILL和SIGSTOP信号不能忽略外,其他大部分信号都可以被忽略: 捕捉信号,也就是在信号发生时调用一个用户函数,注意 ...

  2. 【转】Vim自动补全插件----YouCompleteMe安装与配置

    原文网址:http://www.cnblogs.com/zhongcq/p/3630047.html 使用Vim编写程序少不了使用自动补全插件,在Linux下有没有类似VS中的Visual Assis ...

  3. linux shell获取用户输入

    一.获取用户输入1.基本读取read命令接收标准输入的输入,或其它文件描述符的输入.得到输入后,read命令将数据输入放入一个标准变量中.[root@rac2 ~]# cat t8.sh #!/bin ...

  4. bzoj 5006(洛谷 4547) [THUWC2017]Bipartite 随机二分图——期望DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=5006 https://www.luogu.org/problemnew/show/P4547 ...

  5. 查询反模式 - GroupBy和HAVING的理解

    为了最简单地说明问题,我特地设计了一张这样的表. 一.GROUP BY单值规则 规则1:单值规则,跟在SELECT后面的列表,对于每个分组来说,必须返回且仅仅返回一个值. 典型的表现就是跟在SELEC ...

  6. WinForm 弹窗

    private void FrmMyShow_Load(object sender, EventArgs e) { Rectangle r = Screen.GetWorkingArea(this); ...

  7. Linux新手入门:Unable to locate package错误解决办法

    最近刚开始接触Linux,在虚拟机中装了个Ubuntu,当前的版本是Ubuntu 11.10,装好后自然少不了安装一些软件,在设置了软件的源后,就开始了 sudo apt-get install,结果 ...

  8. 给iOS开发新手送点福利,简述UIActivityIndicatorView的属性和用法

    UIActivityIndicatorView 1.   activityIndicatorViewStyle 设置指示器的样式 UIActivityIndicatorViewStyleWhiteLa ...

  9. SQL Server修改表结构后批量更新所有视图

    最近修改了数据库表结构,数据同步的时候出了问题,发现很多数据明明已经修改,但是通过视图筛选出来的还是原来的数据,所以怀疑应该是视图缓存了数据,在园子里找到下面的博文,在这里做个记录备忘. 原文链接:h ...

  10. 前端开发中常用的CSS选择器解析(一)

    你也许已经掌握了id.class.后台选择器这些基本的css选择器.但这远远不是css的全部.下面向大家系统的介绍css中最常用的选择器,包括我们最头痛的浏览器兼容性问题.掌握了它们,才能真正领略cs ...