2011-09-21 79 views
31

大多數SQL數據庫遵循ANSI SQL標準,在一定程度上存在差異,但列表的SQL數據庫

  1. 該標準是模糊的,致使一些地區不同的解釋(例如:操作有什麼不同與NULLs應處理is ambiguous

  2. 一些廠商矛盾的標準直接或只是缺乏標準所定義的功能(例如:MySQL有標準及其實施)

  3. 之間的
  4. 某些數據庫的行爲會因配置方式而有所不同,但配置可以更改爲使其行爲相同(例如:默認情況下,Oracle會執行區分大小寫的字符串比較,而SQL Server會將它們區分大小寫)

  5. 有一些功能是不是標準的一部分,但由不同的RDBMS反正實現,儘管有不同的名稱(如:Oracle的LISTAGG = MySQL的GROUP_CONCAT

是否有資源提供全面的當你試圖寫作時,要注意的怪癖列表和疑難雜症應該與多個數據庫兼容的東西?

+0

+1有價值的問題。需要注意的一件事是,您不僅會遇到兼容性問題,還應該考慮在主要支持的RDBMS上測試您的解決方案,以確保沒有不明顯的性能下降,並且沒有任何記錄。在一天結束時,您應該覆蓋自己並說出您特別支持哪些平臺,同時指出稍後可能會支持其他平臺。 – Seph

+0

確實是一個寶貴的問題,但不幸的是,這個問題仍然沒有得到答案。 – FDavidov

+1

我喜歡OReilly SQL快速參考,因爲它向我展示了幾種方言之間的各種語法和差異。不幸的是,這是一個有新功能的移動目標,每當新版本發佈時都會發生變化。還有http://sqlfiddle.com/,它可以讓你嘗試幾個不同版本的服務器(oracle,mysql,...)甚至給定服務器的版本(mysql 5.5和5.6)。 – argoc

回答