T-SQLとはMicrosoft社によってデータベース言語SQLを拡張して作成されたプログラミング言語です。主に『Microsoft SQL Server』や『Adaptive Server Enterprise』などのデータベース管理システム(RDBMS)で利用されます。この記事ではT-SQLについて理解をするために特徴、使用ツール、その他SQL独自拡張言語などの基礎知識を簡単に解説していきます。
T-SQLとはMicrosoft SQL Serverにおいて使用するためにMicrosoft社とSybase社によって共同開発されたデータベース言語SQLを拡張して作成されたプログラミング言語です。正式名称は「Transact-SQL」となっておりT-SQLという略して呼ばれることが多いです。特徴として原型のSQLを強化するために制御フロー言語、局所変数、グローバル変数などの機能が追加されております。
SQLとはリレーショナルデータベースの管理・操作をするため最も普及されているデータベース言語です。主な用途としてデータベース管理システム(DBMS)へデータの検索、追加、削除、更新などの指示のために使用されます。1970年代にIBM社の開発によって誕生した『Structured English Query Language(SEQUEL)』が元になっております。そのことから広く知れ渡っている呼び名は『シーケル』です。またSQLは国際標準化機構(ISO)で規格化をされております。そのためMySQL、Oracle、PostgreSQLなど様々なデータベース管理システムにおいてもSQLにて対応することが可能です。またSQLの代表的な拡張プログラム言語としてPL/SQLやT-SQLなどが挙げられます。
SQLの歴史や特徴について解説された記事はこちら>>
データベースとは様々な情報を整理し効率よく使用するために格納するデータの集合体のことです。データベースには様々なデータを効率よく管理するための機能が用意されております。また大量のデータを高速に処理することも可能です。用途は様々で顧客管理や在庫管理などの複数のデータを取り扱うことが必要とされる業務に使用されます。主なデータベースの種類としてOracleDBやMySQLなどが挙げられます。
データベースの種類や特徴を解説している記事はこちら>>
T-SQLの特徴を見ていきましょう。
T-SQLはは制御フロー言語という特徴があります。制御実行のためのキーワードは以下のようなものが挙げられます。
BEGIN…END | Transact-SQLステートメントのグループを実行できるように、一連のステートメントを囲み |
BREAK | 現在のWHILE ループから抜けだす |
CONTINUE | WHILE ループを再開 |
GOTO | 実行の流れを指定のラベルに分岐 |
IF…ELSE | Transact-SQL ステートメントを実行する条件を設定 |
RETURN | クエリまたはプロシージャを無条件で終了 |
THROW | 例外を発生させ、TRY…CATCH 構造の CATCH ブロックに実行制御を移す |
TRY…CATCH | Transact-SQLのエラー処理を実装 |
WAITFOR | 指定の時間経過までバッチ、ストアド プロシージャ、またはトランザクションの実行をブロック |
WHILE | SQLステートメントまたはステートメント ブロックの実行を繰り返すための条件を設定 |
T-SQLは局所変数という特徴があります。局所変数とは「ローカル変数」とも呼ばれ「一定の処理範囲内だけで参照できる変数」のことです。局所変数は実行中のスクリプト内でのみ使用され、T-SQLではユーザー定義の広域変数をサポートしていません。
T-SQLはグローバル変数という特徴があります。グローバル変数とはコンピュータプログラミングにおいて全てのスコープからアクセスできる変数のことです。T-SQLでのグローバル変数の記述は「@@」から書き始められます。
T-SQLを使用するツールを見ていきましょう。
SQL Server Management Studio (SSMS)とはSQL ServerからAzure SQL Databaseまで、SQLインフラストラクチャを管理するための統合環境です。
SQL Server Management Studio (SSMS)の公式ページはこちら>>
SQL Server Data Tools (SSDT)とはSQL Serverを使用するアプリケーション開発者のための開発支援ツールです。SQL ServerからAzure SQL Databaseまで、SQLインフラストラクチャを管理するための統合環境として利用されます。
SQL Server Data Tools (SSDT)の公式ページはこちら>>
sqlcmdユーティリティを使用すると、T-SQLステートメントやシステムプロシージャ、スクリプトファイルを使用可能なさまざまなモードで入力できます。
sqlcmdユーティリティの公式ページはこちら>>
Azure Data StudioとはWindows、macOS、Linux 上のデータプラットフォームがオンプレミスとクラウドである、データ プロフェッショナルを対象にした、クロスプラットフォーム データベース ツールです。
Azure Data Studioの公式ページはこちら>>
T-SQL以外のSQL独自拡張品について見ていきましょう。
PL/SQLとはOracle Databaseにおいて使用するためにOracle社によってデータベース言語SQLを拡張して作成されたプログラミング言語です。SQLが非手続型であるのに対し、PL/SQLは手続き型を採用しております。それからも分かるようにPL/SQLという名称は「Procedural Language(手続き型言語)」が由来しております。
PL/SQLで作成されたプログラムを『PL/SQLブロック』と呼び、宣言部・実行部・例外処理部の3つの部で構成されます。特徴として「SQLとの親和性が高い」「移植性に優れている」「パフォーマンスが高い」ことが挙げられます。
PL/pgSQLとはPostgreSQLにおいて使用するために『PostgreSQL Global Development Group』によってデータベース言語SQLを拡張して開発されたプログラミング言語です。正式名称は「Procedural Language/PostgreSQL Structured Query Language」となっておりPL/pgSQLと略して呼ばれることが多いです。PL/pgSQLは「SQLよりも複雑な処理を実現」「簡単に扱える」という目的の元に設計されました。
T-SQLを理解するために特徴、使用ツール、その他SQL独自拡張言語などの基礎知識を簡単に解説させて頂きました。T-SQLを一言で表すと『Microsoft社によってデータベース言語SQLを拡張して作成されたデータベース言語』です。T-SQLの特徴として「制御フロー言語」「局所変数」「グローバル変数」などが挙げられます。T-SQLについてこの記事で記載されている最低限の内容は理解しておくようにしましょう。