網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第1頁(yè)
網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第2頁(yè)
網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第3頁(yè)
網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第4頁(yè)
網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)課件_第5頁(yè)
已閱讀5頁(yè),還剩36頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第8章網(wǎng)站中的數(shù)據(jù)庫(kù)設(shè)計(jì)

1本章要點(diǎn)◆數(shù)據(jù)庫(kù)的基本知識(shí)◆Access數(shù)據(jù)庫(kù)的建立

◆數(shù)據(jù)的管理和操作技術(shù)◆標(biāo)準(zhǔn)查詢語(yǔ)言SQL的使用◆使用SQL語(yǔ)言查詢、添加、刪除和修改記錄◆數(shù)據(jù)庫(kù)存取組件

28.1數(shù)據(jù)庫(kù)概述

數(shù)據(jù)庫(kù)是存放數(shù)據(jù)的“倉(cāng)庫(kù)”,只不過(guò)這個(gè)“倉(cāng)庫(kù)”是在計(jì)算機(jī)存儲(chǔ)設(shè)備上,而且數(shù)據(jù)是經(jīng)過(guò)組織的、關(guān)于特定主題或?qū)ο蟮男畔ⅰ?/p>

數(shù)據(jù)庫(kù)系統(tǒng)是一種計(jì)算機(jī)化的數(shù)據(jù)保存系統(tǒng),它以特有的數(shù)據(jù)存儲(chǔ)方式將相關(guān)的數(shù)據(jù)內(nèi)容整合在一起。8.28.38.43數(shù)據(jù)庫(kù)系統(tǒng)的使用范圍非常廣泛,從一般的微型計(jì)算機(jī)到大型主機(jī)都可以使用。一般來(lái)說(shuō),大型主機(jī)多傾向于使用多用戶的數(shù)據(jù)庫(kù)系統(tǒng),而一般的微計(jì)算機(jī)、個(gè)人計(jì)算機(jī)則傾向于使用單用戶數(shù)據(jù)庫(kù)系統(tǒng)。這里所謂的單用戶數(shù)據(jù)庫(kù)系統(tǒng),是指同時(shí)最多只能有一個(gè)用戶存取數(shù)據(jù)庫(kù)的內(nèi)容,而多用戶數(shù)據(jù)庫(kù)系統(tǒng),則允許多個(gè)用戶同時(shí)存取數(shù)據(jù)庫(kù)的內(nèi)容。目前比較流行的數(shù)據(jù)系統(tǒng)有Oracle、Sybase、MicrosoftSQLServer、Access等。由于Access的方便性,一般的虛擬主機(jī)用戶或者是小站點(diǎn)用戶都使用它作為站點(diǎn)數(shù)據(jù)庫(kù),而大型的站點(diǎn)一般使用SQLServer或者Oracle。

48.2Access數(shù)據(jù)庫(kù)

8.2.1數(shù)據(jù)庫(kù)的設(shè)計(jì)8.2.2數(shù)據(jù)庫(kù)的創(chuàng)建8.2.3表的創(chuàng)建

8.18.38.458.2.1數(shù)據(jù)庫(kù)的設(shè)計(jì)統(tǒng)一規(guī)劃所謂數(shù)據(jù)庫(kù)設(shè)計(jì),是指從對(duì)現(xiàn)行非計(jì)算機(jī)管理的數(shù)據(jù)庫(kù)系統(tǒng)的分析到最終實(shí)現(xiàn)由計(jì)算機(jī)管理的數(shù)據(jù)庫(kù)系統(tǒng)的全過(guò)程。它包括表、查詢、報(bào)表等的設(shè)計(jì)??偟脑瓌t是應(yīng)從提高數(shù)據(jù)處理效率及便于數(shù)據(jù)處理兩方面考慮。

6設(shè)置好關(guān)鍵字和表間關(guān)系表的設(shè)計(jì)中關(guān)鍵字的設(shè)置很重要,設(shè)置關(guān)鍵字可以提高查詢等操作的速度,有時(shí)可以用多字段作為關(guān)鍵字。表間的關(guān)系也很重要,例如,有主成績(jī)表與副成績(jī)表兩個(gè)表,若表間沒(méi)有建立正確的關(guān)系,則主副查詢將得不到正確的結(jié)果。7設(shè)計(jì)好字段的缺省值

