2017年10月11日 星期三

Transact-SQL程式設計

Transact-SQL程式設計
Transact-SQLMicrosoft® SQL Server™ 的程式設計語言,而Transact-SQL的本質就是「結構化查詢語言」(Structures Query LanguageSQL,念做’sequel’)

所謂「程式設計」即是學習如何以合理的方式將一系列的命令結合起來,而「合理的方式」也就是要以電腦看得懂的語法來編寫,這便涉及到Transact-SQL之程式結構與語法。

舉凡是Microsoft® SQL Server™ 的各項程式設計工具、Transact-SQL的組成元素、程式設計的基礎知識(包括:常數、記憶體變數、運算式、運算子等等)

SQL Server中,所謂的 查詢係泛指以Transact-SQL所撰寫的程式,它所執行的作業可能是新增、修改、刪除、或查詢資料記錄,亦或是任何其他作業,絕不是僅僅侷限於查詢資料記錄。


※準備工作
1.      先將主資料檔NorthwindSQL.MDF與記錄檔NorthwindSQL.LDF複製到磁碟目錄C:\Program Files\Microsoft SQL Server\MSSQL\Data (假設資料庫存放目錄) 中,然後執行下列程式以便將其依附於SQL Server內:

2.      Query Analyzer公用程式中執行如下命令:
   /* 檔案名稱: BuildNorthwindSQL.sql */
   EXEC sp_attach_db @dbname = N'NorthwindSQL',
   @filename1 = N'C:\Program Files\…\MSSQL\Data\NorthwindSQL.mdf',
   @filename2 = N' C:\Program Files\…\MSSQL\Data \NorthwindSQL.ldf'


※善用SQL Query Analyzer
SQL Server擁有許多程式設計工具,其中最常使用的是SQL Query Analyzerosql公用程式。

SQL Query Analyzer是一個極具親和力的圖形介面工具,主要特性與功能如下:
1.      提供一種交談式的環境來供撰寫、編輯、與執行Transact-SQL命令敘述,並檢視執行結果。
2.      能夠以不同的顏色與字型來顯示程式碼中不同的組成部分,使程式變得更加易讀與維護。
3.      能夠檢查所撰寫之程式的語法是否正確。
4.      可以使用T-SQL偵錯工具來偵測預存程序的錯誤。
5.      能夠從事先定義的查詢檔(即範本)中快速建立經常使用的資料庫物件。
6.      「物件瀏覽器」指令碼功能能夠快速複製現有的資料庫物件(即使不知道參數也能夠執行預存程序)
7.      可以使用顯示執行計畫、顯示伺服器追蹤、顯示用戶端統計資訊、索引微調精靈等功能找出在執行效能方面的問題,以便透過一個明確的途徑來最佳化查詢的執行效能。
8.      Transact-SQL命令敘述與執行結果會同時顯示於不同的窗格中,以方便相互對照與偵錯,亦可以將查詢結果顯示於一個可捲動的多筆編輯方格中,或以純文字來顯示。
9.      可以將撰寫並測試無誤的Transact-SQL命令敘述儲存至一個SQL查詢檔(.sql)中,並可於SQL Query Analyzer中來執行。
10.  能夠以圖形方式來顯示執行計劃。
11.  能夠檢視統計資訊。
12.  可以同時執行多個Transact-SQL查詢檔或預存程式。
13.  快速檢視Transact-SQL語法的能力。


※開啟SQL Query Analyzer
1.      執行下列兩項操作之一:
(1)   Windows「開始」功能表->「程式集」指令->Microsoft SQL Server指令->Query Analyzer指令。
(2)   如果已開啟SQL Server Enterprise Manager,可從其「工具」功能表中選取SQL Query Analyzer指令。
2.      必須先連線至SQL Server才能在SQL Query Analyzer中開啟一個查詢視窗。
3.      進行帳戶驗證選項,並按「確認」按鈕。

SQL Query Analyzer的查詢視窗標題列中皆會以SqlServerName.Database.Login的格式來標示此資訊。
可以隨時使用「檔案」功能表中的「連線」指令來連線至特定的SQL Server


※建立新的查詢
1.      SQL Query Analyzer之「檔案」功能表中的「連線」指令,便會自動開啟一個新的查詢視窗;或在工具列中的「新增查詢」按鈕來開啟一個新的查詢視窗。
2.      決定作用的資料庫,可於「資料庫」下拉式清單方塊中選取,另一種方法是直接於程式碼中使用USE命令來設定。
3.      於查詢視窗的編輯器窗格中鍵入Transact-SQL程式碼。
4.      執行查詢並檢驗執行結果。
5.      存檔。




