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

SQLServer2017でビューを作成する

    SQL Serverでは、クエリをビューとして保存できます。ビューは、セキュリティ、使いやすさ、利便性など、さまざまな理由で有益です。

    SQL Serverでは、ビュー 内容がクエリによって定義される仮想テーブルです。これは基本的に、データベースに保存される事前に作成されたクエリです。

    ビューはSELECTで構成されます ステートメントを作成し、ビューに対してクエリを実行すると、テーブルを開いたときと同じように結果が表示されます。ビューは、複数のテーブルからデータをまとめたり、データを集約したりして、単一のテーブルであるかのように表示できるため、仮想テーブルと呼ばれます。

    ビューのメリット

    ビューは、アクセスレベルが異なる複数のユーザーがいて、すべてのユーザーがデータベース内のデータの一部(必ずしもすべてのデータである必要はない)を表示する必要がある場合に役立ちます。ビューは次のことを実行できます:

    • テーブル内の特定の行へのアクセスを制限する
    • テーブル内の特定の列へのアクセスを制限する
    • 複数のテーブルの列を結合して、単一のテーブルの一部であるかのように表示します
    • 集計情報(COUNT()の結果など)を提示します 機能)

    ビューを作成する方法

    ビューを作成するには、CREATE VIEWを使用します ステートメントの後にSELECTが続きます ステートメント。

    CREATE VIEW ViewName 
    AS
    SELECT ...
    

    これですべてです。そのステートメントを実行すると、ビューがデータベースに保存されます

    例

    ビューを作成し、そのビューからデータを選択する例を次に示します。

    1. ビューを作成する

      このチュートリアル全体で作成した音楽データベースに対して次のステートメントを実行します。

      この例では、RockAlbumsというビューを作成します。 「ロック」のジャンルが割り当てられているすべてのアルバムを選択します。

      CREATE VIEW RockAlbums 
      AS
      SELECT AlbumName, ArtistName
      FROM Albums
      	INNER JOIN Artists
      	ON Albums.ArtistId = Artists.ArtistId 
          INNER JOIN Genres
          ON Albums.GenreId = Genres.GenreId
      WHERE Genres.Genre = 'Rock';
    2. ビューを表示

      ビューを展開します 新しく作成されたビューを表示するには、該当するデータベースの下のノード。ビューのノードを展開して、その定義に含まれている列を表示することもできます。

    3. ビューを実行する

      ビューが作成されたので、SELECTを使用してビューを実行できます。 声明。すべてを選択することも、特定の列を選択して、WHEREで結果をさらに絞り込むこともできます。 条項など

      SELECT * 
      FROM RockAlbums;

    ビューを変更する

    ALTER VIEWを使用してビューを変更できます ステートメント。

    使用する新しいビュー定義を提供するだけです。つまり、CREATE VIEWを使用して新しいビューを作成するのとほとんど同じです。 ALTER VIEWを使用して既存のステートメントを変更することを除いてステートメント ステートメント。

    これが例です。

    1. ビューを変更する

      次のステートメントを実行します。これにより、ビューの選択に新しい列が追加されます(ReleaseDate 列)。

      ALTER VIEW RockAlbums 
      AS
      SELECT AlbumName, ArtistName, ReleaseDate
      FROM Albums
      	INNER JOIN Artists
      	ON Albums.ArtistId = Artists.ArtistId 
          INNER JOIN Genres
          ON Albums.GenreId = Genres.GenreId
      WHERE Genres.Genre = 'Rock';
    2. ビューを実行する

      これで、ReleaseDateが追加されました。 ビューの列から、ビューに対するSQLクエリでそれを使用できます。

      たとえば、リリース日が特定の日付より後のすべてのアルバムを選択できます。

      SELECT * 
      FROM RockAlbums
      WHERE ReleaseDate > '1985-01-01';

    1. Postgres配列にNULLが存在するかどうかを確認します

    2. アクセス255列の制限の回避策

    3. シーケンスとアイデンティティ

    4. Ansibleを使用したPostgreSQLのデプロイとメンテナンス