字段的缺省值有時(shí)也需引起注意。比如,在數(shù)字型字段中,因有些記錄中可能沒(méi)有輸入過(guò)數(shù)據(jù),在程序處理時(shí)可能會(huì)出現(xiàn)一些不正確的結(jié)果。88.2.2數(shù)據(jù)庫(kù)的創(chuàng)建一個(gè)Access數(shù)據(jù)庫(kù)中可以包含表、查詢、窗體、報(bào)表、宏、模塊以及數(shù)據(jù)訪問(wèn)頁(yè)。不同于傳統(tǒng)的桌面數(shù)據(jù)庫(kù)(dbase、FoxPro、Paradox),Access數(shù)據(jù)庫(kù)使用單一的*.mdb文件管理所有的信息,這種針對(duì)數(shù)據(jù)庫(kù)集成的最優(yōu)化文件結(jié)構(gòu)不僅包括數(shù)據(jù)本身,也包括了它的支持對(duì)象。

9

在Access中新建一個(gè)數(shù)據(jù)庫(kù)有兩種方法:一種是先創(chuàng)建一個(gè)空數(shù)據(jù)庫(kù),即建立一個(gè)沒(méi)有表、查詢、窗體和報(bào)表等內(nèi)容的數(shù)據(jù)庫(kù),然后根據(jù)需要再創(chuàng)建具體的對(duì)象;另一種方法是根據(jù)Access中提供的向?qū)?,使用其提供的?shù)據(jù)庫(kù)模板創(chuàng)建數(shù)據(jù)庫(kù),即通過(guò)對(duì)向?qū)岢龅倪x項(xiàng)和不同選擇來(lái)設(shè)計(jì)窗體、查詢和報(bào)表等,從而創(chuàng)建一個(gè)完整的數(shù)據(jù)庫(kù)。10第一種創(chuàng)建數(shù)據(jù)庫(kù)的方法(1)在Access主窗口中,選擇“文件”→“新建”命令,在主窗體右側(cè)將出現(xiàn)“新建文件”任務(wù)窗格。(2)在“新建”選項(xiàng)區(qū)中單擊“空數(shù)據(jù)庫(kù)”選項(xiàng),彈出“文件新建數(shù)據(jù)庫(kù)”對(duì)話框。(3)在該對(duì)話框中的“保存位置”下拉列表框中選擇一個(gè)保存文件的位置,在“文件名”文本框中輸入數(shù)據(jù)庫(kù)名,然后單擊“創(chuàng)建”按鈕,即可在相應(yīng)文件夾下創(chuàng)建一個(gè)名為school的數(shù)據(jù)庫(kù)。118.2.3表的創(chuàng)建

表是Access數(shù)據(jù)庫(kù)的基礎(chǔ),是信息的載體。其他對(duì)象如查詢、窗體和報(bào)表,也是將表中的信息以各種形式表現(xiàn)出來(lái),方便用戶使用這些信息。在Access中,創(chuàng)建表的方法有三種:一是使用設(shè)計(jì)器創(chuàng)建表;二是通過(guò)輸入數(shù)據(jù)創(chuàng)建表;三是利用向?qū)?chuàng)建表。

12使用設(shè)計(jì)器創(chuàng)建表

(1)在如下圖所示的窗口中雙擊“使用設(shè)計(jì)器創(chuàng)建表”,彈出表設(shè)計(jì)器窗口。13

(2)在“字段名稱”列的第一行中輸入字段的名字

sno,然后按回車鍵,此時(shí)在其后的“數(shù)據(jù)類型”列中會(huì)顯示出一個(gè)下拉列表框,單擊下三角按鈕,在彈出的下拉列表中選擇“文本”選項(xiàng),設(shè)置sno字段的類型為文本型。(3)在“字段屬性”域的“常規(guī)”選項(xiàng)卡中,可以設(shè)置字段的大小、格式和規(guī)則等。(4)設(shè)置完成后,選擇“文件”→“保存”命令,彈出“另存為”對(duì)話框,在“表名稱”文本框中輸入表名student單擊“確定”按鈕即完成了表student的設(shè)計(jì)工作。

148.3SQL語(yǔ)言簡(jiǎn)介

8.3.1SELECT語(yǔ)句

8.3.2INSERT語(yǔ)句

8.3.3DELETE語(yǔ)句

8.3.4UPDATE語(yǔ)句

