PL/SQL概述

[b][size=medium]一. 什么是PL/SQL[/size][/b]
PL/SQL(Procedual Language/SQL)是Oracle在标准SQL语言上的过程性扩展。PL/SQL不仅允许嵌入SQL语句,而且允许定义变量和常量,允许使用条件语句和循环语句,允许使用例外处理各种错误。

[b][size=medium]二. SQL的简介[/size][/b]
20世界80年代初期,ANSI(American National Standards Institute)数据库标准委员会开始制定有关关系语言的标准。
直到1986年,数据库标准委员会才退出第一个SQL语言标准SQL-86。
随后根据数据库技术的发展,SQL标准不断的扩展和修正,又推出了SQL-89,SQL-92,SQL-99标准。
1979年,Relational Software公司(Oracle前身)首先向市场推出了SQL执行工具,Oracle完全遵从ANSI的SQL标准。截至到10g,已经集成到最新的SQL-99标准。

[b][size=medium]三. SQL语言的分类[/size][/b]
[list]
[*]数据查询语言(SELECT语句):用于检索数据库数据。在SQL所有语句中,SELECT语句的功能和语法最复杂、最灵活。
[*]数据库操纵语言(Data Manipulation Language,DML):用于改变数据库数据,包括INSERT,UPDATE和DELETE三条语句。
[*]事物控制语言(Transactional Control Language,TCL):用于维护数据的一致性,包括COMMIT,ROLLBACK和SAVEPOINT三条语句。其中SAVEPOINT用于设置保存点,以便确认和取消部分数据库改变。
[*]数据库定义语言(Data Definition Language,DDL):用于建立、修改和删除数据库对象。例如使用CREATE TABLE可以建表;使用ALTER TABLE可以修改表结构;使用DROP TABLE可以删除表。但是注意,[color=red]DDL语句会自动提交事物。[/color]
[*]数据控制语言(Data Control Language,DCL):用于执行权限授予和收回操作,包括GRANT和REVOKE两条命令。但是注意,[color=red]DCL语句同样也会自动提交事物。[/color]
[/list]

[color=blue]注:SQL语句中,关键字、表名和字段名称是不区分大小写的,但是为了代码的可读性,推荐在PL/SQL块中,全部大写。[/color]
[b][size=medium]四. PL/SQL简介[/size][/b]
PL/SQL是Oracle在标准SQL语言上的过程性扩展,它不仅允许嵌入SQL语句,而且允许定义变量和常量,允许过程语言结构(条件分支语句和循环语句),允许使用例外处理Oracle错误等。

[b]PL/SQL具有以下一些有点和特征[/b]
[list]
[*]提高应用程序的性能:使用SQL语句时,每次单条语句就向数据库提交请求。而通过PL/SQL块可以将多条SQL语句组织到一起提交。
[*]提供模块化的程序设计功能:可以集成业务规则和逻辑到PL/SQL块中进行管理和处理。
[*]允许定义标识符:可以在PL/SQL块中定义变量、常量、游标和例外等各种标识符。
[*]拥有过程语言的控制结构:PL/SQL块中可以使用各类条件分支语句和循环语句。
[*]具有良好的兼容性:可以在任何IDE平台上使用。(屁话)
[*]处理运行错误:通过PL/SQL所提供的例外(EXCEPTION),开发人员可以集中处理各种Oracle错误和PL/SQL错误,从而简化了错误处理。
[/list]

[b][size=medium]五. Oracle 10g PL/SQL新特性[/size][/b]
[list]
[*]在9i中,当使用FORALL语句执行批量SQL操作时,只能在PL/SQL集合类型(嵌套表、VARRAY)上使用连续下标;而从Oracle 10g开始,通过使用INDICES OF子句和VALUES OF子句,就可允许在PL/SQL集合类型(嵌套表、VARRAY)上使用非连续下标。
[*]在Oracle 10.1开始,在编写PL/SQL块时可以使用新的数据类型:BINARY_FLOAT和BINARY_DOUBLE。
[*]从Oracle 10.1开始,Oracle为嵌套表提供了更多新的操作,包括比较嵌套表是否相等、检测某元素是否为嵌套表成员、检测一个嵌套表是否是另一个嵌套表的子集、在嵌套表上执行集合操作等等。
[*][color=red]从Oracle 10.1之前,当为字符串变量赋值时,必须要使用两个单引号,如果在字符串数值中需要包含单引号,那么必须要使用两个单引号来表示一个单引号值;而从10.1开始,如果在字符串数值中需要包含单引号,那么开发人员可以在字符串中使用其他分隔符({},[],<>)包围字符串,使得开发人员可以在字符串中直接将单引号作为字符值引用。[/color]
[*]从10.1开始,Oracle可以隐式地将CLOB数据转换为NCLOB数据,也可以将NCLOB数据隐式地转换为CLOB数据,但是为加快数据转换数度,用户可以继续使用TO_CLOB和TO_NCLOB函数进行类型转换。
[*]从Oracle 10.1开始,Oracle增加了新的倒叙查询函数SCN_TOTIMESTAMP和TIMESTAMP_TO_SCN。通过使用函数SCN_TO_TIMESTAMP,可以根据SCN值取得相应的日期时间值;通过使用函数TIMESTAMP_TO_SCN,可以根据日期时间值取得相应的SCN值。
[/list]

[color=blue]省略Oracle 9及其之前的相关特性。现在用不到了。。。[/color]


[b][size=medium]五. PL/SQL开发工具[/size][/b]
很多哈,现在安装Oracle 11g时会默认带一个SQL/DEVELOPER的工具,这个是Oracle官方提供的工具,很好用。推荐用这个。其他的不推荐。
现在也没必要去用SQL/PLUS了,超级难用,也不好看。命令行的所有东西都能在SQL/DEVELOPER的工具完成,何必作践自己。- -!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值