テーブルとビューの違いは?
テーブル
・実際のデータを保存
ビュー
・ビューの中にはセレクト文が保存される
・ビュー自体はデータを持たない
・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
↑のようなエラーが出る