iT邦幫忙

1

ORACLE 的語法跟 SQL 差多少 ?

cmkung 2012-06-11 15:02:0846357 瀏覽

我是學 SQL 沒用過 ORACLE 聽說 ORACLE 語法比較嚴謹
所謂的嚴謹是差在那 , 還有 ORACLE 有幾個版本呢 ?
ORACLE SQL 也是一個版本是嗎 ?

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
13
賽門
iT邦超人 1 級 ‧ 2012-06-11 17:08:25
最佳解答

Oracle的SQL是稱為PL/SQL(Procedural Language/Structured Query Language).

PL/SQL不能稱之為嚴謹, 應稱之為與Oracle資料庫整合度相當好的一套資料庫維護語言.

在Oracle中的所有資料庫元件幾乎都可以用PL/SQL寫成程式來運作, 要學好Oracle, PL/SQL是基本功. Oracle也有一套ERP系統: Oracle EBS, 其中很多Rules都用PL/SQL寫在資料庫的Stored Procedure及Trigger中.

基本上, Oracle PL/SQL和SQL Server T-SQL的差異有三大類:

  1. 資料型態宣告方式不同
  2. 程式結構不同
  3. 變數運用的方式不同

除了這三個大不同外, DML部份(SELECT/INSERT/DELETE/UPDATE)的指令架構共通的部份遵照ANSI/SQL的標準, 可是仍有許不同.

其實您問題是大哉問, 沒法很詳細的告訴您, 只能列書單給參考了:
Oracle PL/SQL Programming

賽門 iT邦超人 1 級 ‧ 2012-06-11 22:05:07 檢舉

關於Oracle資料庫系統的版本, 有:

  1. Enterprise Edition
  2. Standard Edition
  3. Standard Edition One
  4. Express Edition
    各個版本間的比較, 請參閱:
    Oracle Database 11g Editions
6
player
iT邦大師 1 級 ‧ 2012-06-11 17:52:07

Oracle
用PL/SQL
http://en.wikipedia.org/wiki/PL/SQL
額外的功能擴充用C或Java寫External Procedures
http://www.datadisk.co.uk/html_docs/oracle/external_procedures.htm

Microsoft SQL Server
用T-SQL
http://en.wikipedia.org/wiki/Transact-SQL
額外的功能擴充用C#或VB.NET寫SQL CLR函數
http://en.wikipedia.org/wiki/SQL_CLR

8
wiseguy
iT邦超人 1 級 ‧ 2012-06-12 09:09:46

SQL 全名是結構化查詢語言(Structured Query Language),包含3個部分:
「資料定義語言」(DDL : Data Definition Language)
「資料操縱語言」(DML : Data Manipulation Language)
「資料控制語言」(DCL : Data Control Language)
由 IBM 首先提出,ANSI 後納為資料庫查詢標準,再由 ISO 國際標準組織採用,目前已有 SQL-89、SQL-92、SQL-99、SQL:2003、SQL:2008、SQL:2011 等標準。

雖然 SQL 有上述標準,但各家資料庫發展廠商並沒有完全遵循標準,而在標準之外,各自開發自己的SQL方言,這是商業考量,一方面替自己的資料庫最佳化,一方面綁自己的開發工具,反正每家心裡面都想『只要我的市場夠大,我就是標準!』

而比較常見的方言就是 Oracle 的 PL/SQL 跟 Microsoft SQL Server 的 T-SQL。事實上幾乎每個市面上看到的資料庫都有自己的SQL方言,沒人100%遵循SQL標準。

2
kaowoei
iT邦研究生 4 級 ‧ 2012-06-14 10:46:26

不論是PL-SQL還是T-SQL,請先學好標準的ANSI-SQL。
基本功打不好就會在程式撰寫上寫出SELECT * FROM 這樣沒有效率的查詢。

我要發表回答

立即登入回答