sql >> データベース >  >> RDS >> Sqlserver

SQL Serverチュートリアル–Transact-SQLをマスターするために必要なすべて

    毎日膨大な量のデータが生成される今日の市場では、データの処理方法を理解することが非常に重要です。 SQL Serverは、データを処理するためにMicrosoftによって開発された統合環境です。 SQL Serverチュートリアルのこの記事では、データベースを探索するために必要なすべての操作とコマンドについて学習します。

    理解を深めるために、ブログを次のカテゴリに分類しました。

    コマンド 説明

    データ定義言語コマンド(DDL)

    この一連のコマンドは、データベースを定義するために使用されます。

    データ操作言語コマンド(DML)

    操作コマンドは、データベースに存在するデータを操作するために使用されます。

    データ制御言語コマンド(DCL)

    この一連のコマンドは、データベースシステムの権限、権限、およびその他の制御を処理します。

    トランザクション制御言語コマンド(TCL)

    これらのコマンドは、データベースのトランザクションを処理するために使用されます。

    この記事では、コマンドとは別に、次のトピックについて説明します。

    1. SQL Serverとは何ですか?
    2. SQLServerをインストールする
    3. SSMSを使用してSQLServerに接続する
    4. Access Database Engine
    5. SQLServerアーキテクチャ
    6. SQLのコメント
    7. SQLServerのデータ型
    8. データベースのキー
    9. データベースの制約
    10. オペレーター
    11. 集計関数
    12. ユーザー定義関数
    13. ネストされたクエリ
    14. 参加
    15. ループ
    16. ストアドプロシージャ
    17. 例外処理

    ***注*** このSQLServerチュートリアルでは、コマンドの学習方法と記述方法を示すために、以下のデータベースを例として検討します。

    StudentID StudentName ParentName PhoneNumber 住所 都市
    1 Vihaan Akriti Mehra 9955339966 ブリゲードロードブロック9 ハイデラバード インド
    2 マナサ Shourya Sharma 9234568762 Mayo Road 15 コルカタ インド
    3 Anay Soumya Mishra 9876914261 マラサハリハウスNo 101 バンガロール インド
    4 Preeti Rohan Sinha 9765432234 Queens Road 40 デリー インド
    5 シャナヤ Abhinay Agarwal 9878969068 Oberoi Street 21 ムンバイ インド

    SQL Serverで使用されるさまざまなコマンドを理解する前に、SQL Serverとは何か、そのアーキテクチャ、およびそのインストール方法を理解しましょう。

    SQL Serverとは何ですか?

    Microsoft SQL Serverは、リレーショナルデータベース管理システムです。構造化クエリ言語をサポートし、 Transaction-SQL(T-SQL)であるSQL言語の独自の実装が付属しています。 。 SQL ServerManagementStudioであるSQLデータベースを処理するための統合環境があります。

    SQLServerの主要なコンポーネントは次のとおりです。

    • データベースエンジン: このコンポーネントは、ストレージ、迅速なトランザクション処理、およびデータの保護を処理します。
    • SQL Server – このサービスは、MS SQL Serverのインスタンスを開始、停止、一時停止、および続行するために使用されます。
    • SQL Serverエージェント– サーバーエージェントサービスはタスクスケジューラの役割を果たし、任意のイベントによって、または要件に従ってトリガーされます。
    • SQLServerブラウザ –このサービスは、着信要求を目的のSQLServerインスタンスに接続するために使用されます。
    • SQL Server全文検索– ユーザーがSQLテーブルの文字データに対してフルテキストクエリを実行できるようにするために使用されます。
    • SQLServerVSSライター SQLServerが実行されていないときにデータファイルのバックアップと復元を許可します。
    • SQL Server Analysis Services(SSAS)– このサービスは、データ分析、データマイニング、機械学習機能を提供するために使用されます。 SQL Serverは、高度なデータ分析のためにPythonおよびRとも統合されています。
    • SQL Server Reporting Services(SSRS)– 名前が示すように、このサービスは、Hadoopとの統合を含む機能と意思決定機能を提供するために使用されます。
    • SQL Server Integration Services(SSIS)– このサービスは、複数のデータソースからのさまざまなタイプのデータに対してETL操作を実行するために使用されます。

    これで、MS SQL Serverとは何かがわかったので、SQL Serverチュートリアルのこの記事に進み、SQLServerのインストールとセットアップの方法を理解しましょう。

    >

    SQLServerのインストール

    次の手順に従ってSQLServerをインストールします。

    ステップ1: MicrosoftSQLServerダウンロードの公式ページに移動します 、オンプレミスまたはクラウドのいずれかにSQLServerをインストールするオプションがあります。

    ステップ2: 次に、下にスクロールすると、次の2つのオプションが表示されます。 Developer&Enterprise Edition 。ここでは、開発者版をダウンロードします 。ダウンロードするには、今すぐダウンロードをクリックするだけです。 オプション。以下を参照してください。

    ステップ3: アプリケーションがダウンロードされたら、ファイルをダブルクリックすると、次のウィンドウが表示されます。

    ステップ4: これで、SQLServerをセットアップするための3つのオプションのいずれかを選択できます。ここでは、基本オプションを選択します 。インストールタイプオプションを選択すると、次の画面は使用許諾契約に同意することです。これを行うには、同意するをクリックします 次のウィンドウで。

    ステップ5: 次に、SQLServerのインストール場所を指定する必要があります。次に、[インストール]をクリックする必要があります。

    インストールをクリックしたら 、必要なパッケージがダウンロードされていることがわかります。これで、インストールが完了すると、次の画面が表示されます。

    ここでは、先に進んで[今すぐ接続]をクリックするか、インストールをカスタマイズできます。ご理解のほどよろしくお願いいたします。カスタマイズを選択します。

    ステップ6: カスタマイズをクリックしたら 上記のウィンドウで、次のウィザードが開きます。次のウィンドウで、[次へ]をクリックします。

    ステップ7: ルールが自動的にインストールされたら、[次へ]をクリックします 。以下を参照してください。

    ステップ8: 次に、インストールタイプを選択する必要があります。したがって、実行を選択します SQLServer2017の新規インストール オプションをクリックし、次へをクリックします。

    ステップ9: 開いたウィザードで、エディションを選択します:開発者。 次に、次へをクリックします 。以下を参照してください。

    ステップ10: 次に、ラジオボタンをチェックインしてライセンス契約を読み、同意してから、次へをクリックします。 。以下を参照してください。

    ステップ11: 以下のウィザードで、インストールする機能を選択できます。また、インスタンスのルートディレクトリを選択して、[次へ]をクリックすることもできます。 。ここでは、データベースエンジンサービスを選択します 。

    ステップ12: 次に、インスタンスに名前を付ける必要があります。そうすると、インスタンスIDが自動的に作成されます。ここでは、インスタンスに「edureka」という名前を付けます。次に、次へをクリックします。

    ステップ13: サーバー構成ウィザードで、[次へ]をクリックします 。

    ステップ14: ここで、認証モードを有効にする必要があります。ここに、Windows認証モードが表示されます および混合モード 。混合モードを選択します。次に、パスワードを入力してから、現在のユーザーを管理者として追加します 現在のユーザーの追加を選択します オプション。

    ステップ15: 次に、構成ファイルのパスを選択し、インストールをクリックします。 。

    インストールが完了すると、次の画面が表示されます。

    SSMSを使用してSQLServerに接続する

    SQL Serverをインストールしたら、次のステップはSQLServerをSQLServerManagementStudioに接続することです。これを行うには、以下の手順に従います。

    ステップ1: 次のウィンドウに戻り、SSMSのインストールをクリックします。 オプション。

    ステップ2: そのオプションをクリックすると、次のページにリダイレクトされます。ここで、SSMSのダウンロードを選択する必要があります。

    ステップ3: セットアップがダウンロードされたら、アプリケーションをダブルクリックすると、次のウィザードが開きます。

    ステップ4: インストールオプションをクリックします 、上のウィンドウで、そのインストールが開始されることがわかります。

    ステップ5: インストールが完了すると、次のようなダイアログボックスが表示されます。

    SSMSをインストールしたら、次のステップはデータベースエンジンにアクセスすることです。 。

    データベースエンジンへのアクセス

    SQLサーバー管理スタジオを開いたとき スタートメニューから 、下の図に示すようなウィンドウが開きます。

    ここで、サーバー名、認証モードを指定し、接続をクリックします。

    接続をクリックした後 、次の画面が表示されます。

    皆さん、SQLServerのインストールとセットアップの方法です。ここで、このSQL Serverチュートリアルを進めて、SQLServerのアーキテクチャのさまざまなコンポーネントを理解しましょう。

    SQLServerアーキテクチャ

    SQLServerのアーキテクチャは次のとおりです。

    • サーバー −これは、SQLサービスがインストールされ、データベースが存在する場所です
    • リレーショナルエンジン −クエリパーサー、オプティマイザー、およびエグゼキューターが含まれます。実行はリレーショナルエンジンで行われます。
    • コマンドパーサー −クエリの構文をチェックし、クエリを機械語に変換します。
    • オプティマイザー −統計、クエリ、および代数ツリーを入力として取得することにより、実行プランを出力として準備します。
    • クエリエグゼキュータ −これはクエリが段階的に実行される場所です
    • ストレージエンジン −これは、ストレージシステムでのデータの保存と取得、データの操作、トランザクションの管理とロックを担当します。

    これで、SQL Serverとそのさまざまなコンポーネントのセットアップとインストールの方法がわかったので、SQLServerでのコマンドの記述を始めましょう。ただし、その前に、SQLServerでコメントを作成する方法について説明します。

    SQLServerのコメント

    SQLでコメントを付けるには、2つの方法があります。つまり、 sを使用します。 単一行コメント またはm 究極のコメント

    単一行のコメント

    1行のコメントは、 2つのハイフン(–)で始まります。 したがって、(–)の後に記載されているテキストは、1行の終わりまでコンパイラによって無視されます。

    例:

    --Example of single line comments
    

    複数行のコメント

    複数行のコメントは/ *で始まり、 * /で終わります。 。したがって、 / *の間に記載されているテキスト および*/ コンパイラによって無視されます。

    例:

    /* Example for 
    multi-line comments */
    

    SQL Serverチュートリアルのこの記事では、最初のコマンドセット、つまりデータ定義言語コマンドから始めましょう。

    データ定義言語コマンド

    この記事のこのセクションでは、データベースを定義するためのコマンドについて説明します。コマンドは次のとおりです。

    • 作成
    • ドロップ
    • 切り捨て
    • 名前の変更

    作成

    このステートメントは、テーブル、データベース、またはビューを作成するために使用されます。

    「CREATEDATABASE」ステートメント

    このステートメントは、データベースを作成するために使用されます。

    構文

    CREATE DATABASE DatabaseName;

    CREATE DATABASE Students;
    

    「CREATETABLE」ステートメント

    名前が示すように、このステートメントはテーブルの作成に使用されます。

    構文

    CREATE TABLE TableName (
    Column1 datatype,
    Column2 datatype,
    Column3 datatype,
    ....
    
    ColumnN datatype
    );


    CREATE TABLE StudentInfo
    (
    StudentID int,
    StudentName varchar(8000),
    ParentName varchar(8000),
    PhoneNumber int,
    AddressofStudent varchar(8000),
    City varchar(8000),
    Country varchar(8000)
    );
    

    ドロップ

    このステートメントは、既存のテーブル、データベース、またはビューを削除するために使用されます。

    「DROPDATABASE」ステートメント

    このステートメントは、既存のデータベースを削除するために使用されます。以下のコマンドを実行すると、データベースに存在する完全な情報が失われます。

    構文

    DROP DATABASE DatabaseName;

    DROP DATABASE Students;
    

    「DROPTABLE」ステートメント

    このステートメントは、既存のテーブルを削除するために使用されます。以下のコマンドを実行すると、表にある完全な情報が失われます。

    構文

    DROP TABLE TableName;

    DROP TABLE StudentInfo;
    

    ALTERコマンドは、既存のテーブルの列または制約を追加、削除、または変更するために使用されます。

    「ALTERTABLE」ステートメント

    このステートメントは、既存のテーブルの列を追加、削除、変更するために使用されます。

    ADD /DROPCOLUMNを使用した「ALTERTABLE」ステートメント

    ALTER TABLEステートメントは、列を追加および削除するためにADD /DROPColumnコマンドとともに使用されます。

    構文

    ALTER TABLE TableName
    ADD ColumnName Datatype;
    
    ALTER TABLE TableName
    DROP COLUMN ColumnName;

    --ADD Column BloodGroup:
    ALTER TABLE StudentInfo
    ADD BloodGroup varchar(8000);
     
    --DROP Column BloodGroup:
    ALTER TABLE StudentInfo
    DROP COLUMN BloodGroup ;
    

    ALTERCOLUMNを使用した「ALTERTABLE」ステートメント

    ALTER TABLEステートメントをALTER列とともに使用して、テーブル内の既存の列のデータ型を変更できます。

    構文

    ALTER TABLE TableName
    ALTER COLUMN ColumnName Datatype;

    --Add a column DOB and change the data type from date to datetime.
    ALTER TABLE StudentInfo
    ADD DOB date;
    ALTER TABLE StudentInfo
    ALTER COLUMN DOB datetime;
    

    切り捨て

    このSQLコマンドは、テーブルに存在する情報を削除するために使用されますが、テーブル自体は削除しません。したがって、テーブル自体を削除するのではなく、テーブルに存在する情報を削除する場合は、TRUNCATEコマンドを使用する必要があります。それ以外の場合は、DROPコマンドを使用します。

    構文

    TRUNCATE TABLE TableName;

    TRUNCATE TABLE StudentInfo;
    

    名前の変更

    このステートメントは、1つ以上のテーブルの名前を変更するために使用されます。

    構文

    sp_rename 'OldTableName', 'NewTableName';

    sp_rename 'StudentInfo', 'Infostudents';
    

    SQL Serverチュートリアルのこの記事に進んで、SQLServerでサポートされているさまざまなデータ型を理解しましょう。

    SQLServerのデータ型

    データ型カテゴリ データ型名 説明 範囲/構文
    正確な数値 数値 数値を格納するために使用され、精度とスケール番号が固定されています – 10 ^ 38+1から10^38 –1。
    tinyint 整数値を格納するために使用されます 0〜255
    smallint 整数値を格納するために使用されます -2 ^ 15(-32,768)から2 ^ 15-1(32,767)
    bigint 整数値を格納するために使用されます -2 ^ 63(-9,223,372,036,854,775,808)から2 ^ 63-1(9,223,372,036,854,775,807)
    int 整数値を格納するために使用されます -2 ^ 31(-2,147,483,648)から2 ^ 31-1(2,147,483,647)
    ビット 0、1、またはNULLの値を表す整数データ型を格納します 0、1、またはNULL
    10進数 数値を格納するために使用され、精度とスケール番号が固定されています – 10 ^ 38+1から10^38 –1。
    smallmoney 通貨または通貨の値を保存するために使用されます。 – 214,748.3648〜214,748.3647
    お金 通貨または通貨の値を保存するために使用されます。 -922,337,203,685,477.5808から922,337,203,685,477.5807(-922,337,203,685,477.58
    Informaticaの場合は922,337,203,685,477.58になります。
    おおよその数値 float 浮動小数点数値データの格納に使用 – 1.79E + 308から-2.23E-308、0および2.23E-308から1.79E + 308
    実際の 浮動小数点数値データの格納に使用 – 3.40E +38から-1.18E– 38、0および1.18E –38から3.40E+ 38
    日付と時刻 日付 SQLServerで日付を定義するために使用されます。 構文:日付
    smalldatetime 時刻と組み合わせる日付を定義するために使用されます。ここで、時刻は1日24時間に基づいており、秒は常にゼロ(:00)であり、小数秒は含まれていません。 構文:smalldatetime
    日時 24時間制に基づく秒単位の時刻と組み合わせる日付を定義するために使用されます。 構文:日時
    datetime2 datetime2 既存の日時の延長としてです デフォルトの分数精度が大きく、日付範囲が大きいタイプ。 構文:datetime2
    datetimeoffset タイムゾーンを認識している時刻と組み合わせる日付を定義するために使用されます。 24時間制に基づいています。 構文:datetimeoffset
    時間 時刻を定義するために使用されます。 構文:時間
    文字列 char 固定サイズの文字を格納するために使用されます。 char [( n )]ここで、n値は1〜8,000の範囲で変化します
    varchar 可変長文字を格納するために使用されます。 varchar [( n | max)]ここで、n値は1〜8000の範囲で変化し、許可される最大ストレージは2GBです。
    text 可変長の非Unicodeデータを格納するために使用されます 許可される最大文字列長– 2 ^ 31-1(2,147,483,647)
    Unicode文字列 nchar 固定サイズの文字を格納するために使用されます。 nchar [(n)]ここで、nの値は1〜4000の範囲です
    nvarchar 可変長文字を格納するために使用されます。 varchar [( n | max)]ここで、n値は1〜4000で変化し、許可される最大ストレージは2GBです。
    ntext 可変長のUnicodeデータを格納するために使用されます 許可される最大文字列長– 2 ^ 30-1(2,147,483,647)
    バイナリ文字列 バイナリ いずれかの固定長のバイナリデータ型を格納するために使用されます binary [( n )]ここで、n値は1〜8,000の範囲で変化します
    varbinary いずれかの固定長のバイナリデータ型を格納するために使用されます varbinary [( n )]ここで、n値は1〜8000の範囲で変化し、許可される最大ストレージは2^31-1バイトです。
    画像 可変長のバイナリデータを保存するために使用されます 0 – 2 ^ 31-1(2,147,483,647)バイト
    その他のデータ型 カーソル これは、カーソルへの参照を含むストアドプロシージャまたは変数のOUTPUTパラメータのデータ型です。
    rowversion データベース内で自動的に生成された一意の2進数を公開するために使用されます。
    階層ID 階層内の位置を表すために使用されます。
    一意の識別子 16バイトのGUIDです。 構文:uniqueidentifier
    sql_variant SQLServerでサポートされているさまざまなデータ型の値を格納するために使用されます 構文:sql_variant
    xml XMLデータ型を格納するために使用されます。

    xml([コンテンツ|ドキュメント] xml_schemacollection)

    空間ジオメトリタイプ ユークリッド(フラット)座標系でデータを表すために使用されます。
    空間地理タイプ GPSの緯度や経度の座標などの楕円体(地球)データを保存するために使用されます。
    テーブル 後で処理するために結果セットを保存するために使用されます

    次に、この記事では、データベース内のさまざまなタイプのキーと制約について理解しましょう。

    データベース内のさまざまなタイプのキー

    データベースで使用されるさまざまな種類のキーは次のとおりです。

    • 候補キー– 候補キーは、テーブルを一意に識別できる属性のセットです。テーブルには複数の候補キーを含めることができ、選択した候補キーのうち、1つのキーが主キーとして選択されます。
    • スーパーキー– 属性のセットは、タプルを一意に識別できます。したがって、候補キー、一意キー、および主キーはスーパーキーですが、その逆は当てはまりません。
    • 主キー– 主キーは、すべてのタプルを一意に識別するために使用されます。
    • 代替キー– 代替キーは、主キーとして選択されていない候補キーです。
    • 一意キー– 一意キーは主キーに似ていますが、列に単一のNULL値を許可します。
    • 外部キー– 他の属性の値として存在する値のみをとることができる属性は、それが参照する属性への外部キーです。
    • 複合キー– 複合キーは、各タプルを一意に識別する2つ以上の列の組み合わせです。

    データベースで使用される制約

    データベースでは、テーブルに格納されるデータのルールを指定するために制約が使用されます。 SQLのさまざまなタイプの制約は次のとおりです。

    • NULLではありません
    • ユニーク
    • 確認
    • デフォルト
    • インデックス

    NOT NULL

    The NOT NULL constraint ensures that a column cannot have a NULL value.

    Example

    CREATE TABLE StudentsInfo
    (
    StudentID int NOT NULL,
    StudentName varchar(8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000)
    );
    
    --NOT NULL on ALTER TABLE
    ALTER TABLE StudentsInfo
    ALTER COLUMN PhoneNumber int NOT NULL;
    

    UNIQUE

    This constraint ensures that all the values in a column are unique.

    Example

    --UNIQUE on Create Table
     
    CREATE TABLE StudentsInfo
    (
    StudentID int NOT NULL UNIQUE,
    StudentName varchar(8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000)
    );
     
    --UNIQUE on Multiple Columns
     
    CREATE TABLE StudentsInfo
    (
    StudentID int NOT NULL,
    StudentName varchar(8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000)
    CONSTRAINT UC_Student_Info UNIQUE(StudentID, PhoneNumber)
    );
     
    --UNIQUE on ALTER TABLE
     
    ALTER TABLE StudentsInfo
    ADD UNIQUE (StudentID);
     
    --To drop a UNIQUE constraint
     
    ALTER TABLE  StudentsInfo
    DROP CONSTRAINT UC_Student_Info;
    

    CHECK

    The CHECK constraint ensures that all the values in a column satisfy a specific condition.

    Example

    --CHECK Constraint on CREATE TABLE
     
    CREATE TABLE StudentsInfo
    (
    StudentID int NOT NULL,
    StudentName varchar(8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000) CHECK (Country ='India')
    );
     
    --CHECK Constraint on multiple columns
     
    CREATE TABLE StudentsInfo
    (
    StudentID int NOT NULL,
    StudentName varchar8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000) CHECK (Country ='India'  AND City = 'Hyderabad')
    );
     
    --CHECK Constraint on ALTER TABLE
     
    ALTER TABLE StudentsInfo
    ADD CHECK (Country ='India');
     
    --To give a name to the CHECK Constraint
     
    ALTER TABLE StudentsInfo
    ADD CONSTRAINT CheckConstraintName CHECK (Country ='India');
     
    --To drop a CHECK Constraint
     
    ALTER TABLE StudentsInfo
    DROP CONSTRAINT CheckConstraintName;
    

    DEFAULT

    The DEFAULT constraint consists of a set of default values for a column when no value is specified.

    Example

    --DEFAULT Constraint on CREATE TABLE
     
    CREATE TABLE StudentsInfo
    (
    StudentID int,
    StudentName varchar(8000) NOT NULL,
    ParentName varchar(8000),
    PhoneNumber int ,
    AddressofStudent varchar(8000) NOT NULL,
    City varchar(8000),
    Country varchar(8000) DEFAULT 'India'
    );
     
    --DEFAULT Constraint on ALTER TABLE
     
    ALTER TABLE StudentsInfo
    ADD CONSTRAINT defau_Country
    DEFAULT 'India' FOR Country;
     
    --To drop the Default Constraint
     
    ALTER TABLE StudentsInfo
    ALTER COLUMN Country DROP defau_Country;
    

    INDEX

    The INDEX constraint is used to create indexes in the table, through which you can create and retrieve data from the database very quickly.

    Syntax

    --Create an Index where duplicate values are allowed
    CREATE INDEX IndexName
    ON TableName (Column1, Column2, ...ColumnN);
    
    --Create an Index where duplicate values are not allowed
    CREATE UNIQUE INDEX IndexName
    ON TableName (Column1, Column2, ...ColumnN);

    Example

    CREATE INDEX idex_StudentName
    ON StudentsInfo (StudentName);
     
    --To delete an index in a table
     DROP INDEX StudentsInfo.idex_StudentName;
    

    Moving forward in this article on SQL Server tutorial, let us now understand the different Data Manipulation Language commands used in Microsoft SQL Server.

    Data Manipulation Language commands

    This section of the article will cover all those commands through which you can manipulate the database. The commands are as follows:

    • USE
    • INSERT INTO
    • UPDATE
    • DELETE
    • MERGE
    • SELECT
    • CUBE
    • ROLLUP
    • OFFSET
    • FETCH
    • TOP
    • PIVOT

    Apart from these commands, there are also other manipulative operators/functions such as:

    • Operators
      • 算術演算子
      • Assignment Operators
      • Bitwise Operators
      • 比較演算子
      • Compound Operators
      • 論理演算子
      • Scope Resolution Operators
      • Set Operators
      • String Concatenation Operators
      • Aggregate Functions
    • User-Defined Functions

    USE

    This statement is used to select the database to start performing various operations on it.

    Syntax

    USE DatabaseName;

    Example

    USE Students;
    

    INSERT INTO

    The INSERT INTO statement is used to insert new records into an existing table.

    Syntax

    INSERT INTO TableName (Column1, Column2, Column3, ...,ColumnN)
    VALUES (value1, value2, value3, ...);
    
    --If you don't want to mention the column names then use the below syntax
    
    INSERT INTO TableName
    VALUES (Value1, Value2, Value3, ...);

    Example

    INSERT INTO StudentsInfo(StudentID, StudentName, ParentName, PhoneNumber, AddressofStudent, City, Country)
    VALUES ('06', 'Sanjana','Kapoor', '9977331199', 'Buffalo Street House No 10', 'Kolkata', 'India');
     
    INSERT INTO StudentsInfo
    VALUES ('07', 'Vishal','Mishra', '9876509712', 'Nice Road 15', 'Pune', 'India');
    

    更新

    The UPDATE statement is used to modify or update the records already present in the table.

    Syntax

    UPDATE TableName
    SET Column1 = Value1, Column2 = Value2, ...
    WHERE Condition;

    Example

    UPDATE StudentsInfo
    SET StudentName = 'Aahana', City= 'Ahmedabad'
    WHERE StudentID = 1;
    

    DELETE

    The DELETE statement is used to delete the existing records in a table.

    Syntax

    DELETE FROM TableName WHERE Condition;

    Example

    DELETE FROM StudentsInfo
    WHERE StudentName='Aahana';
    

    MERGE

    The MERGE statement is used to perform the INSERT, UPDATE and DELETE operations on a specific table, where the source table is provided.以下を参照してください。

    Syntax

    MERGE TagretTableName USING SourceTableName
    ON MergeCondition
    WHEN MATCHED
    THEN Update_Statement
    WHEN NOT MATCHED
    THEN Insert_Statement
    WHEN NOT MATCHED BY SOURCE
    THEN DELETE;

    Example

    To understand the MERGE statement, consider the following tables as the Source table and the Target table.

    Source Table:

    StudentID StudentName Marks
    1 Vihaan 87
    2 Manasa 92
    4 Anay 74

    Target Table:

    StudentID StudentName Marks
    1 Vihaan 87
    2 Manasa 67
    3 Saurabh 55
    MERGE SampleTargetTable TARGET USING SampleSourceTable SOURCE ON (TARGET.StudentID = SOURCE.StudentID)                                                                                       
    WHEN MATCHED AND TARGET.StudentName <> SOURCE.StudentName OR TARGET.Marks <> SOURCE.Marks 
    THEN UPDATE SET TARGET.StudentName = SOURCE.StudentName, TARGET.Marks = SOURCE.Marks         
    WHEN NOT MATCHED BY TARGET THEN  
    INSERT (StudentID,StudentName,Marks) VALUES (SOURCE.StudentID,SOURCE.StudentName,SOURCE.Marks)
    WHEN NOT MATCHED BY SOURCE THEN         
    DELETE;    
    

    Output

    StudentID StudentName Marks
    1 Vihaan 87
    2 Manasa 92
    4 Anay 74

    SELECT

    The SELECT statement is used to select data from a database, table or view. The data returned is stored in a result table, called the result-set

    Syntax

    SELECT Column1, Column2, ...ColumN
    FROM TableName;
    
    --(*) is used to select all from the table
    SELECT * FROM table_name;
    
    -- To select the number of records to return use:
    SELECT TOP 3 * FROM TableName;

    Example

    -- To select few columns
    SELECT StudentID, StudentName
    FROM StudentsInfo;
     
    --(*) is used to select all from the table
    SELECT * FROM StudentsInfo;
     
    -- To select the number of records to return use:
    SELECT TOP 3 * FROM StudentsInfo;
    

    We can also use the following keywords with the SELECT statement:

    • DISTINCT
    • ORDER BY
    • GROUP BY
    • GROUPING SETS
    • HAVING Clause
    • INTO

    DISTINCT

    The DISTINCT keyword is used with the SELECT statement to return only different values.

    Syntax

    SELECT DISTINCT Column1, Column2, ...ColumnN
    FROM TableName;

    Example

    SELECT DISTINCT PhoneNumber FROM StudentsInfo;
    

    ORDER BY

    This statement is used to sort the required results either in the ascending or descending order. By default, the results are stored in ascending order. Yet, if you wish to get the results in descending order, you have to use the DESC キーワード。

    Syntax

    SELECT Column1, Column2, ...ColumnN
    FROM TableName
    ORDER BY Column1, Column2, ... ASC|DESC;

    Example

    -- Select all students from the 'StudentsInfo' table sorted by ParentName:
    SELECT * FROM StudentsInfo
    ORDER BY ParentName;
     
    -- Select all students from the 'StudentsInfo' table sorted by ParentName in Descending order:
    SELECT * FROM StudentsInfo
    ORDER BY ParentName DESC;
     
    -- Select all students from the 'StudentsInfo' table sorted by ParentName and StudentName:
    SELECT * FROM StudentsInfo
    ORDER BY ParentName, StudentName;
    
    /* Select all students from the 'StudentsInfo' table sorted by ParentName 
    in Descending order and StudentName in Ascending order: */
    SELECT * FROM StudentsInfo
    ORDER BY ParentName ASC, StudentName DESC;
    

    GROUP BY

    This statement is used with the aggregate functions to group the result-set by one or more columns.

    Syntax

    SELECT Column1, Column2,..., ColumnN
    FROM TableName
    WHERE Condition
    GROUP BY ColumnName(s)
    ORDER BY ColumnName(s);

    Example

    -- To list the number of students from each city.
    SELECT COUNT(StudentID), City
    FROM StudentsInfo
    GROUP BY City;
    

    GROUPING SETS

    GROUPING SETS were introduced in SQL Server 2008, used to generate a result-set that can be generated by a UNION ALL of the multiple simple GROUP BY clauses.

    Syntax

    SELECT ColumnNames(s)
    FROM TableName
    GROUP BY GROUPING SETS(ColumnName(s));

    Example

    SELECT StudentID, StudentName, COUNT(City)
    from StudentsInfo
    Group BY
    GROUPING SETS
    ((StudentID, StudentName, City),(StudentID),(StudentName),(City));
    

    HAVING

    This clause is used in the scenario where the WHERE keyword cannot be used.

    Syntax

    SELECT ColumnName(s)
    FROM TableName
    WHERE Condition
    GROUP BY ColumnName(s)
    HAVING Condition
    ORDER BY ColumnName(s);

    Example

    SELECT COUNT(StudentID), City
    FROM StudentsInfo
    GROUP BY City
    HAVING COUNT(StudentID) > 2
    ORDER BY COUNT(StudentID) DESC;
    

    INTO

    The INTO keyword can be used with the SELECT statement to copy data from one table to another. Well, you can understand these tables to be temporary tables. The temporary tables are generally used to perform manipulations on data present in the table, without disturbing the original table.

    Syntax

    SELECT *
    INTO NewTable [IN ExternalDB]
    FROM OldTable
    WHERE Condition;

    Example

    -- To create a backup of table 'StudentsInfo'
    SELECT * INTO StudentsBackup
    FROM StudentsInfo;
     
    --To select only few columns from StudentsInfo
    SELECT StudentName, PhoneNumber INTO StudentsDetails
    FROM StudentsInfo;
     
    SELECT * INTO PuneStudents
    FROM StudentsInfo
    WHERE City = 'Pune';
    

    CUBE

    CUBE is an extension of the GROUP BY clause. It allows you to generate the sub-totals for all the combinations of the grouping columns specified in the GROUP BY clause.

    Syntax

    SELECT ColumnName(s)
    FROM TableName
    GROUP BY CUBE(ColumnName1, ColumnName2, ....., ColumnNameN);

    Example

    SELECT StudentID, COUNT(City)
    FROM StudentsInfo
    GROUP BY CUBE(StudentID)
    ORDER BY StudentID;  
    

    ROLLUP

    ROLLUP is an extension of the GROUP BY clause. This allows you to include the extra rows which represent the subtotals. These are referred to as super-aggregated rows along with the grand total row.

    Syntax

    SELECT ColumnName(s)
    FROM TableName
    GROUP BY ROLLUP(ColumnName1, ColumnName2, ....., ColumnNameN);

    Example

    SELECT StudentID, COUNT(City)
    FROM StudentsInfo
    GROUP BY ROLLUP(StudentID);
    

    OFFSET

    The OFFSET clause is used with the SELECT and ORDER BY statement to retrieve a range of records. It must be used with the ORDER BY clause since it cannot be used on its own. Also, the range that you mention must be equal to or greater than 0. If you mention a negative value, then it shows an error.

    Syntax

    SELECT ColumnNames)
    FROM TableName
    WHERE Condition
    ORDER BY ColumnName(s)
    OFFSET RowsToSkip ROWS;

    Example

    Consider a new column Marks in the StudentsInfo テーブル。

    SELECT StudentName, ParentName
    FROM StudentsInfo
    ORDER BY Marks
    OFFSET 1 ROWS;
    

    FETCH

    The FETCH clause is used to return a set of a number of rows. It has to be used in conjunction with the OFFSET clause.

    Syntax

    SELECT ColumnNames)
    FROM TableName
    WHERE Condition
    ORDER BY ColumnName(s)
    OFFSET RowsToSkip 
    FETCH NEXT NumberOfRows ROWS ONLY;

    Example

    SELECT StudentName, ParentName
    FROM StudentsInfo
    ORDER BY Marks
    OFFSET 1 ROWS
    FETCH  NEXT 1 ROWS ONLY;
    

    TOP

    The TOP clause is used with the SELECT statement to mention the number of records to return.

    Syntax

    SELECT TOP Number ColumnName(s)
    FROM TableName
    WHERE Condition;

    Example

    SELECT TOP 3 * FROM StudentsInfo;
    

    PIVOT

    PIVOT is used to rotate the rows to column values and runs aggregations when required on the remaining column values.

    Syntax

    SELECT NonPivoted ColumnName,  
        [First Pivoted ColumnName] AS ColumnName,  
        [Second Pivoted ColumnName] AS ColumnName, 
        [Third Pivoted ColumnName] AS ColumnName,   
        ...  
        [Last Pivoted ColumnName] AS ColumnName  
    FROM 
        (SELECT query which produces the data)   
        AS [alias for the initial query]  
    PIVOT  
    (  
        [AggregationFunction](ColumName)  
    FOR  
    [ColumnName of the column whose values will become column headers]   
        IN ( [First Pivoted ColumnName], [Second Pivoted ColumnName],  [Third Pivoted ColumnName]
        ... [last pivoted column])  
    ) AS [alias for the Pivot Table];

    Example

    To get a detailed example, you can refer to my article on SQL PIVOT and UNPIVOT. Next in this SQL Server Tutorial let us look into the different operators supported by Microsoft SQL Server.

    Operators

    The different types of operators supported by SQL Server are as follows:

    • 算術演算子
    • Assignment Operators
    • Bitwise Operators
    • 比較演算子
    • Compound Operators
    • 論理演算子
    • Scope Resolution Operators
    • Set Operators
    • String Concatenation Operators

    Let us discuss each one of them one by one.

    Arithmetic Operators

    Operator Meaning Syntax

    +

    Addition

    expression + expression

    Subtraction

    expression – expression

    *

    Multiplication

    expression * expression

    /

    Divison

    expression / expression

    %

    Modulous

    expression % expression

    Assignment Operators

    Operator Meaning Syntax

    =

    Assign a value to a variable

    variable =‘value’

    Bitwise Operators

    Operator Meaning Syntax

    &(Bitwise AND)

    Used to perform a bitwise logical AND operation between two integer values.

    expression &expression

    &=(Bitwise AND Assignment)

    Used to perform a bitwise logical AND operation between two integer values. It also sets a value to the output of the operation.

    expression &=expression

    | (Bitwise OR)

    Used to perform a bitwise logical OR operation between two integer values as translated to binary expressions within Transact-SQL statements.

    expression | expression

    |=(Bitwise OR Assignment)

    Used to perform a bitwise logical OR operation between two integer values as translated to binary expressions within Transact-SQL statements. It also sets a value to the output of the operation.

    expression |=expression

    ^ (Bitwise Exclusive OR)

    Used to perform a bitwise exclusive OR operation between two integer values.

    expression ^ expression

    ^=(Bitwise Exclusive OR Assignment)

    Used to perform a bitwise exclusive OR operation between two integer values. It also sets a value to the output of the operation.

    expression ^=expression

    ~ (Bitwise NOT)

    Used to perform a bitwise logical NOT operation on an integer value.

    ~ expression

    Comparison Operators

    Operator Meaning Syntax

    =

    Equal to

    expression =expression

    >

    Greater than

    expression> expression

    <

    Less than

    expression

    >=

    Greater than or equal to

    expression>=expression

    <=

    Less than or equal to

    expression <=expression

    <>

    Not equal to

    expression <> expression

    !=

    Not equal to

    expression !=expression

    !<

    Not less than

    expression !

    !>

    Not greater than

    expression !> expression

    Compound Operators

    Operator Meaning Syntax

    + =

    Used to add value to the original value and set the original value to the result.

    expression +=expression

    -=

    Used to subtract a value from the original value and set the original value to the result.

    expression -=expression

    *=

    Used to multiply value to the original value and set the original value to the result.

    expression *=expression

    /=

    Used to divide a value from the original value and set the original value to the result.

    expression /=expression

    %=

    Used to divide a value from the original value and set the original value to the result.

    expression %=expression

    &=

    Used to perform a bitwise AND operation and set the original value to the result.

    expression &=expression

    ^=

    Used to perform a bitwise exclusive OR operation and set the original value to the result.

    expression ^=expression

    |=

    Used to perform a bitwise OR operation and set the original value to the result.

    expression |=expression

    Logical Operators

    Operator Meaning Syntax

    ALL

    Returns TRUE if all of set of comparisons are TRUE.

    scalar_expression { =| <> | !=|> |>=| !> | <| <=| !<} ALL ( subquery )

    AND

    Returns TRUE if both the expressions are TRUE.

    boolean_expression AND boolean_expression

    ANY

    Returns TRUE if any one of a set of comparisons are TRUE.

    scalar_expression { =| <> | ! =|> |> =| !> | <| <=| ! <} { ANY } ( subquery )

    BETWEEN

    Returns TRUE if an operand is within a range.

    sampleexpression [ NOT ] BETWEEN beginexpression AND endexpression

    EXISTS

    Returns TRUE if a subquery contains any rows.

    EXISTS (sub query)

    IN

    Returns TRUE if an operand is equal to one of a list of expressions.

    test_expression [ NOT ] IN( subquery | expression [ ,…n ])

    LIKE

    Returns TRUE if an operand matches a pattern.

    match_expression [ NOT ] LIKE pattern [ ESCAPE escape_character ]

    NOT

    Reverses the value of any boolean operator.

    [ NOT ] boolean_expression

    OR

    Returns TRUE if either of the boolean expression is TRUE.

    boolean_expression OR boolean_expression

    SOME

    Returns TRUE if some of a set of comparisons are TRUE.

    scalar_expression { =| <> | ! =|> |> =| !> | <| <=| ! <} { SOME} ( subquery )

    Scope Resolution Operators

    Operator Meaning Example

    ::

    Provides access to static members of a compound data type. Compound data types are those data types which contain multiple methods and simple data types. Compound data types These include the built-in CLR types and custom SQLCLR User-Defined Types (UDTs).

    DECLARE @hid hierarchyid; SELECT @hid =hierarchyid::GetRoot(); PRINT @hid.ToString();

    Set Operators

    There are mainly three set operations:UNION, INTERSECT, MINUS. You can refer to the image below to understand the set operations in SQL. Refer to the below image:

    Operator Meaning Syntax

    UNION

    The UNION operator is used to combine the result-set of two or more SELECT statements.

    SELECT ColumnName(s) FROM Table1
    UNION
    SELECT ColumnName(s )FROM Table2;

    INTERSECT

    The INTERSECT clause is used to combine two SELECT statements and return the intersection of the data-sets of both the SELECT statements.

    SELECT Column1 , Column2 ….
    FROM TableName;
    WHERE Condition
    INTERSECT
    SELECT Column1 , Column2 ….
    FROM TableName;
    WHERE Condition

    EXCEPT

    The EXCEPT operator returns those tuples that are returned by the first SELECT operation, and are not returned by the second SELECT operation.

    SELECT ColumnName
    FROM TableName;
    EXCEPT
    SELECT ColumnName
    FROM TableName;

    String Operators

    Operator Meaning Syntax/ Example

    + (String Concatenation)

    Concatenates two or more binary or character strings, columns, or a combination of strings and column names into a single expression

    expression+expression

    +=(String Concatenation)

    Used to concatenate two strings and sets the string to the result of the operation.

    expression+=expression

    % (Wildcard Characters to match)

    Used to matches any string of zero or more characters.

    Example:‘sample%’

    [] (Wildcard Characters to match)

    Used to match a single character within the specified range or set that is specified between brackets [].

    Example:m[n-z]%’

    [^] (Wildcard Characters to match)

    Used to match a single character which is not within the range or set specified between the square brackets.

    Example:‘Al[^a]%’

    _ (Wildcard Characters to match)

    Used to match a single character in a string comparison operation

    test_expression [ NOT ] IN( subquery | expression [ ,…n ])

    Aggregate Functions

    The different aggregate functions supported by SQL Server are as follows:

    Function Description Syntax Example

    SUM()

    Used to return the sum of a group of values.

    SELECT SUM(ColumnName) FROM TableName;

    SELECT SUM(Marks) FROM StudentsInfo;

    COUNT()

    Returns the number of rows either based on a condition, or without a condition.

    SELECT COUNT(ColumnName) FROM TableName WHERE Condition;

    SELECT COUNT(StudentID) FROM StudentsInfo;

    AVG()

    Used to calculate the average value of a numeric column.

    SELECT AVG(ColumnName) FROM TableName;

    SELECT AVG(Marks) FROM StudentsInfo;

    MIN()

    This function returns the minimum value of a column.

    SELECT MIN(ColumnName) FROM TableName;

    SELECT MIN(Marks) FROM StudentsInfo;

    MAX()

    Returns a maximum value of a column.

    SELECT MAX(ColumnName) FROM TableName;

    SELECT MAX(Marks) FROM StudentsInfo;

    FIRST()

    Used to return the first value of the column.

    SELECT FIRST(ColumnName) FROM TableName;

    SELECT FIRST(Marks) FROM StudentsInfo;

    LAST()

    This function returns the last value of the column.

    SELECT LAST(ColumnName) FROM TableName;

    SELECT LAST(Marks) FROM StudentsInfo;

    User-Defined Functions

    Microsoft SQL Server allows the users to create user-defined functions which are routines. These routines accept parameters, can perform simple to complex actions and return the result of that particular action as a value. Here, the value returned can either be a single scalar value or a complete result-set.

    You can use user-defined functions to:

    • Allow modular programming
    • Reduce network traffic
    • Allow faster execution of queries

    Also, there are different types of user-defined functions you can create.それらは:

    • Scalar Functions: Used to return a single data value of the type defined in the RETURNS clause.
    • Table-Valued Functions: Used to return a table data type.
    • System Functions: A variety of system functions are provided by the SQL Server to perform different operations.

    Well, apart from the user-defined functions, there is a bunch of in-built functions in SQL Server; which can be used to perform a variety of tasks. Moving on in this article on SQL Server tutorial, let us now understand what are nested queries.

    Nested Queries

    Nested queries are those queries that have an outer query and inner subquery. So, basically, the subquery is a query which is nested within another query such as SELECT, INSERT, UPDATE or DELETE. Refer to the image below:

    Next in this SQL Server tutorial, let us understand the different types of joins in SQL.

    Joins

    Joins are used to combine tuples from two or more tables, based on a related column between the tables. There are four types of joins:

    • INNER JOIN: Returns records that have matching values in both the tables.
    • LEFT JOIN: Returns records from the left table, and also those records which satisfy the condition from the right table.
    • RIGHT JOIN: Returns records from the right table, and also those records which satisfy the condition from the left table.
    • FULL JOIN: Returns records which either have a match in the left or the right table.

    Consider the following table along with the StudentsInfo table, to understand the syntax of joins.

    SubjectID StudentID SubjectName
    10 10 Maths
    2 11 Physics
    3 12 Chemistry

    INNER JOIN

    Syntax

    SELECT ColumnName(s)
    FROM Table1
    INNER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

    Example

    SELECT Subjects.SubjectID, StudentsInfo.StudentName
    FROM Subjects
    INNER JOIN StudentsInfo ON Subjects.StudentID = StudentsInfo.StudentID;
    

    LEFT JOIN

    Syntax

    SELECT ColumnName(s)
    FROM Table1
    LEFT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

    Example

    SELECT StudentsInfo.StudentName, Subjects.SubjectID
    FROM StudentsInfo
    LEFT JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
    ORDER BY StudentsInfo.StudentName;
    

    RIGHT JOIN

    Syntax

    SELECT ColumnName(s)
    FROM Table1
    RIGHT JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

    Example

    SELECT StudentsInfo.StudentName, Subjects.SubjectID
    FROM StudentsInfo
    RIGHT JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
    ORDER BY StudentsInfo.StudentName;
    

    FULL JOIN

    Syntax

    SELECT ColumnName(s)
    FROM Table1
    FULL OUTER JOIN Table2 ON Table1.ColumnName = Table2.ColumnName;

    Example

    SELECT StudentsInfo.StudentName, Subjects.SubjectID
    FROM StudentsInfo
    FULL OUTER JOIN Subjects ON StudentsInfo.SubjectID = Subjects.SubjectID
    ORDER BY StudentsInfo.StudentName;
    

    Next, in this article on SQL Server tutorial, let us understand the different types of loops supported by the SQL Server.

    Loops

    The different control-of-flow commands are as follows:

    • BEGIN..END
    • BREAK
    • CONTINUE
    • GOTO
    • IF..ELSE
    • RETURN
    • WAITFOR
    • WHILE

    Let us discuss each one of them one by one.

    BEGIN..END

    These keywords are used to enclose a series of SQL statements. Then, this group of SQL statements can be executed.

    Syntax

    BEGIN   
         { SQLStatement | StatementBlock }   
    END
    
    

    BREAK

    This statement is used to exit the current WHILE loop. In case, the current WHILE loop is nested inside another loop, then the BREAK statement exits only the current loop and the control is passed on to the next statement in the current loop. The BREAK statement is generally used inside an IF statement.

    Syntax

    BREAK;
    
    

    CONTINUE

    The CONTINUE statement is used to restart a WHILE loop. So, any statements after the CONTINUE keyword will be ignored.

    Syntax

    CONTINUE;

    Here, Label is the point after which processing starts if a GOTO is targeted to that particular label.

    GOTO

    Used to alter the flow of execution to a label. The statements written after the GOTO keyword are skipped and processing continues at the label.

    Syntax

    Define Label:   
    Label:   
    Alter Execution:  
    GOTO Label

    Here, Label is the point after which processing starts if a GOTO is targeted to that particular label.

    IF..ELSE

    Like any other programming language, the If-else statement in SQL Server tests the condition and if the condition is false then ‘else’ statement is executed.

    Syntax

    IF BooleanExpression      
         { SQLStatement | StatementBlock }   
    [ ELSE   
         { SQLStatement | StatementBlock } ]
    
    

    RETURN

    Used to exit unconditionally from a query or procedure. So, the statements which are written after the RETURN clause are not executed.

    Syntax

    RETURN [ IntegerExpression ]

    Here, an integer value is returned.

    WAITFOR

    The WAITFOR control flow is used to block the execution of a stored procedure, transaction or a batch until a specific statement modifies, returns at least one row or a specified time or time interval elapses.

    Syntax

    WAITFOR   
    {  
        DELAY 'TimeToPass'   
      | TIME 'TimeToExecute'   
      | [ ( RecieveStatement ) | ( GetConversionGroupStatement ) ]   
        [ , TIMEOUT timeout ]  
    }

    where,

    • DELAY – Period of time that must pass
    • TimeToPass – Period of time to wait
    • TIME – The time when the stored procedure, transaction or the batch runs.
    • TimeToExecute – The time at which the WAITFOR statement finishes.
    • RecieveStatement – A valid RECEIVE statement.
    • GetConversionGroupStatement – A valid GET CONVERSATION GROUP statement.
    • TIMEOUT timeout Specifies the period of time, in milliseconds, to wait for a message to arrive on the queue.

    WHILE

    This loop is used to set a condition for repeated execution of a particular SQL statement or a SQL statement block. The statements are executed as long as the condition mentioned by the user is TRUE. As soon as the condition fails, the loop stops executing.

    Syntax

    WHILE BooleanExpression 
    { SQLStatement | StatementBlock | BREAK | CONTINUE }

    Now, that you guys know the DML commands, let’s move onto our next section in this article on SQL Tutorial i.e. the DCL commands.

    Data Control Language Commands (DCL)

    This section of SQL Server tutorial will give you an idea about the command through which are used to enforce database security in multiple user database environments. The commands are as follows:

    • GRANT
    • REVOKE

    GRANT

    The GRANT command is used to provide access or privileges on the database and its objects to the users.

    Syntax

    GRANT PrivilegeName
    ON ObjectName
    TO {UserName |PUBLIC |RoleName}
    [WITH GRANT OPTION];

    where,

    • PrivilegeName – Is the privilege/right/access granted to the user.
    • ObjectName – Name of a database object like TABLE/VIEW/STORED PROC.
    • UserName – Name of the user who is given the access/rights/privileges.
    • PUBLIC – To grant access rights to all users.
    • RoleName – The name of a set of privileges grouped together.
    • WITH GRANT OPTION – To give the user access to grant other users with rights.

    Example

    -- To grant SELECT permission to StudentsInfo table to user1
    GRANT SELECT ON StudentsInfo TO user1;
    

    REVOKE

    The REVOKE command is used to withdraw the user’s access privileges given by using the GRANT command.

    Syntax

    REVOKE PrivilegeName 
    ON ObjectName 
    FROM {UserName |PUBLIC |RoleName}

    Example

    -- To revoke the granted permission from user1
    REVOKE SELECT ON StudentsInfo TO user1;
    

    Moving on in this SQL Server tutorial, let us understand the how to create and use Stored Procedures.

    Stored Procedures

    Stored Procedures are reusable units that encapsulate a specific business logic of the application. So, it is a group of SQL statements and logic, compiled and stored together to perform a specific task.

    Syntax

    CREATE [ OR REPLACE] PROCEDURE procedure_name [
    (parameter_name [IN | OUT | IN OUT] type [ ])]
    {IS | AS }
    BEGIN [declaration_section]
    executable_section 
    //SQL statement used in the stored procedure
    END
    GO

    Example

    --Create a procedure that will return a student name when the StudentId is given as the input parameter to the stored procedure
    Create  PROCEDURE GetStudentName 
    (
    @StudentId INT, --Input parameter ,  
    @StudName VARCHAR(50)  OUT  --Output parameter, 
    AS
    BEGIN
    SELECT @StudName = StudentName FROM StudentsInfo WHERE StudentID=@StudentId
    END
    

    Steps to execute:

        • Declare @StudName as nvarchar(50)
        • EXEC GetStudentName 01, @StudName output
        • SELECT @StudName

    The above procedure returns the name of a particular student, on giving that students id as input. Next in this SQL Server tutorial, let us understand the transaction control language commands.

    Transaction Control Language Commands (TCL)

    This section of SQL Server tutorial will give you an insight into the commands which are used to manage transactions in the database. The commands are as follows:

    • COMMIT
    • ROLLBACK
    • SAVEPOINT

    COMMIT

    The COMMIT command is used to save the transaction into the database.

    Syntax

    COMMIT;
    
    

    ROLLBACK

    The ROLLBACK command is used to restore the database to the last committed state.

    Syntax

    ROLLBACK;

    注: When you use ROLLBACK with SAVEPOINT, then you can directly jump to a savepoint in an ongoing transaction. Syntax:ROLLBACK TO SavepointName;

    SAVEPOINT

    The SAVEPOINT command is used to temporarily save a transaction. So if you wish to rollback to any point, then you can save that point as a ‘SAVEPOINT’.

    Syntax

    SAVEPOINT SAVEPOINTNAME;

    Consider the below table to understand the working of transactions in the database.

    StudentID StudentName
    1 Rohit
    2 Suhana
    3 Ashish
    4 Prerna

    Now, use the below SQL queries to understand the transactions in the database.

    INSERT INTO StudentTable VALUES(5, 'Avinash');
    COMMIT;
    UPDATE StudentTable SET name = 'Akash' WHERE id = '5';
    SAVEPOINT S1;
    INSERT INTO StudentTable VALUES(6, 'Sanjana');
    SAVEPOINT S2;
    INSERT INTO StudentTable VALUES(7, 'Sanjay');
    SAVEPOINT S3;
    INSERT INTO StudentTable VALUES(8, 'Veena');
    SAVEPOINT S4;
    SELECT * FROM StudentTable;
    

    Next in this article on SQL Server tutorial let us understand how to handle exceptions in Transact-SQL.

    Exception Handling

    There are two types of exceptions, i.e, the system-defined exceptions and the user-defined exceptions. As the name suggests, exception handling is a process through which a user can handle the exceptions generated. To handle exceptions you have to understand the following control flow statements:

    • THROW
    • TRY…CATCH

    THROW

    This clause is used to raise an exception and transfers the execution to a CATCH block of a TRY…CATCH construct.

    Syntax

    THROW [ { ErrorNumber | @localvariable },  
            { Message | @localvariable },  
            { State | @localvariable } ]   
    [ ; ]

    where,

    • ErrorNumber – A constant or variable that represents the exception.
    • Message – A variable or string that describes the exception.
    • State – A constant or variable between 0 and 255 that indicates the state to associate with the message.
    THROW 51000, 'Record does not exist.', 1;  
    

    TRY..CATCH

    Used to implement exception handling in Transact-SQL. A group of statements can be enclosed in the TRY block. In case an error occurs in the TRY block, control is passed to another group of statements that are enclosed in a CATCH block.

    Syntax

    BEGIN TRY  
         { SQLStatement | StatementBlock}  
    END TRY  
    BEGIN CATCH  
         [ { SQLStatement | StatementBlock } ]  
    END CATCH  
    [ ; ]
    BEGIN TRY  
        SELECT * FROM StudentsInfo;  
    END TRY  
    BEGIN CATCH  
        SELECT   
            ERROR_NUMBER() AS ErNum , ERROR_MESSAGE() AS ErMsg;  
    END CATCH
    

    W ith this, we come to the end of this article on SQL Server Tutorial. I hope you enjoyed reading this article on SQL Server Tutorial For Beginners. I f you wish to get a structured training on MySQL, then check out our MySQL DBA Certification Training インストラクター主導のライブトレーニングと実際のプロジェクトの経験が付属しています。 This training will help you understand MySQL in-depth and help you achieve mastery over the subject. 質問がありますか? Please mention it in the comments section of ”SQL Server Tutorial 」と返信します。


    1. クラウド内のMySQL-AmazonRDSからEC2インスタンスへのオンライン移行:パート1

    2. OracleでORDERを使用してINSERT

    3. MSSQLServerデータベースでのインデックスの最適化の自動化

    4. PostgreSQLとOracle:コスト、使いやすさ、機能の違い