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のデプロイとメンテナンス