コース 20761-C: Querying Data with Transact-SQL

このコースは、生徒に Transact-SQL を紹介するためのコースです。最初の 3 日間を SQL Server カリキュラムの他のコースの知識を必要とする生徒に向けたコースとして教えることができるように設計されています。4 日目と 5 日目には、試験 70-761 に必要な残りのスキルが教えられます。

聴衆プロファイル

このコースの主な目的は、データベース管理、データベース開発、ビジネス インテリジェンスなど、SQL Server 関連のすべての分野で使用されている Transact-SQL 言語を理解することです。したがって、このコースの主な対象者は、データベース管理者、データベース開発者、および BI プロフェッショナルです。

職務: データベース管理者

習得したスキル

  • SQL Server の主要な機能とコンポーネントについて説明します。
  • T-SQL、セット、および述語ロジックについて説明します。
  • シングル テーブル SELECT ステートメントを記述します。

前提条件

  • Microsoft Windows オペレーティング システムとそのコア機能に関する基本的な知識。
  • リレーショナル データベースの実用的な知識。

コースのアウトライン

モジュール 1: Microsoft SQL Server の概要

このモジュールでは、SQL Server、クラウド バージョンを含む SQL Server のバージョン、および SQL Server Management Studio を使用して SQL Server に接続する方法を紹介します。

レッスン

  • SQL Server の基本アーキテクチャ
  • SQL Server のエディションとバージョン
  • SQL Server Management Studio の概要

ラボ: SQL Server ツールの操作

  • SQL Server Management Studio の操作
  • T-SQL スクリプトの作成と整理
  • Books Online の使用

本モジュールを終了すると、受講者は以下のことができるようになります:

  • リレーショナル データベースおよび Transact-SQL クエリについて説明する。
  • SQL Server のオンプレミスおよびクラウド ベースのエディションとバージョンについて説明する。
  • SQL Server Management Studio (SSMS) を使用して SQL Server のインスタンスに接続し、インスタンスに含まれるデータベースを探索し、T-SQL クエリを含むスクリプト ファイルを操作する方法について説明する。

モジュール 2: T-SQL クエリ入門

このモジュールでは、T-SQL の要素と、クエリの記述における T-SQL のロールについて説明します。SQL Server でのセットの使用について説明します。SQL Server での述語ロジックの使用について説明します。SELECT ステートメントでの操作の論理的な順序について説明します。

レッスン

  • T-SQL の紹介
  • セットについて
  • 述語論理を理解する
  • SELECT ステートメントの操作の論理的な順序を理解する

ラボ: T-SQL クエリ入門

  • 基本的な SELECT ステートメントの実行
  • 述語を使用したデータをフィルタリングするクエリの実行
  • ORDER BY を使用したデータをソートするクエリの実行

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SELECT ステートメントの記述における T-SQL の役割について説明する。
  • T-SQL 言語の要素と、クエリの記述に役立つ要素について説明する。
  • リレーショナル データベースの数学的基盤の 1 つである集合論の概念について説明し、SQL Server のクエリについての考え方への適用を支援する
  • 述語ロジックについて説明し、SQL Server へのクエリへの適用について調べる。
  • SELECT ステートメントの要素について説明し、要素が評価される順序について説明し、この理解をクエリを作成するための実際的なアプローチに適用する。

モジュール 3: SELECT クエリの作成

このモジュールでは、単一の表に対するクエリに焦点を当てて、SELECT ステートメントの基本を紹介します。

レッスン

  • 単純な SELECT ステートメントの作成
  • DISTINCT による重複の排除
  • 列と表のエイリアスの使用
  • 単純な CASE 式の記述

ラボ: 基本的な SELECT ステートメントの記述

  • 単純な SELECT ステートメントの作成
  • DISTINCT を使用した重複の排除
  • 列と表のエイリアスの使用
  • 単純な CASE 式の使用

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SELECT ステートメントの構造と形式、およびクエリに機能性と可読性を追加する拡張機能について説明する
  • DISTINCT 句を使用して重複を排除する方法を説明する
  • 列とテーブルのエイリアスの使用について説明する
  • CASE 式を理解して使用する

モジュール 4: 複数のテーブルのクエリ

このモジュールでは、Microsoft SQL Server の複数のソースからのデータを組み合わせるクエリを作成する方法について説明します。

レッスン

  • 結合について
  • 内部結合を使用したクエリ
  • 外部結合を使用したクエリ
  • クロス結合と自己結合を使用したクエリ

ラボ: 複数の表のクエリ

  • 内部結合を使用するクエリの記述
  • 複数テーブルの内部結合を使用するクエリの記述
  • 自己結合を使用するクエリの記述
  • 外部結合を使用するクエリの記述
  • クロス結合を使用するクエリの作成

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SQL Server の結合の基本について説明する
  • 内部結合クエリを作成する
  • 外部結合を使用するクエリを記述する
  • 追加の結合タイプを使用する

モジュール 5: データのソートとフィルタリング

このモジュールでは、並べ替えとフィルタリングを実装する方法について説明します。

レッスン

  • データの並べ替え
  • 述語によるデータのフィルタリング
  • TOP と OFFSET-FETCH によるデータのフィルタリング
  • 不明な値の操作

ラボ: データのソートとフィルタリング

  • WHERE 句を使用してデータをフィルタリングするクエリの記述
  • ORDER BY 句を使用してデータをソートするクエリを作成する
  • TOP オプションを使用してデータをフィルタリングするクエリの記述
  • OFFSET-FETCH 句を使用してデータをフィルタリングするクエリを作成する

本モジュールを終了すると、受講者は以下のことができるようになります:

  • クエリに ORDER BY 句を追加して、クエリの出力に表示される行の順序を制御する方法について説明する
  • WHERE 句を作成して、述語と一致しない行を除外する方法について説明する。
  • TOP オプションを使用して SELECT 句で行の範囲を制限する方法について説明する。
  • ORDER BY 句の OFFSET-FETCH オプションを使用して行の範囲を制限する方法について説明する。
  • 3 値ロジックが未知の値と欠損値を説明する方法、SQL Server が NULL を使用して欠損値をマークする方法、およびクエリで NULL をテストする方法について説明する。

モジュール 6: SQL Server データ型の操作

このモジュールでは、SQL Server がデータを格納するために使用するデータ型を紹介します。

レッスン

  • SQL Server データ型の紹介
  • 文字データの操作
  • 日付と時刻データの操作

ラボ: SQL Server データ型の操作

  • 日付と時刻のデータを返すクエリの作成
  • 日付と時刻関数を使用するクエリの作成
  • 文字データを返すクエリの作成
  • 文字関数を返すクエリの作成

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SQL Server がデータの保存に使用する多くのデータ型と、データ型が型間で変換される方法を探る
  • SQL Server の文字ベースのデータ型、文字比較の仕組み、およびクエリで役立ついくつかの一般的な関数について説明する
  • テンポラル データの格納に使用されるデータ型、SQL Server で正しく解析されるように日付と時刻を入力する方法、および組み込み関数で日付と時刻を操作する方法について説明する。

モジュール 7: DML によるデータの変更

このモジュールでは、DML クエリを作成する方法と、その理由について説明します。

レッスン

  • 表へのデータの追加
  • データの変更と削除
  • 自動列値の生成

ラボ: DML によるデータの変更

  • DML を使用したレコードの挿入
  • DML を使用したレコードの更新と削除

本モジュールを終了すると、受講者は以下のことができるようになります:

  • INSERT および SELECT INTO ステートメントを使用する
  • UPDATE、MERGE、DELETE、および TRUNCATE を使用する。

モジュール 8: 組み込み関数の使用

このモジュールでは、SQL Server の数多くある組み込み関数のうちいくつかを紹介します。

レッスン

  • 組み込み関数を使用したクエリの記述
  • 変換関数の使用
  • 論理関数の使用
  • 関数を使用して NULL を処理する

ラボ: 組み込み関数の使用

  • 変換関数を使用したクエリの記述
  • 論理関数を使用したクエリの記述
  • null 可能性をテストするクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SQL Server によって提供される関数の種類を説明し、スカラー関数の操作に焦点を当てる
  • いくつかの SQL Server 関数を使用して、型間でデータを明示的に変換する方法について説明する
  • 式を評価してスカラー結果を返す論理関数の使用方法について説明する。
  • NULL を操作するための追加機能について説明する

モジュール 9: データのグループ化と集計

このモジュールでは、集計関数の使用方法について説明します。

レッスン

  • 集計関数の使用
  • GROUP BY 句の使用
  • HAVING によるグループのフィルタリング

ラボ: データのグループ化と集計

  • GROUP BY 句を使用するクエリの記述
  • 集計関数を使用したクエリの記述
  • DISTINCT 集計関数を使用したクエリの記述
  • HAVING 句を使用してグループをフィルタリングするクエリを作成する

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SQL Server の組み込み集計関数について説明し、それを使用してクエリを記述する。
  • GROUP BY 句を使用して行を区切るクエリを記述する。
  • HAVING 句を使用してグループをフィルタリングするクエリを記述する。

モジュール 10: サブクエリの使用

