十二、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. jdk版本对应数字

    org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.springfr ...

  2. 移植SDL最新版本(转)

    原文出自:http://blog.csdn.net/flyyang123456789/article/details/17223485 首先 将所要移植的包准备好  有 SDL2-2.0.1.tar. ...

  3. Linux下用文件IO的方式操作GPIO(/sys/class/gpio)(转)

    通过sysfs方式控制GPIO,先访问/sys/class/gpio目录,向export文件写入GPIO编号,使得该GPIO的操作接口从内核空间暴露到用户空间,GPIO的操作接口包括direction ...

  4. spring boot打包部署到Linux环境

    打包部署说白了就两步:打包.部署.废话不多说,直接拿spring boot自动生成的项目骨架,再添加一个文件用来演示: package com.crocodile.springboot; import ...

  5. column count of mysql.proc is wrong. expected 20,found 16. the table is probably corruptd.

    1558 1547 column count of mysql.proc is wrong. expected 20,found 16. the table is probably corruptd. ...

  6. Linux下Moodle平台的快速安装方案

    一种快速安装与配置Moodle平台的方案,基本步骤: 1.选择与安装Linux系统 2.配置网络,开启shh和网络端口 3.一键安装集成环境(使用oneinstack方案) 4.服务器配置,端口和PH ...

  7. RK3288 红外遥控器增加自定义按键

    转载请注明出处:https://www.cnblogs.com/lialong1st/p/10071557.html CPU:RK3288 系统:Android 5.1 1.在 dts 中增加红外遥控 ...

  8. 给VS类文件添加默认头注释

    找到类文件所在路径:C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\ItemTemplatesCache\CSharp\ ...

  9. python使用scikit-learn计算TF-IDF

    1 Scikit-learn下载安装 1.1 简介 1.2 安装软件 2 TF-IDF基础知识 2.1 TF-IDF概念 2.2 举例说明计算 3 Scikit-Learn中计算TF-IDF 3.1 ...

  10. istio 配置https gateway

    沒有親手實驗,参考官方文档:  https://istio.io/docs/tasks/traffic-management/secure-ingress/