Oracle PL/SQL自学(一):初识PL/SQL

1、学习Oracle的动机
曾从事嵌入式开发工作,主要在Linux C++环境下进行应用开发,工作涉及的数据库相关内容很少,主要是通过Proc*C实现对PL/SQL接口的调用,数据库对于我来说是一个比较模糊的概念。
离开开发岗一年有余,想在日常闲暇时间先借助工具书《Oracle PL/SQL从入门到精通》对Oracle PL/SQL进行比较系统的入门学习,预计时间两个月,后续视情况选择性学习进阶技巧。
文中若有瑕疵处,烦请读者在评论区或发送私信予以斧正。

2、笔记样式
大体会选择以简介+例程+Q&A的方式进行记录。

3、关于软件安装
数据库版本选择Oracle 10g,数据库服务器,客户端,带可操作界面的SQL Developer的安装及配置在网络上有大量教程,在此不做赘述。

4、Q&A
4.1 Q:PL/SQL语言是一种什么样的程序设计语言/strong>
A:一种结构化的程序语言。

4.2 Q:PL/SQL提供了现代软件工程的那些主要特性/strong>
A:模块化、数据封装、信息隐藏、异常处理、面向对象的程序设计等。

4.3 Q:在基于Oracle的然健开发项目中,为什么首选的编程语言是PL/SQL/strong>
A:Oracle将许多常见的数据库程序设计功能集成在PL/SQL中,使用PL/SQL
相较其他编程语言更方便简洁。

4.4 Q:除了包括过程语句之外,PL/SQL还可以包括什么语句/strong>
A:SQL语句。

4.5 Q:PL/SQL引擎是怎样编译和执行PL/SQL程序的/strong>
A:PL/SQL首先对用户提交的PL/SQL程序块进行语法分析,将过程化(PL/SQL)语句与SQL语句进行剥离,将PL/SQL语句交给过程语句执行器执行,而将SQL语句传递给SQL语句执行器执行。

4.6 Q:为什么使用PL/SQL可以改进系统的整体性能并减少网络流量/strong>
A:PL/SQL将所有逻辑相关的SQL放在一个PL/SQL程序块中,一次性发给服务器执行,大幅度减少了用户访问数据库的次数,相应地减少了网络流量消耗。

4.7 Q:在PL/SQL中模块化是如何实现的/strong>
A:通过使用过程、函数和软件包来实现。(这一点,后续会详细展开)

4.8 Q:PL/SQL程序设计语言具有哪些主要优势/strong>
A:
① 开发成本最低(因为PL/SQL引擎集成在Oracle数据库服务器中)。
② 应用系统的开发简单、快捷(因为许多与数据库有关的程序功能已经集成在PL/SQL语言中)。
③ 方便Oracle数据库应用系统的开发(因为许多Oracle的管理和维护工具,以及调用工具都是以PL/SQL软件包的方式提供的)。
④ 方便分布式应用系统的开发(PL/SQL引擎集成在一些开发和部署工具中)。
⑤ 在使用过程化的语言控制结构进行编程的同时又可以使用SQL语句。
⑥ 可移植性非常好。
⑦ 标识符(如变量等)必须先声明(定义)后引用。
⑧ 具有完善而高效的异常处理功能。

4.9 Q:了解PL/SQL程序块结构,以及组成这种结构的三种程序段。
A:
① 声明段(可选):以DECLARE开始并以执行段的开始而结束,定义所有 在执行段和其他声明段中饮用的变量、游标和用户定义的异常。
② 执行段(必须):以BEGIN开始以END结束,在此段中可以嵌套任意
量的PL/SQL程序块。
③异常处理段(可选):以EXCEPTION开始,可以被嵌套在执行段中。当执行段中的错误和异常条件抛出时,就要执行异常处理程序的代码。
例程:

4.10 Q:PL/SQL程序的构成方式/strong>
A:由至少一个程序块构成,程序块有三种类型:匿名块、过程和函数。

4.11 Q:创建、编译和执行PL/SQL程序块的具体步骤/strong>
A:打开dos窗口 > 输入sql 账号/密码 > 输入语句 > 输入 “/” 执行。

4.12 Q:在PL/SQL中怎样输出信息/strong>
A:通调用DBMS_OUTPUT软件包中的过程PUT_LINE进行输出。
注意:若没有出现输出信息,则需要以下指令手动开启该软件包功能。

4.13 Q:在使用中文字符串时应该注意什么/strong>
A:在声明段声明变量,简化程序,提高程序的可维护性。
例程:

输出:

5.总结
本章内容主要是PL/SQL入门相关,介绍了PL/SQL的特性、优势和结构,并编写一段简单的测试代码。接下来会简单学习一些常用的SQL*PLUS的命令。

文章知识点与官方知识档案匹配,可进一步学习相关知识MySQL入门技能树SQL高级技巧CTE和递归查询31851 人正在系统学习中

来源:嵌入式_小张

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年2月22日
下一篇 2020年2月22日

相关推荐