このモジュールでは、サブクエリのいくつかのタイプと、それらをいつどのように使用するかについて説明します。

レッスン

  • 自己完結型サブクエリの作成
  • 相関サブクエリの作成
  • サブクエリでの EXISTS 述語の使用

ラボ: サブクエリの使用

  • 自己完結型サブクエリを使用するクエリの記述
  • スカラーおよびマルチ結果サブクエリを使用するクエリの記述
  • 相関サブクエリと EXISTS 句を使用するクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • SELECT ステートメントでサブクエリを使用できる場所について説明する。
  • SELECT ステートメントで相関サブクエリを使用するクエリを作成する
  • WHERE 句で EXISTS 述語を使用するクエリを記述して、条件を満たす行が存在するかどうかをテストする
  • EXISTS 述語を使用して、サブクエリ内の行の存在を効率的にチェックする。

モジュール 11: テーブル式の使用

このコースでは以前、外部呼び出しクエリに結果を返す式としてサブクエリを使用する方法を学びました。サブクエリと同様に、テーブル式はクエリ式ですが、テーブル式は、有効なリレーショナルテーブルのデータを操作するのと同じように、名前を付けて結果を操作できるようにすることで、この考え方を拡張します。Microsoft SQL Server は、派生テーブル、共通テーブル式 (CTE)、ビュー、およびインライン テーブル値関数 (TVF) の 4 種類のテーブル式をサポートしています。このモジュールでは、これらの形式のテーブル式を使用する方法と、それらを使用してクエリを作成するためのモジュール式のアプローチを作成する方法を学びます。

レッスン

  • ビューの使用
  • インライン表値関数の使用
  • 派生表の使用
  • 共通表式の使用

ラボ: テーブル式の使用

  • ビューを使用したクエリの記述
  • 派生テーブルを使用したクエリの記述
  • 共通テーブル式 (CTE) を使用するクエリの記述
  • インライン テーブル値式 (TVF) を使用するクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ビューから結果を返すクエリを記述する。
  • 単純なインライン TVF の作成に CREATE FUNCTION ステートメントを使用する。
  • 派生テーブルから結果を作成および取得するクエリを記述する。
  • CTE を作成し、テーブル式から結果を返すクエリを記述する。

モジュール 12: 集合演算子の使用

このモジュールでは、2 つの入力セット間の行を比較するためのセット演算子 UNION、INTERSECT、および EXCEPT の使い方を紹介します。

レッスン

  • UNION 演算子を使用したクエリの記述
  • EXCEPT および INTERSECT の使用
  • APPLY の使用

ラボ: 集合演算子の使用

  • UNION セット演算子と UNION ALL を使用するクエリの記述
  • CROSS APPLY および OUTER APPLY 演算子を使用するクエリの記述
  • EXCEPT および INTERSECT 演算子を使用するクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • UNION を使用して入力セットを組み合わせるクエリを記述する。
  • UNION ALL を使用して入力セットを組み合わせるクエリを作成する
  • EXCEPT 演算子を使用して、1 つのセットの行のみを返し、別のセットは返さないクエリを記述する。
  • INTERSECT 演算子を使用して両方のセットに存在する行のみを返すクエリを作成する
  • CROSS APPLY 演算子を使用してクエリを記述する。
  • OUTER APPLY 演算子を使用してクエリを作成する

モジュール 13: ウィンドウのランキング、オフセット、および集計関数の使用

このモジュールでは、ウィンドウ関数を使用する利点について説明します。ウィンドウ関数を、パーティションやフレームを含む、OVER 句で定義された行に制限します。ウィンドウ関数を使用して行のウィンドウを操作し、ランキング、集計、オフセット比較の結果を返すクエリを記述します。

レッスン

  • OVER でウィンドウを作成する
  • ウィンドウ関数の探索

ラボ: ウィンドウのランキング、オフセット、および集計関数の使用

  • ランキング関数を使用したクエリの記述
  • オフセット関数を使用したクエリの記述
  • ウィンドウ集計関数を使用したクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ウィンドウの定義に使用される T-SQL コンポーネント、およびウィンドウ間の関係について説明する。
  • ウィンドウを定義するためのパーティション化、順序付け、およびフレーミングを使用して、OVER 句を使用するクエリを記述する。
  • ウィンドウ集計関数を使用してクエリを記述する
  • ウィンドウ ランキング関数を使用してクエリを記述する
  • ウィンドウ オフセット関数を使用してクエリを記述する

モジュール 14: セットのピボットとグループ化

このモジュールでは、結果セットをピボットおよびアンピボットする書き込みクエリについて説明します。グループ化セットを使用して複数のグループ化を指定するクエリを記述します。

