投稿日:

DBで使うビューについて

最近仕事で、データベース上にビューを作る機会が何度か出てきました。最初は使い方も使う意味もわからなかったのですが、何度か教えてもらっているうちに、すごく便利なものだということがわかってきました。そのビューの使い方等、この機会に復習がてら自分なりにまとめておきたいと思います。

実際に表示したい項目がDBテーブルに存在しない場合は、新たに項目を設けてビューを作っておくと実際にDBテーブル上の項目と同じように使えるので、その値を表示させたり、あるいはその項目でソートさせたりすることもできるので非常に便利です。また、リアルタイムでビューが更新されるので、誕生日から現在の年齢を求めるときなど動的な値を算出するときにも便利です。

以下に、最近作ったビューを載せておきます。
●社員数を会社毎にカウントするビューです。

CREATE VIEW `staff_cnt_views` 
AS SELECT `staffs`.`company_id`,count(*) AS count
	FROM `staffs`
	WHERE `staffs`.`del_flag` = 0
	GROUP BY `staffs`.`company_id`

●if文を使って細かく条件指定して、ステータス値を取得するビューです。

CREATE VIEW `uke_state_views`
AS SELECT `tasks`.`id` AS `id`,
if((`tasks`.`del_flag` = 1),4,
if((`tasks`.`comp_flag` = 1),3,
if(((`tasks`.`answer_date` < curdate()) or (`tasks`.`user_id` is not null)),2,1))) AS `u_status`
FROM `tasks`

まだまだビューを覚えたばかりなので、これから経験を積んで役割と使い方をしっかりマスターできるようになりたいと思います。