轉:如何學習SQL(第四部分:DBMS擴充功能與SQL進階話題)

來源:互聯網
上載者:User

標籤:blog   http   io   os   使用   ar   strong   資料   sp   

轉自:http://blog.163.com/[email protected]/blog/static/285720652010950102575/

9. DBMS提供的擴充功能

掌握了基本的關聯式模式原理和DBMS的資料類型,還需要對DBMS提供的擴充功能有所瞭解,才能充分運用DBMS進行資料庫開發。

9.1. 控制流程

SQL是說明式語言,但DBMS面對實際開發的需求,通常在SQL方言中都提供了過程式的擴充,包括(以T-SQL為例):
1. 變數定義和賦值
[code=sql] 
DECLARE @var <datetype>                      --變數定義語句 
SET @var = <value>                            --通過SET語句賦值 
SELECT @var = MAX(column_value) FROM [table]  --通過SELECT語句賦值 
[/code]
2. 代碼塊
BEGIN ... END定義一個代碼塊。
對於下面的IF/ELSE和WHILE,如果忽略了BEGIN ... END代碼塊,條件和迴圈將只對其後的第一個語句生效。
3. 條件分支語句
IF ... ELSE ...
注意IF語句與CASE WHEN運算式的區別。
4. 迴圈控制語句
WHILE可以進行迴圈。BREAK/CONTINUE可以跳出或進行下一次迴圈。
5. 異常處理語句
SQL Server 2005支援TRY-CATCH語句進行異常處理,但只能處理一部分異常。詳見聯機叢書。

9.2. 動態語句

SQL動態語句的功能很強大,但是難以調試和維護(字串拼接、無文法高亮)、效率低(難以重用執行計畫)、安全性差(SQL注入)。除非功能上必須,否則盡量避免使用動態SQL。

假如真的需要使用動態SQL,使用sp_executesql的方式優於EXEC()的方式。因為前者有些時候可以重用執行計畫而改善效能,而且允許傳參,資料類型上更安全。

9.3. DBMS支援的資料庫物件

SQL Server還支援暫存資料表、視圖、預存程序、自訂函數(標量和表值)、觸發器、遊標等資料庫物件,這是利用SQL Server進行開發必須掌握的知識。參看《Microsoft SQL Server 2005技術內幕:T-SQL程式設計》相關章節。

9.4. DBMS提供的系統函數、系統檢視表和系統預存程序

- System Functions:提供特定的運算式運算功能,如日期時間函數、字串函數、數學函數、彙總函式等,是T-SQL編程必需的。
- System Views:包含了資料庫中繼資料、系統內部運行資料等,如目錄檢視(用來代替SQL Server 2000中的系統資料表)、資訊架構視圖、動態管理檢視等。
- System Procedures:查看系統資訊、修改系統配置等,如目錄存放過程、資料庫引擎預存程序等。

9.5. DBMS提供的工具

- 資料庫伺服器組態工具:組態管理員、介面區配置器等
- 資料庫用戶端應用工具:SSMS、sqlcmd、bcp等
- 資料庫效能工具:SQL Server Profiler等


10. 進階話題

以下是資料庫相關的進階話題,每一塊都值得單獨討論,本帖不再詳述。

1. 進階技術專題
- 資料庫設計
- 伺服器架構
- 索引和效能最佳化
- 事務、鎖定與並發
- 備份與還原

Trackback : http://topic.csdn.net/u/20100826/18/21e54f19-b203-4dcb-bc40-6d39554779f7.html

轉:如何學習SQL(第四部分:DBMS擴充功能與SQL進階話題)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.