什么是pl/sql语句_过程化SQL有三种循环结构

什么是pl/sql语句_过程化SQL有三种循环结构—认识PL/SQL   ***PL/SQL的使用几乎贯穿于整个Oracle的学习过程,也是作为一个初级开发人员必须掌握的重要知识点。   ***结构化查询语言(SQL)是用来访问和操作关系型数据库的一种标准通用语言,它属于第四代语言(4GL),       简单易学,使用它可以很方便地调用相应的语句来取得结果。该语言的特点就是非过程化。也就是说,使用       的…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

—认识PL/SQL

    *** PL/SQL的使用几乎贯穿于整个Oracle 的学习过程,也是作为一个初级开发人员必须掌握的重要知识点。

    ***结构化查询语言(SQL)是用来访问和操作关系型数据库的一种标准通用语言,它属于第四代语言(4GL),

        简单易学,使用它可以很方便地调用相应的语句来取得结果。该语言的特点就是非过程化。也就是说,使用

        的时候不用指明执行的具体方法和途径,即不用关注任何的实现细节。但这种语言也有一个问题,就是在某

       些情况下满足不了复杂业务流程的需求,这就是第四代语言的不足之处。

       Oracle 中的PL/SQL语言正是为了解决这一问题,PL/SQL属于第三代的语言(3GL),也就是过程化的语言,

       同Java  、C# 一样可以关注细节,用它可以实现复杂的业务逻辑,是数据库开发人员的利器。

  *** PL/SQL是Oracle 公司在标准SQL语言基础上进行扩展而形成的一种可以在数据库上进行设计变成的语言,

      通过Oracle 的PL/SQL 引擎执行。PL/SQL完全可以像Java语言一样实现逻辑判断条件循环以及异常处理

      等,这是标准的SQL很难办到的事情。由于它的基础是标准的SQL语句,这就使得数据库开发人员能快速地

      掌握并运用,相信这也是Oracle 开发人员喜欢它的另一个重要原因。总的来说,PL/SQL有以下几个特点

                 》》支持事务控制和SQL数据操作命令。

                 》》它支持SQL的所有数据类型,并且在此基础上扩展了新的数据类型,也支持SQL的函数以及

                        运算符

                 》》 PL/SQL可以存储在Oracle 服务器中

                 》》服务器上的PL/SQL程序可以使用权限进行控制

                 》》Oracle 有自己的DBMS包,可以处理数据的控制和定义命令

—PL/SQL的优势

      *** 由于PL/SQL语言是从SQL语言扩展而来,所以PL/SQL除了支持SQL数据类型和函数外,同时也支持

           Oracle对象类型。除此之外,同传统的SQL语言相比PL/SQL有以下几个优点

           (1)、可以提高程序的运行性能

                       标准的SQL被执行时,只能一条一条地向Oracle 服务器发送。假如完成一个业务逻辑需要几条

                甚至几十条SQL语句,那么在这个过程中,客户端会几十次地连接数据库服务器,而连接数据库本身

                是一个很耗费资源的过程,当这个业务被完成时,会浪费大量的资源在网络连接上。

                      如果此时换用PL/SQL语句,结果则不一样了。PL/SQL的语句块可以包含多条SQL语句,而语句

                块可以嵌套在程序中,甚至可以存储到Oracle 服务器上。这样用户只需要连接一次数据库就可以把

                需要的参数传递过去,其他的部分将在Oracle  服务器内部执行完成,然后返回最终的结果。这样就

                 大大地节省了网络资源的开销。

                                       什么是pl/sql语句_过程化SQL有三种循环结构

           (2)、可以使程序模块化

                        在程序块中可以实现一个或几个功能。例如,当想把一个动物的模型存到数据库里时,

               可能涉及几张表,如果使用标准的SQL完成该功能需要多条语句,而如果使用块,则可以把

               对多张表的操作都放到一个块内,而对外只提供一个调用方式和需要传入的参数。这对于

               编程开发人员是一个福音,他们不需要再写过多的SQL语句,只需要给出参数并调用一次

                PL/SQL 的程序块就好。这种操作的优势在介绍存储过程后显得尤其明显。

                          使用块也可以把数据库数据同客户程序隔离开来,使得数据库表结构发生变化时,对

                调用者的影响减小到最低程度。

           (3)、可以采用逻辑控制语句来控制程序结构

                         如果一个PL/SQL程序块中只能顺序地执行基本的SQL语句,那么它的意义实在有限。

                 而实际当中PL/SQL可以利用条件或循环语句来控制程序的流程,这么做就大大地增加了

                 PL/SQL 的实用性,我们可以利用逻辑控制语句完成复杂的普通的SQL语句完成不了的业务。

 

                  例如,实现如下的功能:产品很多种类,而在产品表中,产品的类型需要使用产品类型编码

                  替代,而不是名称,这样当输入记录的时候就需要把产品名称转换成产品编码,在PL/SQL

                  块中就可以利用 CASE 语句完成判断分类,并把产品名称转换成产品编码。而这些在标准的

                  SQL中很难实现,即便实现了也不是动态的数据。

 

           (4)、利用处理运行时的错误信息

                   标准的SQL在遇到错误时会提示异常。例如增加数据,一旦有异常就会终止,但是调用者却

                 很难快速地发现错误点在哪儿,即使发现出问题的地方也只能是告诉开发人员该语句程序本身

                 有问题,而不是逻辑上有问题。

 

                   例如:在产品表里增加数据时,数量只能是要求数值型,并没有更细的要求。假如增加的数据

                   中该字段部分是一个负数,正常来说是可以进入数据库的,但这在逻辑上是不允许的,因为

                   没有数量为负的产品。而利用PL/SQL就可以完全避免类似的问题,我们可以利用流程拒绝这

                   部分记录进入数据库。

 

                         利用PL/SQL 还可以成功处理一些程序上的异常,不至于因终止SQL操作,而造成调用SQL

                   的展示页面出现生硬的错误提示。

 

           (5)、良好的可移植性

                     PL/SQL可以成功地运行到不同的服务器中。例如,从windows 的数据库服务器下移植到Linux

             的数据库服务器下。也可把PL/SQL从一个Oracle 版本移植到其他版本的Oracle 中。

 

—PL/SQL的结构

             PL/SQL程序的基本单位是块(block),而PL/SQL块很明确地分三部分,其中包括声明部分执行

          部分异常处理部分。其中声明部分以 DECLARE 作为开始标志执行部分用 BEGIN 作为开始部分

          而异常处理部分以 EXCEPTION 为开始标志。其中的执行部分是必需的,而其余的两个部分则可选下面

          的一段文字描述了PL/SQL块的三部分:

            ————————————————————————————————————————————

            [ DECLARE ]               — 声明开始关键字

                                               /*  这里是声明部分,包括PL/SQL中的变量、常量以及类型等  */

            BEGIN                        — 执行部分开始的标志

                                                /*  这里是执行部分,是整个PL/SQL块的主体部分,该部分在

                                                   该部分在PL/SQL块中必须存在,可以是SQL语句或者程序流程

                                                    控制语句等  */

            [ EXCEPTION ]           — 异常开始部分的关键字

                                                /*   这里是异常处理部分,当出现异常时程序流程可以进入此处  */

            END ;                          — 执行结束标志

            ————————————————————————————————————————————–

 

              需要记住:无论PL/SQL程序段的代码量有多少,它的基本结构只是这三部分组成。下面将以3个示例

           演示PL/SQL 语句块的 3 种情况。

           【示例1】只有执行体部分的结构

               该示例只有执行体部分,也就是只有“ BEGIN…END; ” 部分,该语句块中将输出一句话,脚本如下:

                什么是pl/sql语句_过程化SQL有三种循环结构

                《执行效果》

                 打开SQL*Plus 执行,执行结果如上图。

                  从上图中可以看到“ SET SERVEROUTPUT ON”这么一行脚本,利用该脚本可以打开SQL*Plus

                的输出功能,否则会看不到输出的语句。

           【示例2】包含声明和执行体两部分的结构

                 该示例除了执行体外还有声明部分,具体操作是声明一个变量,然后为变量赋值,最后输出该

             变量的值。脚本如下:

                  什么是pl/sql语句_过程化SQL有三种循环结构

                   《执行效果》

                   打开SQL*Plus 并执行,执行结果如上。

                   通常在PL/SQL 编程中,变量都是存储动态得到的数据,这种情况在下一个示例中将演示。

                 【示例3】包含声明部分、执行体和异常部分的结构

                   什么是pl/sql语句_过程化SQL有三种循环结构

                  SELECT…INTO…语句是PL/SQL特有的赋值语句,该语句表示的意思是 SELECT 后面列出要

           查询的字段列表,INTO后面是变量名称,它表示把查询出来的值存储到变量中。这里有两个问题

           需要注意,就是 SELECT 列名顺序和INTO后面的变量名顺序要一一对应,还有就是该类型语句每

           次只能返回一条记录,如果返回记录超过一条或没有返回记录都会引发异常