8.18.28.4158.3.1SELECT語(yǔ)句

SELECT語(yǔ)句是最常使用到的SQL語(yǔ)言,使用SELECT語(yǔ)句可以對(duì)表的記錄進(jìn)行查詢、統(tǒng)計(jì)。其一般格式為:SELECT字段名列表FROM表名[WHERE查詢條件][GROUPBY分組項(xiàng)][ORDERBY排序字段[ASC|DESC],…]

16功能:從指定的表中查找滿足條件的記錄。參數(shù)說(shuō)明(1)字段名列表:指明要檢索的數(shù)據(jù)的列。(2)表名:指明從哪(幾)個(gè)表中進(jìn)行檢索。(3)查詢條件:指明返回?cái)?shù)據(jù)必須滿足的條件。(4)分組項(xiàng):指明返回的列數(shù)據(jù)通過(guò)某些條件來(lái)形成組。(5)排序字段:指明返回的行的排序順序。其中,ASC指按升序排序,DESC指按降序排序。17SELECTsno,sname,age,emailFROMstudent這個(gè)簡(jiǎn)單的查詢將會(huì)返回student表中上面選定列的數(shù)據(jù)。

添加WHERE子句

SELECTsno,sname,age,emailFROMstudentWHEREage=21

在檢索時(shí),WHERE子句可以使用多個(gè)列作為約束內(nèi)容,當(dāng)然在檢索約束內(nèi)容中還可以加入通過(guò)AND或OR以實(shí)現(xiàn)多個(gè)約束。

18添加ORDERBY子句

SELECTsno,sname,age,emailFROMstudentWHEREage=21ANDsnamelike'張%'ORDERBYsnoDESC

這條SQL語(yǔ)句返回的結(jié)果是按sno列的降序排序的學(xué)生信息。思考:如果要查詢每個(gè)系的學(xué)生的平均成績(jī),SQL語(yǔ)句該如何寫?

19添加GROUPBY子句

SELECTCount(*),deptFROMstudentGROUPBYdept

其中,Count函數(shù)是求表中數(shù)據(jù)的數(shù)量,這樣這條語(yǔ)句返回的結(jié)果是每個(gè)系對(duì)應(yīng)的學(xué)生人數(shù)信息。208.3.2INSERT語(yǔ)句

INSERT語(yǔ)句用于將記錄插入到指定的一個(gè)表中。其一般格式為:

INSERTINTO表(字段名列表)VALUES(字段值)

功能:向指定的表中插入數(shù)據(jù)。說(shuō)明:字段值的排序應(yīng)和字段名列表中的字段一一對(duì)應(yīng)。

218.3.3DELETE語(yǔ)句

DELETE語(yǔ)句用來(lái)刪除已知表中指定條件的記錄。其一般格式為:

DELETEFROM表名

WHERE條件功能:從指定的表中查找滿足條件的記錄。

DeleteFromstudentWHEREDept='信息系'

這條語(yǔ)句執(zhí)行后,即刪除了學(xué)生表中信息系的學(xué)生信息。如果在DELETE語(yǔ)句中沒(méi)有指定WHERE子句,那么表中的所有記錄將會(huì)被全部刪除。

228.3.4UPDATE語(yǔ)句

UPDATE語(yǔ)句用來(lái)更新表中已經(jīng)存在的數(shù)據(jù),可以一次只更新一行數(shù)據(jù),也可一次更新多行。其一般格式為:

UPDATE表名

SET字段值=表達(dá)式

WHERE條件238.4站點(diǎn)訪問(wèn)數(shù)據(jù)庫(kù)的方法8.4.1ADO組件的使用8.4.2數(shù)據(jù)庫(kù)的連接8.4.3利用SQL語(yǔ)言操作數(shù)據(jù)8.18.28.3248.4.1ADO組件的使用

ADO是ActiveXDataObjects的縮寫,它是微軟公司的ActiveX組件,它隨著IIS的安裝而自動(dòng)安裝,是用來(lái)存取數(shù)據(jù)庫(kù)中記錄的一種程序,它把對(duì)數(shù)據(jù)庫(kù)的主要操作封裝在7個(gè)對(duì)象中,在ASP頁(yè)面中編程調(diào)用這些對(duì)象執(zhí)行相應(yīng)的數(shù)據(jù)庫(kù)操作。使用ADO數(shù)據(jù)對(duì)象,可以對(duì)來(lái)自許多種數(shù)據(jù)提供者的數(shù)據(jù)進(jìn)行讀取和寫入操作。25Connection

