网站首页 > 资源文章 正文
本文转自「开发者圆桌」一个10年老猿原创文章传播开发经验,尤其适合初学者或刚入职场前几年程序猿的微信公众号。
从PL/SQL的字面上来看,它和SQL有一定的关系,那么就从SQL开始讲一下它们俩兄弟之间的关系。
什么是SQL?
结构化查询语言(Structured Query Language,简称SQL)是用来访问关系型数据库一种通用语言,属于第四代语言(4GL),其执行特点是非过程化,即不用指明执行的具体方法和途径,而是简单地调用相应语句来直接取得结果即可。显然,这种不关注任何实现细节的语言对于开发者来说有着极大的便利。
那什么又是PL/SQL呢?
对于有些复杂的业务流程要求相应的程序来描述,这种情况下SQL就有些无能为力了。PL/SQL的出现正是为了解决这一问题,PL/SQL是一种过程化语言,属于第三代语言,它与C、 C++、Java等语言一样关注于处理细节,可以用来实现比较复杂的业务逻辑。
PL/SQL(Procedural Language/SQL)是数据库厂商在标准的SQL语言上的扩展。PL/SQL不仅允许嵌入SQL语言,还可以定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误,这使得它的功能变得更加强大。
我们需要知道的
我们需要了解以下几个关键点:
存储过程,函数,触发器是PL/SQL编写的
存储过程,函数,触发器是存储在数据库中的
PL/SQL是非常强大的数据库过程语言
存储过程,函数可以在C、 C++、Java、C#等程序中调用
PL/SQL开发工具有哪些?
首先,数据库厂商都会自带命令行开发工具,比如Oracle的SQL*PLUS、MySQL的MySQL Client、DB2的DB2CMD等等。
其次,会有一些集成开发环境(IDE),比较知名的有PL/SQL Developer(这个只适用Oracle数据库)、DbVisualizer、Navicat、SQLyog、Toad等等,这些IDE都是独立的第三方产品。其实,各数据库厂商也有自己的IDE,不过感觉没有特别好用的,基本上被第三方软件垄断,毕竟IDE不是数据库公司的强项嘛。
我们上面说的命令行工具以及集成开发环境都可以用来编写SQL或者PL/SQL程序,都属于PL/SQL的开发工具。
PL/SQL的程序结构
我们来大概浏览一下PL/SQL的程序结构,各数据库厂商的实现,会有所不同,下面以Oracle为例进行说明。
PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,其他两个部分可选。无论PL/SQL程序段的代码量有多大,其基本结构就是由这三部分组成。
程序结构模板
declare
/* 声明区(可选):定义类型和变量、声明变量、声明函数、游标 */
begin
/* 执行区(必须的):执行pl/sql语句或者sql语句 */
exception
/* 异常处理区(可选):处理错误的 */
end;
一个demo
/*声明部分,以declare开头*/
declare v_id integer;
v_name varchar(20);
cursor c_emp is select * from employee where emp_id=3;
/*执行部分,以begin开头*/
begin open c_emp; //打开游标
loop
//从游标取数据
fetch c_emp into v_id,v_name;
exit when c_emp%notfound ;
end loop ;
//关闭游标
close c_emp;
dbms_output.put_line(v_name);
/*异常处理部分,以exception开始*/
exception
when no_data_found then
dbms_output.put_line('没有数据');
end ;
还是没感觉?去动手做个小栗子吧
更多关于PL/SQL的用法可以点击微信公众号文章左下角的「阅读原文」查看,在置顶贴中罗列了Oracle、DB2、MSSQL、MySQL、PGSQL这些常用5种数据库的存储过程、函数、触发器的基本用法,可以作为每种数据库的PL/SQL程序模版来用,在此基础上开发复杂的PL/SQL程序。
猜你喜欢
- 2024-09-09 Oracle 查询命令合集:从新手到专家的指南
- 2024-09-09 数据迁移分享(数据迁移要注意什么)
- 2024-09-09 Oracle监听常见问题及解决办法(oracle19c监听)
- 2024-09-09 数据库工程师的岗位职责与任职要求有哪些?
- 2024-09-09 Oracle学习笔记(oracle入门教程)
- 2024-09-09 不用发送比特币,安华让你的数据库免受勒索
- 2024-09-09 慢性sql正在吃掉你的程序性能(sql执行存储过程语句)
- 2024-09-09 有什么办法可以查看Oracle SQL执行计划?这里告诉你五个方法!
- 2024-09-09 系统部署-(三)数据库ORACLE数据还原
- 2024-09-09 Oracle性能调优——查看执行计划(oracle 执行计划查看)
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- 电脑显示器花屏 (79)
- 403 forbidden (65)
- linux怎么查看系统版本 (54)
- 补码运算 (63)
- 缓存服务器 (61)
- 定时重启 (59)
- plsql developer (73)
- 对话框打开时命令无法执行 (61)
- excel数据透视表 (72)
- oracle认证 (56)
- 网页不能复制 (84)
- photoshop外挂滤镜 (58)
- 网页无法复制粘贴 (55)
- vmware workstation 7 1 3 (78)
- jdk 64位下载 (65)
- phpstudy 2013 (66)
- 卡通形象生成 (55)
- psd模板免费下载 (67)
- shift (58)
- localhost打不开 (58)
- 检测代理服务器设置 (55)
- frequency (66)
- indesign教程 (55)
- 运行命令大全 (61)
- ping exe (64)
本文暂时没有评论,来添加一个吧(●'◡'●)