レッスン

  • PIVOT および UNPIVOT を使用したクエリの記述
  • グループ化セットの操作

ラボ: セットのピボットとグループ化

  • PIVOT 演算子を使用したクエリの記述
  • UNPIVOT 演算子を使用したクエリの記述
  • GROUPING SETS CUBE および ROLLUP サブ句を使用するクエリの記述

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ピボット データを T-SQL クエリで使用する方法について説明する。
  • PIVOT 演算子を使用して、行から列にデータをピボットするクエリを記述する。
  • UNPIVOT 演算子を使用して、列から行にデータをアンピボットするクエリを記述する。
  • GROUPING SETS 副次句を使用してクエリを記述する。
  • ROLLUP AND CUBE を使用するクエリを記述する。
  • GROUPING_ID 関数を使用してクエリを記述する

モジュール 15: ストアド プロシージャの実行

このモジュールでは、ストアド プロシージャを実行して結果を返す方法について説明します。パラメータをプロシージャに渡します。SELECT ステートメントをカプセル化する単純なストアド プロシージャを作成します。EXEC および sp_executesql を使用して動的 SQL を構築および実行します。

レッスン

  • ストアドプロシージャを使用したデータのクエリ
  • ストアド プロシージャにパラメーターを渡す
  • 単純なストアド プロシージャの作成
  • Dynamic SQL の操作

ラボ: ストアド プロシージャの実行

  • EXECUTE ステートメントを使用してストアド プロシージャを呼び出す
  • ストアド プロシージャにパラメーターを渡す
  • システム ストアド プロシージャの実行

本モジュールを終了すると、受講者は以下のことができるようになります:

  • ストアド プロシージャとその使用について説明する。
  • ストアド プロシージャを実行してデータを返す T-SQL ステートメントを記述する。
  • ストアド プロシージャに入力パラメーターを渡す EXECUTE ステートメントを記述する。
  • 出力パラメーターを準備し、ストアド プロシージャを実行する T-SQL バッチを記述する。
  • CREATE PROCEDURE ステートメントを使用して、ストアド プロシージャを記述する。
  • 入力パラメータを受け入れるストアド プロシージャを作成する。
  • T-SQL を動的に構築する方法について説明する。
  • ダイナミック SQL を使用してクエリを記述する

モジュール 16: T-SQL を使用したプログラミング

このモジュールでは、プログラミング要素を使用して T-SQL コードを拡張する方法について説明します。

レッスン

  • T-SQL プログラミング要素
  • プログラム フローの制御

ラボ: T-SQL を使用したプログラミング

  • 変数の宣言とバッチの区切り
  • フロー制御要素の使用
  • 動的 SQL ステートメントでの変数の使用
  • 同義語の使用

本モジュールを終了すると、受講者は以下のことができるようになります:

  • Microsoft SQL Server がステートメントのコレクションをバッチとしてどのように扱うかについて説明する。
  • SQL Server で実行する T-SQL コードのバッチを作成および送信する。
  • SQL Server が一時オブジェクトを変数として格納する方法について説明する。
  • 変数を宣言して割り当てるコードを記述する。
  • シノニムを作成して呼び出す
  • T-SQL のフロー制御要素について説明する。
  • IF ELSE ブロックを使用して T-SQL コードを記述する。
  • WHILEを使用する T-SQL コードを記述する。

モジュール 17: エラー処理の実装

このモジュールでは、T-SQL のエラー処理を紹介します。

レッスン

  • T-SQL エラー処理の実装
  • 構造化された例外処理の実装

ラボ: エラー処理の実装

  • TRY/CATCH によるエラーのリダイレクト
  • THROW を使用してエラーメッセージをクライアントに返す

本モジュールを終了すると、受講者は以下のことができるようになります:

  • T-SQL エラー処理を実装する。
  • 構造化例外処理を実装する。

モジュール 18: トランザクションの実装

このモジュールでは、トランザクションを実装する方法について説明します。

レッスン

  • トランザクションとデータベース エンジン
  • トランザクションの制御

ラボ: トランザクションの実装

  • BEGIN、COMMIT、および ROLLBACK によるトランザクションの制御
  • CATCH ブロックへのエラー処理の追加

本モジュールを終了すると、受講者は以下のことができるようになります:

  • トランザクションと、バッチとトランザクションの違いを説明する。
  • バッチと、それらが SQL Server によってどのように処理されるかについて説明する。
  • トランザクション制御言語 (TCL) ステートメントを使用してトランザクションを作成および管理する。
  • SET XACT_ABORT を使用して、SQL Server が TRY/CATCH ブロック外のトランザクションを処理するように定義する。