PL/SQL 高级语言查询

原创 2016年05月31日 20:21:42

一.PL/SQL l语言:

1.数据定义语言 DDL
2.数据操作语言 DML
3.数据控制语言 DCL
PL/SQL 语言实现了将过程结构和Oracle SQL的无缝集成

二.PL/SQL 的好处:

1.有利于客户服务器环境的运行。
2.分为数据库PL/SQL和工具PL/SQL,在客户端可将PL/SQL嵌入到到工具中

三. plsql 编程:

declare
i number; – 声明变量
name employees.first_name%type; – 列类型
rows employees%rowtype; – 行类型
– 代码块
begin
i := 10; – 赋值
–输出
dbms_output.put_line(‘i = ’ || i);
end;
1.简单的循环
—s输出2 4 6 8 10
DECLARE
i NUMBER :=2;—–赋值‘:=’
BEGIN
WHILE(i<=10) LOOP—-while循环如果相等用‘=’
dbms_output.put_line(i||’hello word’);
i:=i+2;
END LOOP;
END; —–注意:end后加;

—exit when
DECLARE
i NUMBER :=2;–赋值
BEGIN
LOOP
dbms_output.put_line(i||’hello word’);
EXIT WHEN i=10; –要有;
i:=i+2;
END LOOP;
END;

—for循环
DECLARE
k NUMBER;
BEGIN
FOR i IN 1..5 LOOP
k:=i*2;
dbms_output.put_line(k||’hello word’);
END LOOP;

if elsif语句
declare
score number;
begin
score:=&score;
if score >= 90 then
dbms_output.put_line(‘成绩A’);
elsif (score >= 80) then – elsifzhu注意中间没有e
dbms_output.put_line(‘成绩B’);
elsif score >= 60 then – elsif
dbms_output.put_line(‘成绩C’);
else—-最后一个用else
dbms_output.put_line(‘测试不通过‘);
end if; – 结束if语句
end;

练习
1.–查询50号部门 工资最低的编号 first_name
declare
did employees.department_id%type;
eid number;
name employees.first_name%type;
begin
did:=&did;—–输入员工id
select employee_id,first_name into eid,name
from employees—-先查到员工工资最低
where salary = (select min(salary) from employees where department_id=did)
and department_id=did;
dbms_output.put_line(‘50号部门最低工资 员工 :’ || eid || ‘,’ || name);
end;
2.– 100元 100鸡 公鸡 5 /个 母鸡 3 小鸡 3 / 1元
算法:100=i * 5 + j * 3 + k / 3 ;
100 = i + j + k;

declare
k number;
begin
for i in 0..20 loop
for j in 0..33 loop
k:= 100 - i - j;– 小鸡数量
if i * 5 + j * 3 + k / 3 = 100 then
dbms_output.put_line(‘公鸡: ’ || i || ‘, 母鸡: ’ || j || ‘, 小鸡: ’ || k);
end if;
end loop;
end loop;
end;

版权声明:本文为博主原创文章,未经博主允许不得转载。

PL/SQL的应用操作实例以及解析

declare msg char(15);--定义变量 begin msg:='hell';--赋值 dbms_output.put_line(msg); end; -...
  • liuxiaogangqq
  • liuxiaogangqq
  • 2013年04月09日 20:13
  • 2217

PL/SQL性能优化技巧

1、理解执行计划 1-1.什么是执行计划     Oracle数据库在执行sql语句时,oracle的优化器会根据一定的规则确定sql语句的执行路径,以确保sql语句能以最优性能执行.在oracle...
  • sinat_16382631
  • sinat_16382631
  • 2016年10月04日 17:23
  • 732

PL/SQL的高级查询

1 With子句 1.1 学习目标 掌握with子句用法,并且了解with子句能够提高查询效率的原因。 1.2 With子句要点 1. with子句的返回结果存到用户的临时表空间中,只做一次查...
  • meunsina
  • meunsina
  • 2013年10月28日 12:41
  • 991

PL/SQL和SQLPLUS查询结果不一样——千万别忘记commit!

同样的sql语句,在PLSQL和SQLPLUS中的查询结果不一样,您见过吗?今天在测试刚安装的oracle时发现在sqlplus和PLSQL中查询到的数据不一致,上网百度,重要找到了原因,本想着自己总...
  • u010955843
  • u010955843
  • 2015年07月07日 17:04
  • 948

PL/SQL简介与简单实用

一、PL/SQL简介: (1)PL/SQL俗称过程化SQL语言(Procedural Language/SQL),是Oracle对SQL的 过程化扩充 而形成的程序开发语言。在普通SQL语句的使用...
  • super_YC
  • super_YC
  • 2017年04月03日 04:59
  • 325

Oracle PL/SQL语句基础学习笔记(上)

PL/SQL语句基础学习笔记(上)
  • wahaa591
  • wahaa591
  • 2015年06月26日 11:41
  • 3285

pl/sql 过程、函数

pl/sql中proceduce过程与func函数均为一个程序块,是为完成特定功能的pl/sql语句集。并可接受三种类型的参数。 相同点在于: 1.均可使用out类型参数返回值。 2.均由声明、执行和...
  • Alexander_Frank
  • Alexander_Frank
  • 2016年04月11日 15:05
  • 718

Oracle 11g 的PL/SQL函数结果缓存

模仿Oracle性能诊断艺术中的例子做了两个试验,书上说如果不用RELIES_ON,则函数依赖的对象发生的变更操作就不会导致结果缓存的失效操作(result_cache RELIES_ON(test1...
  • guogang83
  • guogang83
  • 2014年08月04日 19:59
  • 1274

PL/SQL Developer_如何快速获得表名或全部列名的文本形式

操作过程: 例1:以“逗号”格式获取“用户表名”的文本 使用scott登陆到PL/SQL Developer,在All objects框处找到Tables选项,右击看到“Copy comma sep...
  • xwnxwn
  • xwnxwn
  • 2016年11月29日 09:14
  • 1428

PL/SQL 存储过程入门小例子

1.为什么要有存储过程? 过程是指用于执行特定操作的PL/SQL块。如果客户应用经常需要执行特定操作,那么可以考虑基于这些操作建立过程。(类似C函数,Java方法) 2.oracle的存储过程里的传递...
  • dazengq
  • dazengq
  • 2015年06月12日 13:50
  • 3310
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PL/SQL 高级语言查询
举报原因:
原因补充:

(最多只允许输入30个字)