ASP最重要的用途就是構(gòu)建動(dòng)態(tài)網(wǎng)站。構(gòu)建動(dòng)態(tài)網(wǎng)站建設(shè),要經(jīng)常和數(shù)據(jù)庫(kù)打交道,因此,方便快捷的訪問(wèn)數(shù)據(jù)庫(kù)成了ASP的重要功能。在本書(shū)的大部分示例中,都要對(duì)數(shù)據(jù)庫(kù)進(jìn)行訪問(wèn)。我們將會(huì)坎觸到大量的數(shù)據(jù)庫(kù)訪問(wèn)的操作。因此,在本章,我們先學(xué)習(xí)在ASP中訪問(wèn)數(shù)據(jù)庫(kù)的基礎(chǔ)知識(shí)。是否能夠靈活地運(yùn)用ASP的數(shù)據(jù)庫(kù)訪問(wèn)控件對(duì)欺據(jù)庫(kù)進(jìn)行訪問(wèn).將直接決定ASP程序的執(zhí)行效率等一系列性能。
在瀏覽網(wǎng)頁(yè)時(shí),我們經(jīng)??梢钥吹侥切┨峁?shù)據(jù)查詢功能的網(wǎng)站,例如,在一些出版社的網(wǎng)站中只要翰人書(shū)名、作者或某些關(guān)鍵字,就可以查到這本書(shū)的有關(guān)資料:或者在一些社區(qū)性的網(wǎng)站,為訪問(wèn)者提供討論區(qū)、用戶登記等服務(wù);還有購(gòu)物網(wǎng)站的商品查詢等等。.這些網(wǎng)站功能的運(yùn)作通常都需要后臺(tái)數(shù)據(jù)庫(kù)的支持,網(wǎng)站后臺(tái)服務(wù)程序會(huì)根據(jù)訪問(wèn)者提供的資料到網(wǎng)站的后臺(tái)數(shù)據(jù)庫(kù)中搜尋數(shù)據(jù),并將搜尋的結(jié)果或數(shù)據(jù)經(jīng)過(guò)整理返回給訪問(wèn)者,所以這樣的后臺(tái)數(shù)據(jù)庫(kù)可以稱為網(wǎng)站數(shù)據(jù)庫(kù),也就是Web數(shù)據(jù)崔,讓我們先來(lái)看看有關(guān)Web數(shù)據(jù)庫(kù)的一些荃本概念。

SQL是結(jié)構(gòu)式查詢語(yǔ)官(Structured Query language)的縮寫(xiě),SQL語(yǔ)育是對(duì)存放在關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行組織、管理和檢索的一種工具:當(dāng)用戶想要檢索關(guān)系數(shù)據(jù)庫(kù)中的數(shù)據(jù)時(shí),就通過(guò)SQL語(yǔ)育向數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)發(fā)出請(qǐng)求,接著DBMS對(duì)該SQL請(qǐng)求進(jìn)行處理,最后將處理結(jié)果返回給用戶,此過(guò)程被稱作數(shù)據(jù)庫(kù)查詢。SQL是一種語(yǔ)言,確切地講,SQL是一種數(shù)據(jù)庫(kù)子語(yǔ)言。SQL語(yǔ)句可以被嵌人到另一種語(yǔ)盲中,從而使其具有數(shù)據(jù)庫(kù)存取功能。SQL也是非嚴(yán)格的結(jié)構(gòu)式語(yǔ)言,它的句法接近英語(yǔ).語(yǔ)句,因此易于理解,大多數(shù)SQL語(yǔ)句都是直述其意.讀起來(lái)就像自然語(yǔ)言一樣明了。在大部分ASP應(yīng)用程序中,我們都會(huì)接觸到數(shù)據(jù)庫(kù),而我們?cè)诰帉?xiě)ASP應(yīng)用程序時(shí)用來(lái)進(jìn)行數(shù)據(jù)庫(kù)操作的標(biāo)準(zhǔn)語(yǔ)言正是SQL,因此SQL語(yǔ)法的重要性是不言而喻的。下面,我們就先來(lái)看看一些常用的SQL命令的使用方法。
對(duì)數(shù)據(jù)庫(kù)進(jìn)行查詢是閱L語(yǔ)言的核心功能,而用于表達(dá)SQL查詢的SEIECF語(yǔ)句則是功能最強(qiáng)也是最為復(fù)雜的SQL語(yǔ)句,它可以從數(shù)據(jù)庫(kù)中檢索出合乎需求的數(shù)據(jù),并將查詢結(jié)果集合返回給用戶。 SQL是一種完備的數(shù)據(jù)處理語(yǔ)言,不僅用于數(shù)據(jù)庫(kù)查詢,而且用于數(shù)據(jù)庫(kù)中的數(shù)據(jù)記錄的插人、修改和刪除,與SQL查詢的SELECT語(yǔ)句的復(fù)雜性相比,更改數(shù)據(jù)庫(kù)內(nèi)容的SQL語(yǔ)句顯得較為簡(jiǎn)單。然而對(duì)一個(gè)DBMS來(lái)說(shuō),數(shù)據(jù)更新所造成的風(fēng)險(xiǎn)大大超出了數(shù)據(jù)查詢,數(shù)據(jù)庫(kù)管理系統(tǒng)必須在更改期保護(hù)所存儲(chǔ)的數(shù)據(jù)的一致性,確保有效的數(shù)據(jù)進(jìn)人數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)必須保持一致性,DBMS還必須協(xié)調(diào)多用戶的并行更新,以確保用戶和他們的更改不致于影響其他用戶的數(shù)據(jù)庫(kù)操作。 在此語(yǔ)句中,列的名稱列在括號(hào)中以逗號(hào)隔開(kāi),接下去是VALUES短語(yǔ)和括號(hào)中以逗號(hào)隔開(kāi)的每列數(shù)據(jù),但要注意數(shù)據(jù)和列的名稱的順序必須相同,而且若是字符串型的則以單引號(hào)隔開(kāi)。從概念上來(lái)講,INSERT語(yǔ)句建立了一個(gè)與表結(jié)構(gòu)相一致的數(shù)據(jù)行,且用VALUES子句的數(shù)據(jù)來(lái)填充它,然后將該新行加人表中,表中的行沒(méi)有排序,因此不存在將該行擂人到表的頭或尾或兩行之間的這個(gè)概念。INSERT語(yǔ)句結(jié)束后,新的記錄就是表的一部分了。
INSERT語(yǔ)句還可以將多行數(shù)據(jù)添加到目標(biāo)表中,在這種形式的INSERT語(yǔ)句中.新行的數(shù)據(jù)值在語(yǔ)句正文中明確的指定.而是從語(yǔ)句中指定的一個(gè)數(shù)據(jù)庫(kù)查詢操作的結(jié)果中得到。添加的值來(lái)自數(shù)據(jù)庫(kù)自身的行,這看起來(lái)有些奇怪,但是在某些特定的狀態(tài)下,是非常有用的。