SQL的方言
虽然制定了SQL的标准但是SQL标准不断演进的本质导致了各个厂商和数据库产品之间产生了很多的SQL方言由于在ANSI委员会创建标准之前特定于某个数据库厂商的用户社区会要求在数据库中添加某些功能因此各个数据库厂商的SQL语言常常演化为某种SQL方言偶尔出于与其他技术竞争的压力某些学术或研究机构也会引入一些新的特性例如很多数据库厂商都在使用Java(例如Oracle和Sybase)或Net(Microsoft的SQL Server集成服务嵌入了公共语言运行库[CLR])扩展自己当前的程序设计工具
尽管如此每一种过程化方言都包含了条件处理(例如通过IF…THEN语句进行控制)流控制(例如WHILE循环)变量和错误处理等功能由于目前ANSI还未对这些重要的特性制定出标准因此RDBMS开发人员和数据库厂商可以自由地创建自己的命令和语法事实上世纪年代的一些最早的数据库厂商在最基本的语言元素上都存在差异例如SELECT语句这是因为它们的实现先于SQL标准下面就是一些流行的SQL方言
PL/SQL在Oracle中使用PL/SQL表示Procedural Language/SQL它包含了很多与普通程序设计语言Ada类似的东西IBM DB在版本中添加了对Oracle PL/SQL的有限的支持
TransactSQL用于Microsoft SQL Server和Sybase AdaptiveServer由于Microsoft与Sybase在世纪年代早期就已经从共用平台上分道扬镳因此它们各自实现的TransactSQL语言也彼此分离从而产生了两种截然不同的TransactSQL
SQL PLIBM DB对SQL的过程化扩展在版本中引入该语言围绕传统的SQL查询和操作为实现控制流的逻辑提供了必要的结构
PL/pgSQLPostgreSQL中实现的SQL方言和扩展的名称它是Procedural Language/postgreSQL的首字母缩写
MySQL在MySQL 数据库中引入的一种过程化语言但该语言没有官方名称可以想见在Oracle收购了MySQL之后可能会引入PL/SQL作为MySQL的一部分
返回目录SQL实战新手入门
编辑推荐
Oracle索引技术
高性能MySQL
数据仓库与数据挖掘培训视频教程