※重要操作技巧
1.      快速取得Transact-SQL語法說明 (SHIFT - F1) ,先Mark關鍵字再按SHIFT-F1即可。
2.      清除編輯器窗格中的所有內容,只需從「編輯」功能表中選取「清除視窗」指令即可。
3.      快速移至特定列號的程式,只需從「編輯」功能表中選取「到命令列」指令即可。

※執行查詢
1.      先檢查Transact-SQL程式碼的語法是否正確:可在實際執行查詢前先去檢查Transact-SQL程式碼的語法是否正確。
    於實際執行查詢前,先檢查語法是否有誤,可使用工具列中的「剖析查詢」按鈕
    可決定如何顯示查詢結果,從「查詢」功能表中選取「以文字顯示結果」指令;或「以方格顯示結果」指令。
  
2.      僅僅執行查詢中某一段Transact-SQL程式碼:基於偵錯與測試等目的,有時會希望只去執行某一段程式。
    如果要執行一整個查詢,則用工具列中的「執行查詢」按鈕(或按F5)執行。
    如果只想執行查詢中某一段Transact-SQL程式碼,則先將所要執行的那一段Transact-SQL程式碼選取起來,在用工具列中的「執行查詢」按鈕(或按F5)執行。


※使用範本
為了能夠快速以程式碼於資料庫中建立所需的物件,Microsoft® SQL Server 2000特別提供一系列的範本來協助完成此項工作。
SQL Query Analyzer所提供的範本程式碼中內含各種參數,透過重訂這些參數的值,便可以自訂程式碼而使其完全符合設計需求。

範本的參數定義使用下列格式:
此格式說明如下:
1.      parameter_name是程式碼中之參數的名稱
2.      data_type是程式碼中之參數的資料型態
3.      value是用以取代程式碼中之參數的

程式設計師可以使用「取代範本參數」對話方塊將替代值插入程式碼中。
也就是說,範本最主要的目的就是幫助程式設計師快速撰寫出執行特定作業的Transact-SQL命令敘述。
範例:
假如想要利用範本來協助快速撰寫出建立索引的CREATE INDEX命令敘述,則依下列步驟進行:
1.      按一下物件瀏覽器底端的「範本」標籤來切換至其頁面。
2.      由於要建立索引,因此應展開Create Index項目,再使用滑鼠將Create Index Basic範本拖放至編輯窗格中欲插入CREATE INDEX命令的位置上,此舉會立即將此範本之.sql檔的內容插入其中。
接下來,要利用「取代範本參數」對話方塊來變更CREATE INDEX命令中各個參數的值,以便使其符合需求。
3.      將所插入之範本的Transact-SQL命令敘述全部選取後,從「編輯」功能表中選取「取代範本參數」指令。
4.      「取代範本參數」對話方塊開啟後,修改各個參數的設定值,然後按下「全部取代」按鈕。


※善用物件瀏覽器
物件瀏覽器採用可逐層展開的樹狀圖來列出所連線之SQL Server中所有的資料庫與通用物件,使能輕易導覽與存取各個資料庫中的物件,取用所有的內建函數,執行預存程序,甚至還能夠自動產生相關資料庫物件的建立、刪除、與存取命令敘述。善用之可大幅提昇開發效率。

其各項功能如下:
1.      將物件加至程式碼中
為了提昇程式撰寫的便利性,可以直接從物件瀏覽器將某個或某類物件拖放至編輯器窗格中,可省卻自行輸入的麻煩。
2.      檢視、新增、修改、刪除資料表的資料記錄
按右鍵於欲作用之資料表,並從快顯功能表中選取「開啟舊檔」指令,此舉會使得該資料表的所有資料記錄顯示於「開啟資料表」視窗中,以便於檢視、新增、修改、刪除資料表的資料記錄。
3.      編輯資料庫物件


沒有留言:

用頭腦去思考,不要人云亦云才好, 宗教信徒就是依賴與自私心態(求東求西)的人, 光是這點就很容易暴露弱點了, 難怪seafood吃飽飽,哈哈。 續上, 除了依賴與自私心態(兩者都是人性)之外。 另外也有很大一部份的人,是人云亦云的思考邏輯, 所以宗教才能譁眾取寵。