Connection是連接對(duì)象,代表打開(kāi)與數(shù)據(jù)源的連接,它包含關(guān)于目標(biāo)數(shù)據(jù)庫(kù)數(shù)據(jù)的提供者(DataBaseProvider)的相關(guān)信息。可利用Connection對(duì)象管理與數(shù)據(jù)庫(kù)的連接,包括打開(kāi)連接和關(guān)閉連接及運(yùn)行SQL命令。RecordSet

RecordSet是記錄集對(duì)象,對(duì)象表示的是來(lái)自基本表或命令執(zhí)行結(jié)果的記錄的集合,由一系列字段組成。在任何時(shí)候,RecordSet對(duì)象所指的當(dāng)前記錄均為集合內(nèi)的單個(gè)記錄。RecordSet對(duì)象不僅包含某個(gè)查詢返回的記錄集,還包含記錄中的游標(biāo)(Cursor)。26Command

Command是命令對(duì)象,定義了將對(duì)數(shù)據(jù)源執(zhí)行的指定命令,通過(guò)已建立的連接發(fā)出的命令可以以某種方式來(lái)操作數(shù)據(jù)源。一般情況下,命令可以在數(shù)據(jù)源中添加、刪除或更新數(shù)據(jù),以及在表中以行的格式檢索數(shù)據(jù)。Field

Field是字段對(duì)象,如果將記錄集看作二維網(wǎng)格,字段將排列構(gòu)成“列”。每一字段(列)就是一個(gè)Field對(duì)象,F(xiàn)ield對(duì)象具有名稱、數(shù)據(jù)類型和值的屬性,在值屬性中包含來(lái)自數(shù)據(jù)源的真實(shí)數(shù)據(jù)。27Property

Property是屬性對(duì)象,代表由提供者定義的ADO對(duì)象的動(dòng)態(tài)特征,每個(gè)ADO對(duì)象都由一組惟一的Property(屬性)來(lái)描述或控制對(duì)象的行為。屬性有內(nèi)置和動(dòng)態(tài)兩種類型,內(nèi)置屬性是ADO對(duì)象的一部分并且隨時(shí)可用;動(dòng)態(tài)屬性則由特別的數(shù)據(jù)提供者添加條目到ADO對(duì)象的屬性集合中,僅在提供者被使用時(shí)才能存在。Parameter

Parameter是參數(shù)對(duì)象,通常命令需要的變量部分即“參數(shù)”,參數(shù)可以在命令發(fā)布之前進(jìn)行更改。在ADO中,Parameter對(duì)象用于管理與基于參數(shù)化查詢或存儲(chǔ)過(guò)程的Command對(duì)象相關(guān)聯(lián)的參數(shù)或自變量。28Error

Error是錯(cuò)誤對(duì)象,應(yīng)用程序在執(zhí)行過(guò)程中,發(fā)生錯(cuò)誤是不可避免的,錯(cuò)誤通常是在無(wú)法建立連接、執(zhí)行命令或?qū)δ承顟B(tài)(例如試圖使用沒(méi)有初始化的記錄集)的對(duì)象進(jìn)行操作時(shí)發(fā)生的。ADO對(duì)象模型用Error對(duì)象體現(xiàn)錯(cuò)誤,任意給定的錯(cuò)誤都會(huì)產(chǎn)生一個(gè)或多個(gè)Error對(duì)象,隨后產(chǎn)生的錯(cuò)誤將會(huì)放棄先前的Error對(duì)象組。Error對(duì)象包含與ADO的單個(gè)操作有關(guān)的數(shù)據(jù)訪問(wèn)錯(cuò)誤的詳細(xì)信息,還包含數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序出錯(cuò)時(shí)的擴(kuò)展信息。298.4.2數(shù)據(jù)庫(kù)的連接

指定要連接的服務(wù)器端數(shù)據(jù)庫(kù)在ASP中,使用ADO技術(shù)連接后臺(tái)數(shù)據(jù)庫(kù)有兩種方法。一種是靜態(tài)定義數(shù)據(jù)源方式,即創(chuàng)建一個(gè)系統(tǒng)數(shù)據(jù)源名稱,或者說(shuō)是創(chuàng)建一個(gè)ODBC數(shù)據(jù)源;另一種是動(dòng)態(tài)連接數(shù)據(jù)庫(kù)方式。30采用靜態(tài)定義數(shù)據(jù)源方式連接數(shù)據(jù)庫(kù)的步驟(1)在“控制面板”中打開(kāi)“管理工具”對(duì)話框,然后雙擊“數(shù)據(jù)源

