现在的位置: 首页 > 数据库 > 正文

plsql学习笔记—plsql相关概念,以及基础结构

2019年09月17日 数据库 ⁄ 共 2023字 ⁄ 字号 评论关闭

plsql的定义:
1.PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言
  PL/SQL 是对 SQL 的扩展
2.支持多种数据类型,如大对象和集合类型,可使用条件和循环等控制结构
  可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑
  与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性
3.支持 SQL,在 PL/SQL 中可以使用:
  数据操纵命令
  事务控制命令
  游标控制
  SQL 函数和 SQL 运算符
4.支持面向对象编程 (OOP) 
  可移植性,可运行在任何操作系统和平台上的Oralce 数据库
  更佳的性能,PL/SQL 经过编译执行
5.与 SQL 紧密集成,简化数据处理。
  支持所有 SQL 数据类型
  支持 NULL 值
  支持 %TYPE 和 %ROWTYPE 属性类型
6.安全性,可以通过存储过程限制用户对数据的访问
  PL/SQL 引擎驻留在 Oracle 服务器中
  该引擎接受 PL/SQL 块并对其进行编译执行
----------------------------------------------------------------------
深入理解:
1.SQL是非过程语言,非过程,让我理解,就是不用你了解语句的
处理过程,而直接达到开发者的目的。如:select name from student
这条语句,就是向数据库说:‚我要学生的姓名‛,然后数据库就会返
回相应的字段值而我们并不知道它是如何处理的也基本无法控制。而
PL/SQL语言,则具备程序设计语言甚至高级程序设计语言的特点,
更好地满足我们对数据的操作。 
2.PL/SQL的优势可以概括为以下五点
 a.具备程序设计语言的特性(模块化、信息隐藏、面向对象等); 
 b.异常处理,PL/SQL具备异常处理的机制; 
 c.可移植,想想Java吧,看看两者有什么共同之处?PL/SQL的
   JVM就是Oracle Server,呵呵 
 d.改善性能,一方面,通过PL/SQL语句块(Block)可以一次性
   向Oracle Server发送多个SQL语句,减少网络的传输;另一方面,有 
  些PL/SQL可以在客户端执行(前提是某些客户端含有PL/SQL引
  擎),可以有效的减少与Oracle Server的交互;再有,PL/SQL通常会
  存储在Oracle数据库中,这对于网络程序来说真是天降福音,因为,
  这样一系列的处理交互,都可以以一个调用数据库本身存在的程序而
  完成,大大提高了性能。 
 e.可以与SQL交互,在PL/SQL中可以嵌入SQL的DML、DQL、
   TCL(事务控制语言)语句。
------------------------------------------------------------------
sql语句的回顾:
1.DQL:
  select dname, max(sal) -- 5 对列筛选(分组字段或聚集函数) 
from emp left outer join dept -- 1 确定表 
using(deptno) 
where deptno > 0 -- 2 确定行(记录) 
group by dname -- 3 将行分组   
having max(comm) is null or max(comm) > 0 -- 4 对组筛选   
order by dname -- 6 对结果集排序
2.为什么带有group by的select和having只能含有分组字段和聚集函数呢? 
答:因为group by分组后,只能对组进行操作了。也就是说,无论你是筛选行
  having还是列select,都要以组为单位进行,所以只能使用组共有的属性,除了
  分组字段外,只有像什么每组的最大值啊、最小值啊、平均值啊等等这些组的特
  性或叫 组员共有的特性。所以在使用时一定注意,带有group by后,having和select中只  能有-分组字段和聚集函数
-----------------------------------------------------
PL/SQL的分类: 
1.按照PL/SQL的运行环境,可以分为客户端PL/SQL和服务器端PL/SQL。
2.通常,我们(指开发者)接触到的PL/SQL都是存储在服务器Oracle数据库中的
3.按照形式,可分为命名的PL/SQL和匿名的PL/SQL,其中,命名的,又可以分为子程序和触    发器,而子程序又可以分为包、函数、过程。
----------------------------------------------------------
PL/SQL的基本结构如下: 
Declare 
  在这里可以定义变量、常量、异常等。 
Begin 
  在这儿可以写一些执行SQL或PL/SQL语句。 
Exception 
  这儿可以捕获并处理异常 
End;结束了,别忘了;
-----------------------------------------------

抱歉!评论已关闭.