—PL/SQL的基本规则

             PL/SQL中有一些基本的规范读者应该了解,在了解这些基础之后就可以学习更加严格的编程规范,

         这样才能写出高质量的代码,其他开发人员阅读起来也会有一个积极开朗的心态。下面列出初学者需

         要注意的规则:

              (1)、PL/SQL中允许出现的字符集

                          》》字母,包括大写和小写

                          》》数字,即 0~9

                          》》 空格、回车符以及制表符

                          》》符号包括 + 、- 、 *  、  /  、 <  、  >  、 =   、 !  、  ~  、  ^  、  ;  、 :  、 .  、 ‘  、 @ 、

                                                %  、 ,  、  ”  、  #  、  $  、  &   、  _   、|  、 (  、 )  、 [  、 ]   、 {  、 }  、?

              (2)、下面列出一些PL/SQL必须遵守的要求:

                          》》标识符不区分大小写。例如,TEST 同 Test 、test 是一样的。所有的名称在存储时都被

                                 修改成大写,这一点读者需要注意。

                          》》标识符中允许字母、数字、下划线,并且以字母开头

                          》》标识符最多30个字符

                          》》不能使用保留字。如与保留字同名必须使用双引号括起来

                          》》语句使用分号结束。即使多条语句在同一行,只要它们都正常结束,那么就没有问题。

                                  而且在语句块的结束标志 END 后面同样需要使用分号

                          》》语句的关键词、标识符、字段的名称以及表的名称等都需要空格的分隔

                          》》字符类型和日期类型需要使用单引号括起

              (3)、以下是为了增强代码的阅读性的相关建议,这些不是必须要遵守的,但通常情况下有些单位

                          也可能把这些规范作为硬性要求。

                          》》每行只写一条语句

                          》》全部的保留字、Oracle的内置函数、程序包以及用户定义的数据类型都用大写

                          》》所有的过程名称大写

                          》》所有的变量以及自建的过程或游标、触发器名称都要使用有意义的名称命名

                          》》命名应以“_”的连接方式,而不是用大小写混合的方式(如果只为了方便自己的阅读,可以

                                使用大小写混合)

                          》》变量前最好加上前缀,以表示该变量的数据类型、作用范围等

                          》》每个变量都应加上注释

                          》》在重要的程序段处都应加上注释

                          》》建议3个半角空格替代TAB键进行缩进

                          》》逗号后面以及操作符的前后都应加上空格

                          以上只是比较基本的规则,可以提高代码的可读性,在企业的每个项目小组中会根据实际的情况

                         做出更细的要求,甚至形成规范文档。在日常开发中应注意这些规范,形成良好的编程习惯。

