SQLServer T-SQLとは

今回は、Microsoft SQL Serverで使用されるSQL(Structured Query Language)の拡張版である

T-SQL(Transact-SQL)について紹介していこうと思います。

標準SQLに加え、条件分岐やループ、ストアドプロシージャなどのプログラミング機能が追加されています。

T-SQLを習得すると、データの抽出・更新・削除だけでなく、より高度なデータ処理やバッチ処理を効率的に行うことができます。

それではさっそく学んでいきましょう。

T-SQLの基本構文

まずは、T-SQLの基本構文を紹介していきます。

これは通常のSQLと全く同じですので、特に問題ないと思います。

1 SELECT文(データの取得)

T-SQLの最も基本的なコマンドはSELECT文です。データベースから必要な情報を取得するために使用されます。

SELECT 列名 FROM テーブル名;

例えば、"Employees" テーブルの "Name" 列を取得する場合は、下記のようになります。

SELECT Name FROM Employees;

SELECT文の記事の詳細こちらを参考にしてください。

 

2 データの追加(INSERT文)

データを追加する場合は、INSERT文を使用します。

INSERT INTO テーブル名 (列名1, 列名2) VALUES (値1, 値2);

例:新しい従業員を追加する

INSERT INTO Employees (Name, Age) VALUES ('Tanaka', 28);

 

3 UPDATE文(データの更新)

既存のデータを変更するには、UPDATE文を使用します。

UPDATE テーブル名 SET 列名 = 新しい値 WHERE 条件;

例:IDが1の従業員の年齢を変更する

UPDATE Employees SET Age = 35 WHERE ID = 1;

 

4 DELETE文(データの削除)

特定の行を削除するには、DELETE文を使用します。

DELETE FROM テーブル名 WHERE 条件;

例:IDが2の従業員を削除する

DELETE FROM Employees WHERE ID = 2;

 

T-SQLの特徴

ここからが、T-SQLの見どころとなってきます。

T-SQLでは、変数の利用や、条件分岐、などが利用できます。

それぞれ紹介していきます。

1 変数について DECLEAR

T-SQLでは、変数を使用することができます。

--変数宣言
DECLARE @intValue INT;
--変数の設定
SET @intValue = 100;

DECLEARE で変数を宣言し、SETで値を格納できます。

また、変数を宣言する時は、「@」を付ける必要があります。

 

2 条件分岐 IF文

IFを利用することで条件分岐を行うことができます。

SQLので取得した値を変数に格納し、条件分岐するなど処理が可能です。

IF @intValue >= 30
BEGIN
    PRINT '30以上です';
END 
ELSE 
BEGIN
    PRINT '30未満です';
END;

 

3 繰り返し While文

T-SQLで、While文を使うことで、繰り返しの処理を行うことが可能です。

WHILE ループ条件
BEGIN
    繰り返し
END

ループ条件を10より小さいときとして、0からループさせてみます。

WHILE @intValue < 10
BEGIN 
	SET @intValue = @intValue + 1
	PRINT @intValue
END;

 

4 ストアドプロシージャ

ストアドプロシージャは、複数のSQLコマンドをまとめて管理することができる機能です。

「GetEmployees」という名前のストアドプロシージャを作成し、

Employeesテーブルの全てのデータを表示します。

CREATE PROCEDURE GetEmployees
AS
BEGIN
    SELECT * FROM Employees;
END;

作成したプロシージャを実行するのは、EXECを使います。

EXEC GetEmployees;

実行すると、SELECT文の結果が表示されます。

 

T-SQLサンプル

今回紹介した内容のストアドプロシージャを作成しました。

--ストアドプロシージャ作成
CREATE PROCEDURE [dbo].[GetEmployees]

AS
BEGIN

    --変数宣言
    DECLARE @intValue INT;

	--変数の設定
    SET @intValue = 100;

	--条件分岐
    IF @intValue >= 30
	BEGIN
        PRINT '30以上です';
    END 
	ELSE 
	BEGIN
        PRINT '30未満です';
    END;

	--繰り返し
	SET @intValue = 0;
	WHILE @intValue < 10
	BEGIN 
	    SET @intValue = @intValue + 1
		PRINT @intValue
	END;

	-- SELECT文
	SELECT * FROM Employees;

END;

実行用

EXEC	[dbo].[GetEmployees]

結果:

PRINTの内容が表示されています。

SELECTの結果が表示されています。

まとめ

T-SQLは、標準SQLを拡張し、より高度なデータ操作を可能にする強力な言語です。

まずは基本的なSELECT、INSERT、UPDATE、DELETEをマスターし、

徐々に高度な機能へとステップアップしましょう!

おすすめの記事