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
數據倉庫與數據挖掘培訓視頻教程
From:http://tw.wingwit.com/Article/program/SQL/201311/16489.html