首頁  >  文章  >  資料庫  >  什麼是T-SQL?

什麼是T-SQL?

藏色散人
藏色散人原創
2019-03-26 13:24:5111791瀏覽

Transact-SQL通常縮寫為T-SQL,或是TSQL,是Microsoft和Sybase對SQL的專有擴充。 Transact-SQL對SQL標準進行擴展,以包含SQL標準中不包含的額外特性。

什麼是T-SQL?

下面是一個簡單的T-SQL語句的範例:

CREATE DATABASE Movies;

這是一個簡單的T- SQL範例。這將會建立一個名為Movies的新資料庫。

但是,T-SQL提供了在此語句中包含的其他選項,例如資料庫檔案應該位於何處、這些檔案的大小、它們的最大大小應該是多少,等等。

T-SQL的一些特性包括:

1、程式設計

2、局部變數

3、支援字符串處理、資料處理、數學等多種功能

4、對DELETE和UPDATE語句的變更。特別是,它們允許添加FROM子句,這允許包含連接。

5、T-SQL有一個BULK INSERT批次插入語句,讓你以使用者指定的格式將資料檔案匯入資料庫表或檢視。

上述擴充功能的主要好處之一是,在使用T-SQL和SQL時,你有更多的可程式性。例如,預存程序允許你將程式設計邏輯合併到資料庫中。你可以將一個或多個參數傳遞給預存過程,預存程序將會傳回一個輸出,該輸出會根據參數的值而改變。

T-SQL也包含大量內建函數,以及支援使用者定義的函數。

一個內建函數的範例

下面是另一個基本的例子,這次使用的是T-SQL的內建函數之一:

SELECT GETDATE();

輸出:

2018-05-06 23:30:37.003

在本例中,我們使用T-SQL的GETDATE()函數傳回目前日期和時間。這與SELECT語句一起使用,SELECT語句是傳回資料的常用SQL語句。

我們也可以用這個函數作為另一個函數的參數。這裡有一個範例:

SELECT FORMAT(GETDATE(), 'MMM');

結果:

May

#T-SQL的歷史

雖然Transact-SQL(和SQL Server)最廣為人知的名稱是Microsoft,但它實際上是Microsoft和Sybase於1987年開始合作的結果。這一夥伴關係於1994年解散。

此後,T-SQL繼續得到兩家公司發布的資料庫產品的支持,但是,每家公司都按照自己的方向開發了自己的資料庫產品。因此,Sybase T-SQL和Microsoft T-SQL之間存在一些差異。

T-SQL與GUI工具

Transact-SQL是SQL Server的核心。 SQL Server中的大多數的操作都是使用T-SQL完成。即使您使用GUI工具(如SSMS或DBeaver)而實際上不進行任何編程,這也是正確的。無論何時使用應用程式與SQL Server交互,應用程式都會在背景使用T-SQL執行指定的任務。

但SQL Server並不是唯一支援Transact-SQL的資料庫管理系統。 Microsoft Azure SQL資料庫也支援T-SQL。應用程式使用的大多數T-SQL特性在Microsoft SQL Server和Azure SQL資料庫中都得到了完全支援(儘管有一些例外)。

關於GO指令

任何使用過T-SQL的人都可能熟悉GO指令。這個關鍵字通常放在一批語句的最後。例如,上面的第一個範例也可以這樣寫:

CREATE DATABASE Movies;
GO

然而,GO指令其實不是Transact-SQL的一部份。事實上,GO指令甚至不能佔用Transact-SQL語句的相同行。

GO是sqlcmd和osql實用程式以及SQL Server Management Studio程式碼編輯器可以識別的命令之一,這些命令可以促進批次和腳本的可讀性和執行。 GO指令將一批Transact-SQL語句的結束訊號傳送給SQL Server實用程式。

SQL Server實用程式將GO解釋為一個訊號,表示它們應該將目前這批Transact-SQL語句傳送到SQL Server的一個執行個體。當前這批語句由上次執行操作以來輸入的所有語句組成,如果這是第一次執行操作,則由自特別會話或腳本開始執行以來輸入的所有語句組成。

其他專有SQL擴充

Transact-SQL不是SQL標準的唯一擴充。各種資料庫系統都有自己的擴充。例如,Oracle使用一種私有的過程語言PL/SQL, PostgreSQL使用一種流程語言PL/pgSQL。

儘管專有SQL擴充有其優點(例如擴充功能),但它們也有缺點。一個主要缺點是,如果你需要將資料庫從一個系統移植到另一個系統,它們可能會使事情變得困難。例如,如果你的組織突然決定使用Oracle而不是SQL Server,你可能需要遍歷所有SQL Server程式碼並為Oracle重寫它。這也要求你熟悉這兩個系統的語法。

相關推薦:《MySQL教學

以上是什麼是T-SQL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn