程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 淺談Transact-SQL,transactsql

淺談Transact-SQL,transactsql

編輯:更多數據庫知識

淺談Transact-SQL,transactsql


Transact-SQL(又稱T-SQL),是在Microsoft SQL Server和Sybase SQL Server上的ANSI SQL實現,與Oracle的PL/SQL性質相近(不只是實現ANSI SQL,也為自身數據庫系統的特性提供實現支持),目前在Microsoft SQL Server和Sybase Adaptive Server中仍然被使用為核心的查詢語言。

Transact-SQL是具有批量與區塊特性的SQL指令集合,數據庫開發人員可以利用它來撰寫數據部份的商業邏輯(Data-based Business Logic),以強制限制前端應用程序對數據的控制能力。同時,它也是數據庫對象的主要開發語言。

語言結構

Transact-SQL以ANSI SQL為主要組成,目前Microsoft實現的Transact-SQL可支持到ANSI SQL-92標准。

ANSI SQL基礎語法支持

DDL

主條目:數據定義語言

DDL(Data Definition Language)是對於數據庫對象的控制語法,對數據庫對象(如數據表,預存程序,函數或自定義類型等)的新增,修改和刪除都使用此語法。

CREATE(創建數據庫對象)ALTER(修改數據庫對象)DROP(刪除數據庫對象)

DML

主條目:數據操縱語言

DML(Data Manipulation Language)是一般開發人員俗稱的CRUD(Create/Retrieve/Update/Delete)功能,意指數據的新增/截取/修改/刪除四個功能。

SELECT(R)INSERT(C)UPDATE(U)DELETE(D)

DCL

主條目:數據控制語言

DCL(Data Control Language)是由數據庫所提供的保安功能,對於數據庫與數據庫對象的訪問原則與權限,都由DCL定義之。

GRANT(賦與權限)REVOKE(撤消權限)批量

Transact-SQL可以使用分號";"來分區不同的SQL指令。例如:

INSERT INTO myTable (myText) VALUES (@myText); SELECT @@IDENTITY

控制流語法

Transact-SQL可支持下列的控制流程語法(control-flow):

BEGIN ... END,標示SQL指令區塊,使用BEGIN ... END包裝的指令會被視為同一個指令區塊。IF ... ELSE的條件式,並可支持嵌套式的IF判斷式,若IF或ELSE中的指令包含兩個以上,則必須要使用BEGIN ... END來標示區塊,否則會發生語法檢查錯誤。WHILE循環,這也是Transact-SQL中唯一支持的循環,循環中的指令要用BEGIN...END包裝。RETURN,可強制終止區塊的運行。WAITFOR,可強制讓陳述式等待指定時間後才繼續運行。GOTO,可導向運行指令到指定的位置。自定義變量

在Transact-SQL中,可以利用DECLARE來聲明變量,用SET來設置變量值,用SELECT @var = column的方式,由一個陳述式的回傳值中來取得變量值。

DECLARE @v INT -- declare a variableSET @v = 50 -- set variable directly.SELECT @v = SUM(Qty) FROM SaleItemRecords WHERE SaleID = 53928 -- set variable from a result of statement

錯誤處理

Transact-SQL可以在區塊中使用下列方式來處理或引發錯誤:

RAISERROR,擲出自定義的錯誤狀況。TRY ... CATCH,使用結構化的方式來處理錯誤(只有Microsoft SQL Server實現的Transact-SQL支持)。PRINT,可以印出變量值。

微軟Transact-sql介紹地址:http://msdn.microsoft.com/zh-cn/library/bb510741.aspx


Transact-SQL語句

可以把T-SQL理解成SQL的加強和擴充版本,感覺更像一種編程語言而不僅僅是查詢語言了。加入了 變量說明 數據定義 數據控制 流程控制等功能 還支持內嵌函數
具體的幾句話說不清楚 用一用就知道了
 

transact-SQL 命令其實就是SQL語句對?

數據庫中的SQL一般是指標准SQL,即ANSI SQL-92。T-SQL是SQL Server的語言引擎,而Oracle的語言引擎卻是PLSQL。這兩種查詢語言都對ANSI SQL-92標准進行了擴展以提供額外的支持力度。
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved