2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

SQL ビューの基礎知識について

Posted at

#記事内容

  • ビューとは
  • ビューの作成
  • ビューの削除

#ビューとは
データを取り出すSELECT文だけを保存する仮想的なテーブルのこと

##テーブルとビューの違い

  • テーブル
  • 実際のデータを保存
  • ビュー
  • SELECT文を保存するのみで、データを持たない

##ビューのメリット

  • 必要なデータが複数のテーブルにまたがる場合などの複雑な集約を行いやすくなる
  • 使用頻度が高いSELECT文をビューにすることで使い回すことができる
  • データを保存しないので記憶装置の容量を節約できる

##ビューの制限

  • order by句を使用できない
  • ビューに対する変更には制限があり、下記の条件をみたす場合のみ更新が可能
  • select句distinctが含まれていないこと
  • from句に含まれるテーブルが1つのみであること
  • group by句を使用していないこと
  • haing句を使用していないこと

ビューとテーブルの更新は連動して行われるため、集約されたビューは更新できない

#ビューの作成
create view文を使用

-- 構文
create view ビュー名(<ビューの列名1>, <ビューの列名2>, ...
as
<select>

-- 都道府県別のユーザー数を取得したデータをビューに保存
create view prefecture_user_counts(name, count)
as
select
  p.name name,
  count(*) count
from
  users u
inner join
  prefectures p
on u.prefecture_id = p.id
group by
  u.prefecture_id;

##ビューの使用方法

-- 構文
select
  <ビューの列名1>,
  <ビューの列名2>,...
from
  <ビュー名>;

-- prifecture_user_countsを使用する場合
select
  name,
  count
from
  prifecture_user_counts;

##ビューの削除
drop view文を使用

-- 構文
drop view <ビュー名>;

##参考記事

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?