—PL/SQL中的注释

             ***提高代码可读性的最有效的办法就是添加注释。工作中修改其他开发人员的程序是很常见的事,程序

                 如果没有注释,就会很难理解,这样导致的结果轻则会影响修改进度,重则会影响程序的开发进度,

               可见注释对程序是多么重要。通常情况下,程序的注释要求不能低于代码量的 20% ,注释也是程序的

                 一部分,所以开发人员要养成添加注释的好习惯。

             ***有注释的程序能使阅读者快速地了解代码实现的业务逻辑,并能理解程序的思路。这对自己和其他的

                 开发人员都是很有利的,甚至对公司来讲都是利远大于弊。Oracle 为使用者提供了两种注释方式,

                 它们分别是:

                                 》》单行注释:使用“_ _” 两个短划线,可以注释掉后面的语句

                                 》》多行注释:使用“ /*…*/ ” ,可以注释掉这两部分包含的部分

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/182984.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 电子元件-OMRON继电器详细讲解

    目录:一、什么是继电器1、继电器简述2、继电器的构造和原理3、继电器的用途示例4、继电器的分类5、电磁铁的分类6、继电器的动作说明二、一般继电器的使用方法1、继电器的工作和原理2、关于品质和可靠性3、继电器的试验方法三、一般继电器术语说明1、继电器全部2、继电器接点部3、继电器线圈部4、电气的性能5、现象与状态6、动作形态7、外形与形状四、一般继电器使用注意事项1、使用继电器时2、关于继电器的选择3、关于电路设计.

  • 微信小程序 onLoad与onShow之间传值「建议收藏」

    微信小程序 onLoad与onShow之间传值「建议收藏」在写一个页面的刷新效果,需求是在页面第一次进来时,做出一次数据加载,之后在页面有个评论操作,每次评论成功都将本页的数据进行刷新。考虑到如果刷新都用onLoad()的话,会造成比较大的资源浪费,所以,把需要进行数据刷新的部分放到onShow页面进行刷新。因为我的函数在加载评论数据的时候,需要一个bookid数值,传参到服务器这样才能获取相对应的数据。但是bookid是从上个页面通过option…

  • 微信公众号高质量技术贴-提炼总结

    微信公众号高质量技术贴-提炼总结微信公众号高质量技术贴过滤掉对自己感觉没有技术相关性的,或者是那种水贴对内容进行归类整理阅读完写下自己的读后感LINUX从无盘启动看Linux启动原理“只读内存”(ROM)—-“基本输入输出系统”(BIOS)—-“硬件自检”(POST)—-“启动顺序”(BootSequence)上电自检—-UEFI固件被加载—-加载UEFI应用—-启动内核及initramfs/sbin/init—-/etc/inittab—-etc/rcN.dLi

  • Idea主题风格插件Material Theme

    Idea主题风格插件Material Theme目录1idea插件material-theme设置2下载主题风格jar直接使用设置1idea插件material-theme偶然发现一款“暗黑系列”idea主题插件,感觉非常不错,分享一下~github:https://github.com/equinusocio/material-themeplugins安装完重启idea设置切换主题Edi…

  • unittest测试框架组成_unittest接口自动化

    unittest测试框架组成_unittest接口自动化一、unittest简介unittest是python的单元测试框架。unittest单元测试提供了创建测试用例,测试套件以及批量执行的方案,unittest在安装pyhton以后就直接自带了,直接importunittest就可以使用。作为单元测试的框架,unittest也是可以对程序最小模块的一种敏捷化的测试。在自动化测试中,我们虽然不需要做白盒测试,但是必须需要知道所使用语言的单元测试框架。利用单元测试框架,创建一个类,该类继承unittest的TestCase,这样可以把每

    2022年10月14日
  • sigaction 函数

    sigaction 函数linux信号的使用,推荐用sigaction

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号