數據庫方言(dialect)是什麼?

拋開數據庫,生活中的方言是什麼?方言就是某個地方的特色語言,是一種區別於其它地方的語言,只有你們這一小塊地方能聽懂,出了這個地方又是另一種方言。

數據庫方言也是如此,MySQL 是一種方言,Oracle 也是一種方言,MSSQL 也是一種方言,他們之間在遵循 SQL 規範的前提下,都有各自的擴展特性。

拿分頁來說,MySQL 的分頁是用關鍵字 limit, 而 Oracle 用的是 ROWNUM,MSSQL 可能又是另一種分頁方式。

# mysql
select * from t_user limit 10;
# oracle
select * from t_user t where ROWNUM <10;

這對於 ORM 框架來說,爲了在上層的ORM層做了無差別調用,比如分頁,對使用者來說,不管你底層用的是MySQL還是Oracle,他們用的都是一樣的接口,但是底層需要根據你使用的數據庫方言不同而調用不同的DBAPI。用戶只需要在初始化的時候指定用哪種方言就好,其它的事情ORM框架幫你完成了

layers.png

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章