MySQL(その14 ビュー)

13から続きます。

テーブルとビューの違いは?

テーブル

・実際のデータを保存

ビュー

・ビューの中にはセレクト文が保存される
・ビュー自体はデータを持たない
・order by句が使えない=並び替えできない
・ビューに対する更新は不可能ではないが制限があるデータを保存しないので記憶装置の容量を節約できる。
・よく使うセレクト文をビューにしておくことで使い回しができるが
パフォーマンス低下を招く場合がある

例:都道府県別のユーザー数を知りたい!まずはselect文から

select
p.name,
count(*)
from
users as u
inner join
prefectures as p
on u.prefecture_id = p.id
group by
prefecture_id;

これをviewにすることもできる。

create view prefecture_user_counts(name,count) asをさっきのに足すだけ

create view prefecture_user_counts(name,count)
as
select
p.name,
count(*)
from
users as u
inner join
prefectures as p
on u.prefecture_id = p.id
group by
prefecture_id;

クエリを実行(稲妻のアイコンをクリック)してから

左のViewsを右クリックしてRefresh Allをクリックする

ビューの使い方
select
name,
count
from
prefecture_user_counts;
↑先程作ったビュー

ビューの制限事項

order by句が使えない

ビューの削除

drop view prefecture_user_counts;

使ってみると
select
name,
count
from
prefecture_user_counts;

Error Code: 1146. Table ‘mydb.prefecture_user_counts’ doesn’t exist
↑のようなエラーが出る

その15に続きます。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です