麻辣家族討論版版's Archiver

小誌 發表於 2010-5-17 18:25

(PHP+IIS+MsSQL教學第32篇) 使用檢視表

[color=DarkOrange][size=5][b]使用檢視表[/b][/size][/color]
當我們利用mssql_query()函數對資料庫下達SQL指令後,會有資料(傳回資料集)回傳給我們程式,所以下列的敘述是可行的,範例ex09_09.php:[code]//資料庫存在,建立SQL命令字串
      $SQL="SELECT * FROM 國文大於60";
      //將回傳結果存放於變數中
      $datalist=mssql_query($SQL);
      //取得欄位數量
      $fieldnum=mssql_num_fields($datalist);[/code]好奇怪喔!在資料庫中並沒有「「國文大於60」的資料表耶!
執行程式可以看到「成績單」資料表中「國文」成績高於60分的同學名單:
[attach]591[/attach]

好神奇ㄚ!那個「國文大於60」到底是何方神聖ㄚ?它是一個SQL資料庫中的檢視表Views(等同Access資料庫的查詢物件),
[attach]592[/attach]
這個「國文大於60」的檢視表物件其實就是一段SQL指令敘述:[code]Select姓名,國文Where 國文>60[/code]

小誌 發表於 2010-5-17 18:28

[color=Green][size=4][b]建立檢視表物件[/b][/size][/color]
為什麼要建立檢視表物件?當我們程式中所需的SQL指令敘述很多,每次變動指令時都要打上一大段的敘述您不累嗎?所以,我們可以將一些常用的查詢結果先建立在資料庫中,並以「虛擬」資料表的方式將它儲存起來,像剛才示範的「國文大於60」就是小誌在資料庫中預先建立的一個檢視表物件。
那如何在資料庫中建立檢視表物件呢?小誌以STUDENT資料庫為例,建立一個SQL指令敘述為「Select 姓名,國文 From 成績單 Where 國文>90」的「國文大於90」檢視表物件來說明:
[list=1]
[*]開啟企業管理員:「開始」=>「程式集」=>「Microsoft SQL Server」=>「Enterprise Manager」。
[*]展開SQL Server群組,接著展開資料庫群組項目,在「STUDENT」資料庫項目上點擊一下。
[attach]593[/attach]

[*]在「檢視表」資料庫項目上點選滑鼠右鍵,於快顯功能表上點選『新增檢視表』:
[attach]594[/attach]
[*]點選『新增檢視表』項目後會進入『新增檢視表』視窗,視窗中包含:
[list]
[*]圖表窗格:顯示建立檢視表的來源資料表欄位,我們可此選擇要成為檢視表欄位的資料表欄位。
[*]檢視表窗格:顯示檢視表中的欄位。
[*]SQL窗格:顯示用來定義檢視表的SQL指令敘述。
[*]結果窗格:顯示SQL指令敘述執行後,在檢視表中的資料錄。
[/list]
[attach]595[/attach]

[*]修改SQL窗格中的SQL指令敘述「Select姓名,國文From 成績單 Where 國文>90」,按下「驗證SQL(圖示為文字SQL下方有個打勾符號)」按鈕,檢驗一下SQL指令敘述是否正確,如果檢驗無誤則會出現下圖:
[attach]596[/attach]

[*]驗證SQL指令敘述後,接著按下「執行SQL(圖示為一個驚嘆號)」按鈕,此時結果窗格會顯示SQL指令敘述執行後,在檢視表中的資料錄。
[attach]597[/attach]

[*]至此,我們已經完成檢視表物件的建立,直接按下『新增檢視表』視窗右上角的「X」關閉按鈕,此時會出現一個詢問視窗,提示我們剛剛所完成的檢視表物件物件內容還沒有存檔,請按下「是」按鈕,進行檢視表物件的命名與存檔:
[attach]598[/attach]

[*]在接著出現的『另存為』對話視窗的「將資料檢視表儲存為」欄位中輸入「國文大於90分」,然後按下「確定」按鈕將檢視表物件儲存起來:
[attach]599[/attach]

[*]回到資料庫視窗中,在「檢視表」項目上點選一下,您就可看見「國文大於90分」的檢視表出現在視窗中,恭喜您!已經成功的建立一個檢視表物件,可以讓Command物件使用了:
[attach]600[/attach][/list]

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供