函數有很多種分類方式,以下各小節(jié)的說明有助于了解函數運作方式的差異。確定性與非確定性函數函數可以是確定性的(deterministic)或非確定性的(nondeterministic)。如果給確定性函數相同的輸入值,一定會返回相同的結果;而每次調用非...[繼續(xù)閱讀]
海量資源,盡在掌握
函數有很多種分類方式,以下各小節(jié)的說明有助于了解函數運作方式的差異。確定性與非確定性函數函數可以是確定性的(deterministic)或非確定性的(nondeterministic)。如果給確定性函數相同的輸入值,一定會返回相同的結果;而每次調用非...[繼續(xù)閱讀]
聚合函數根據一組其他數據值返回單一值。如果聚合函數和其他表達式一起列在SELECT語句的項目列表中,則語句中需包含GROUPBY或HAVING子句;如果聚合函數是SELECT語句所擷取的唯一值,就不需要GROUPBY或HAVING子句了。表4-1列出可用的聚合函...[繼續(xù)閱讀]
SQL2003可以在聚合函數調用中加入window_clause,加了之后這些函數就變成窗口函數。Oracle和DB2都支持窗口函數語法。本節(jié)說明如何在Oracle及DB2中使用window_clause。注意:Oracle通常把窗口函數稱為分析函數(analyticfunction)。窗口或分析函數很像...[繼續(xù)閱讀]
每次調用ANSISQL標量函數便會返回單一值。SQL標準提供許多標量函數,可以操縱日期與時間類型、字符串、數字以及擷取當前用戶或登錄名稱等系統(tǒng)信息。標量函數的分類如表4-2所示。表4-2:標量函數分類函數分類說明內置對數據庫的...[繼續(xù)閱讀]
以下章節(jié)完整列舉及說明各廠商支持的函數。這些函數都是平臺獨有的,所以舉例來說,其他平臺不一定會支持MySQL的函數。DB2支持的擴展功能本節(jié)依字母順排名舉DB2獨家支持的不屬于ANSI標準的函數,并附上范例及對應結果。ABSVAL(num...[繼續(xù)閱讀]
開發(fā)成功的數據庫應用程序,不分大小,都牽涉到好幾個步驟。需要仔細思考應用程序的結構,尤其是以下幾點:·如何將應用程序數據(通常是面向對象的)映射至關系數據庫·如何巧妙處理錯誤·如何提升性能與可伸縮性一般數據庫應用...[繼續(xù)閱讀]
與數據庫交互以前,應用程序必須先和數據庫服務器建立連接。本書所收錄的API把低端連接性細節(jié)歸納成幾個簡單的面向對象類,因此更容易把重點放在數據庫應用程序上,而不是在協(xié)議與網絡拓撲上。開啟ADO.NET數據庫連接開啟ADO.NE...[繼續(xù)閱讀]
一旦使用開啟的連接的應用程序結束后,就應該關閉該連接。有些API會在退出應用程序后自動關閉連接。不過,最好在應用程序結束訪問數據庫后立即顯式關閉連接,讓其他應用程序可以訪問寶貴的連接資源。注意:結束ADO.NET或JDBC對象...[繼續(xù)閱讀]
大部分數據庫編程API提供控制事務的方法、設定保存點并修改隔離等級。本節(jié)的說明涵蓋本章所述ADO.NET及JDBCAPI的控制事務機制。開始事務執(zhí)行多重SQL語句時,開始事務是保證原子性(atomicity)的第一步。開始事務后,可以提交事務,使...[繼續(xù)閱讀]
對指定數據庫API進行程序設計的主要目的就是執(zhí)行SQL語句。下一節(jié)將說明成功執(zhí)行不會返回結果的簡單SQL語句(如INSERT或UPDATE)所需的步驟。執(zhí)行ADO.NET語句以下是使用ADO.NET執(zhí)行SQLINSERT語句的范例:{Odbc|OleDb|Sql}Commandstatement=connection.Cre...[繼續(xù)閱讀]