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