【教学课件】第十八章使用SQL整合网页与资料库.ppt
《【教学课件】第十八章使用SQL整合网页与资料库.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第十八章使用SQL整合网页与资料库.ppt(71页珍藏版)》请在三一办公上搜索。
1、第十八章使用SQL整合網頁與資料庫,張智星http:/mirlab.org/jang台大資工系 MIR實驗室,本章大綱,大綱本章說明如何使用 SQL 來進行 ASP 網頁與 Access 資料庫的整合,並有大量的實用範例,讓讀者知道如何經由網頁進行對資料庫的檢視、新增、修改、刪除等基本操作。主題18-1:ODBC 與 DSN 簡介 18-2:網頁與資料庫整合的基本範例 18-3:使用 SQL 來檢視資料 18-4:使用 SQL 來新增、修改、刪除資料 18-5:資料隱碼(SQL Injection),2/69,18-1:ODBC 與 DSN 簡介,本小節介紹ODBC與DSN的設定。,3/69,
2、使用資料庫的好處,資料的維護較為容易,可以使用標準的 SQL(Structure Query Language)指令來進行資料庫的各種資料處理,含查詢、新增、修改、刪除等運算。資料之間的關連也可以使用關連式資料庫(Relational Databases)來保證資料的正確、完整和一致性,並同時減少不必要的資料量。一般應用程式可以使用 ODBC(請見下列說明)來對資料庫進行標準的處理。資料在不同資料庫之間的轉換較為容易,一般資料庫廠商都有提供相關的轉換程式。資料與網頁的呈現是獨立的,可以分開進行,互不干擾。,4/69,ASP與資料庫整合要點,瞭解資料庫的基本概念。瞭解 ASP 如何經由 ODBC
3、 與資料庫溝通。瞭解 如何使用 SQL 來對資料庫進行查詢、新增、修改等動作。,5/69,ODBC,ODBC 是 Open DataBase Connectivity 的簡稱,它是一個工業界的標準。可以看成是各家資料庫廠商所提供的一個應用程式介面(Application Program Interface,簡稱 API)。可讓其他軟體或程式根據這個標準一致的程式介面,來對資料庫進行新增、讀取、修改、刪除等動作。對資料進行的動作,在資料庫的術語來講都是 查詢(Query),而這些查詢動作都是根據 SQL 的標準資料庫語言來完成。,6/69,ASP 經由 ODBC 與資料庫溝通,直接指定資料庫在本
4、機硬碟的路徑此種方法較具彈性,整個應用程式目錄可在不同的伺服器中搬動,但能對資料庫進行的設定有限。指定DSN我們必須在控制台設定資料來源名稱(Data Source Name,簡稱 DSN),以指定可經由 ODBC 連結的資料庫。此種作法較不具彈性,但卻能經由本機對資料庫進行比較完整的設定。,7/69,設定DSN(1),從微軟視窗系統左下角的開始選單進行選取,順序為開始/控制台/系統管理工具/資料來源(ODBC),此時所打開的ODBC資料來源管理員,其外觀如下:,8/69,設定DSN(2),點選資料來源(ODBC),開啟視窗後,再點選系統資料來源名稱。,9/69,設定DSN(3),說明由系統資
5、料來源名稱所設定的 DSN,是屬於系統級的 DSN,因此其他使用者(含網頁瀏覽者)也可以使用此 DSN。若要使用個人級的 DSN,那麼就可以使用使用者資料來源名稱,但此設定並不適用於網頁瀏覽。,10/69,設定DSN(4),點選新增,再選擇Microsoft Access Driver(*.mdb),請注意:不要誤選另一個很類似的選項Driver do Microsoft Access(*.mdb)!,11/69,設定DSN(5),輸入資料來源名稱,假設我們輸入的字串是 dsn4test。,12/69,設定DSN(6),再按下選取,就可以選取對應的 Access 資料庫,之後再一路點選確定,即
6、可完成 DSN 的設定。,13/69,MS資料庫的選擇,MS Access 並不是企業專用的資料庫引擎,因此效率並不是很好,而且也不支援許多大型的資料庫應有的功能,但是對於小型的網路應用而言(例如同時上線人數少於10人左右),Access 還算堪用。MS SQL Server 是微軟推出的資料庫引擎,專門對付大型網路應用,是一般中小企業較常採用的資料庫。,14/69,18-2:網頁與資料庫整合的基本範例,本小節介紹各種ASP與資料庫整合的方法。,15/69,ADO,在ASP程式設計裡,用來存取資料庫或表格資料的物件統稱 ADO(ActiveX Data Objects)ADO是一個 ASP 內
7、建的資料庫存取元件,可以經由 JavaScript/JScript、VBScript 等語言來控制資料庫的存取,並可連接多種資料庫,包括 SQL Server、Oracle、Access 等支援ODBC的資料庫。ADO 主要包含 Connection、Recordset 及 Command 三種物件。,16/69,Connection 物件,使用 ADO 的 Connection 物件來進行資料庫的檢視查詢,主要有以下四個步驟建立資料庫連結,然後開啟資料庫。執行SQL指令,並將查詢結果儲存於 Recordset 中:若是檢視查詢,我們可將結果存至 RecordSet 物件變數rs中,以便後續取
8、用。取得欄位名稱及內容:若是檢視查詢,我們可以使用下列的的方式來取得欄位名稱及內容等資訊。關閉 RecordSet 及資料庫連結。,17/69,建立並開啟資料庫,使用Server.CreateObject定義一個 ADO 的 Connection 物件,然後使用其Open的方法來開啟資料庫來源。設定 conn 物件的 ConnectionString 性質來指定資料庫。連結到你想要連結的本機或遠端資料庫。最後再用 conn 物件的 Open 方法,來開啟資料庫,18/69,指定資料庫方法,直接指定 Access 資料庫在本機硬碟的路徑指定 DSN(資料來源名稱)直接連結至 SQL Server
9、 資料庫直接連結至 UNIX 的 MySQL 資料庫,19/69,執行SQL指令,若是檢視查詢,我們可將結果存至 RecordSet 物件變數rs中,以便後續取用。說明以上的程式碼將 SQL 指令所查詢到的結果儲存到 Recordset 物件 rs 中。若不是檢視查詢,則不需要將結果存放於變數 rs。,20/69,取得欄位名稱及內容(1),若是檢視查詢,我們可以使用下列的的方式來取得欄位名稱及內容等資訊。,21/69,取得欄位名稱及內容(2),說明要印出每一筆資料的每一個欄位名稱,可用下列典型程式碼:印出每一筆資料的每一個欄位值,可以使用下列典型程式碼:以上的程式碼由 rs(i)讀取資料庫欄位
10、的資料,rs.MoveNext()將 Recordset 的資料指標移到下一筆,經由 rs.EOF 來判斷是否已到了最末筆資料,並配合 while 迴圈即可得到所有查詢結果的資料。,22/69,關閉 RecordSet 及資料庫連結,範例程式碼如下:說明許多有關I/O的指令如果有open(),通常相對就會有close()這個函式,保障對特定I/O的控制權及釋放權。,23/69,範例18-1(1),主題:以 JScript 進行資料庫列表Webpage:remote host,local host,database說明範例中使用直接指定資料庫在本機硬碟的路徑的方式來連結資料庫,其中的 SQL 指
11、令SELECT*FROM testTable代表從資料表 testTable 取出所有資料。最後一筆資料的 RealName 欄位和 Email 欄位都未填入資料,但是 RealName 欄位的並無預設值,因此由資料庫抓回來的資料顯示為 null;另,Email 欄位的預設值是空字串,所以沒有印出任何東西。這些欄位的屬性可由 Access 資料表的設計檢視選單來設定。,24/69,範例18-1(2),如果上述範例發生錯誤,一個可能的原因是:OS 是64-bit,而 Access 資料庫是32-bit,解決方案請見http:/mirlab.org/users/pony.chen/內的Win7 6
12、4-bit上如何使用32-bit的ODBC連結。,25/69,將範例18-1改成DSN連結,若要使用 DSN 連結資料庫,首先我們必須先在伺服器設定 DSN(詳細流程請見上一小節),然後就可以在 ASP 內經由 DSN 來指定資料庫(可以是近端或是遠端)。以範例18-1而言,若要由 DSN 來連結資料庫,而不直接指定資料庫,只要把下一列敘述:改成下一列即可,其中 dsn4test 必須已被設定為指向 test.mdb 的 ODBC 資料來源。Webpage:remote host,local host,26/69,範例18-3,主題:使用 listQueryResult()函數進行查詢Webp
13、age:remote host,local host說明此inc檔分別寫了適用於 JScript 和 VBScript 的函數,因此無論是使用 JScript 或 VBScript 的 ASP 網頁,都可以使用此包含檔來列出資料庫查詢的結果。一般而言,SQL 指令已經具有對資料庫進行檢視、新增、修改、刪除等功能,因此只要使用適當的 SQL 指令,再加上前述的方法,即可對資料庫進行完全的處理。,27/69,18-3:使用 SQL 來檢視資料,本小節介紹查詢資料庫相關的SQL語法。,28/69,SQL簡介,SQL 是結構化查詢語言(Structured Query Language)的簡稱,是由
14、IBM 公司於 1970 年代所發展出來,用於關連式資料庫(Relational Databases)當中的一種資料庫查詢語言,利用 SQL 可以用來進行各種與資料庫相關的處理,例如:產生資料庫內的資料表 定義資料表內的欄位與相關資料型態 建立表格之間的關連性 對資料進行處理:新增、修改、刪除、查詢 對資料進行統計,29/69,SELECT,檢視資料庫的資料,使用的 SQL 主要指令是SELECT。基本結構說明SELECT 的欄位名稱為待查資料庫的欄位名稱。FROM 的資料表名稱為待查資料庫的資料表名稱。WHERE 的條件式為設定查詢的條件式。ORDER BY 的欄位名稱為欲排序的欄位,可將查
15、詢的資料根據這些欄位來排序。指定多個欄位時,則以欄位名稱1排序,若其資料相同則再依欄位名稱2排序,依此類推。中括號表示選擇性條件,也就是說只有SELECT和FROM是必要條件。,30/69,檢示資料範例(1),我們以資料庫 basketball.mdb 為例,這個資料庫包含兩個資料表:Player 包含球員的資料,其中 TeamID 是球員所隸屬的籃球隊代號(載明在 Team 資料表),Percentage 是投籃的命中率。Team 包含籃球隊的資料,其中 WinNo 是本季的贏球次數。,31/69,檢示資料範例(2),SELECT*FROM Team意義:所有球隊資料說明:*代表 Team
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教学课件 教学 课件 第十八 使用 SQL 整合 网页 资料库

链接地址:https://www.31ppt.com/p-5664387.html