(ODBC)”圖標(biāo),打開(kāi)“ODBC數(shù)據(jù)源管理器”對(duì)話框。

(2)在“用戶DSN”選項(xiàng)卡中單擊“添加”按鈕,彈出“創(chuàng)建新數(shù)據(jù)源”對(duì)話框,在“名稱”列表框中選擇MicrosoftAccessDriver(*.mdb)選項(xiàng),單擊“完成”按鈕。

(3)在打開(kāi)的“ODBCMicrosoftAccess安裝”對(duì)話框中的“數(shù)據(jù)源名”文本框中輸入myconn,單擊“選擇”按鈕。

(4)在彈出的“選擇數(shù)據(jù)庫(kù)”對(duì)話框中選定數(shù)據(jù)庫(kù)的路徑,單擊“確定”按鈕,即可完成一個(gè)名為myconn的Access數(shù)據(jù)源的創(chuàng)建工作。

31

動(dòng)態(tài)連接數(shù)據(jù)庫(kù)的方法是:在ASP文件中直接指定數(shù)據(jù)庫(kù)文件所在位置,可以避免程序使用人員在安裝ASP程序時(shí)配置ODBC。連接字符串的一般格式為:

connstr="provider=數(shù)據(jù)庫(kù)驅(qū)動(dòng)程序名稱;datasource=服務(wù)器名稱或者服務(wù)器IP地址;uid=用戶名稱;pwd=數(shù)據(jù)庫(kù)密碼;database=數(shù)據(jù)庫(kù)名稱"

連接Access數(shù)據(jù)庫(kù)的語(yǔ)句如下:mdbfile=servermappath("數(shù)據(jù)庫(kù)名稱

mdb")connstr="driver={microsoftaccessdriver(*.mdb)};uid=admin;pwd=數(shù)據(jù)庫(kù)密碼;dbq="&mdbfile32

連接SQLServer數(shù)據(jù)庫(kù)的語(yǔ)句如下:

connstr="provider=SQLOLEDB;datasource=SQL服務(wù)器名稱或IP地址;uid=sa;pwd=數(shù)據(jù)庫(kù)密碼;database=數(shù)據(jù)庫(kù)名稱"33連接并打開(kāi)數(shù)據(jù)庫(kù)

首先在ASP中調(diào)用Server.CreateObject方法取得ADODB.Connection的實(shí)例,再使用Open方法打開(kāi)數(shù)據(jù)庫(kù)。conn=Server.CreateObject("ADODB.Connection")conn.Open("myconn")或者conn.Open("connstr")348.4.3利用SQL語(yǔ)言操作數(shù)據(jù)

使用ADO技術(shù)可以實(shí)現(xiàn)從ASP頁(yè)面到數(shù)據(jù)庫(kù)中存取數(shù)據(jù),在ASP頁(yè)面中存取數(shù)據(jù)庫(kù)中數(shù)據(jù)的一般步驟是:創(chuàng)建和數(shù)據(jù)庫(kù)的連接、打開(kāi)數(shù)據(jù)庫(kù)、創(chuàng)建ADO記錄集、打開(kāi)記錄集、從記錄集中存取數(shù)據(jù)、關(guān)閉記錄集、關(guān)閉數(shù)據(jù)庫(kù)的連接。35指定要執(zhí)行的SQL命令

首先定義一個(gè)記錄查詢、修改或刪除的SQL語(yǔ)句的字符串,然后調(diào)用ADODBConnection的Execute方法執(zhí)行。

sqlstr="SELECT*FROMstudentWHEREsname'張三'"rs=connExecute(sqlStr)36使用RecordSet屬性和方法,并顯示結(jié)果

為了更靈活地使用數(shù)據(jù),要用RecordSet組件創(chuàng)建包含數(shù)據(jù)的游標(biāo),游標(biāo)就是儲(chǔ)存在內(nèi)存中的數(shù)據(jù)。rs=ServerCreateObject("ADODBRecordSet")rsOpen(sqlStr,c

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論