MySQL view作成方法

mysqlからデータ抽出する際に, 頻繁に見たいデータがある.
こういうやつはviewとして作成して今後の手間を減らしたい.

今回は 「そもそもビューってなに」 からスタートして, view作成手順を簡単にまとめる.

概要は次の通り.

動作環境

  • centos 6.8
  • MySQL5.7.15

前提条件

今回は事前にテストDB, テストテーブルを用意しておく.
このテストテーブルを元にviewを作成する.

  • データベース名
    • tstDB
  • テーブル名
    • tests

tstDB.testsの中身は次の通り.

mysql> select * from tests;
+----+------+---------------------+---------------------+
| id | name | created             | modified            |
+----+------+---------------------+---------------------+
|  1 | taka | 2017-06-06 07:59:45 | 2017-06-06 07:59:45 |
|  2 | taki | 2017-06-06 07:59:45 | 2017-06-06 07:59:45 |
|  3 | taku | 2017-06-06 07:59:45 | 2017-06-06 07:59:45 |
|  4 | take | 2017-06-06 07:59:45 | 2017-06-06 07:59:45 |
|  5 | tako | 2017-06-06 07:59:45 | 2017-06-06 07:59:45 |
+----+------+---------------------+---------------------+

viewってなに

そもそもviewとは, について.

viewは

  • 元となるテーブルから
  • 自分が欲しいデータ・見たいデータを取得して
  • 新たに名前を付けたテーブルのこと

こんな認識でok.

viewを作成するための基本文法

CREATE VIEW 文を使えばできる.

基本文法は次の通り.

  • create view データベース名.view名 as select 欲しいデータ

「欲しいデータ」 は通常の select文 と一緒.

view 作成

今回は次のようなviewを作成する.

  • view名
    • tests_names
  • 欲しいデータ
    • testsテーブルの name フィールドのデータ

まず 欲しいデータ がちゃんと取れるか確認

select文がちゃんと機能するか確認.

mysql> select tests.name from tstDB.tests;
+------+
| name |
+------+
| taka |
| taki |
| taku |
| take |
| tako |
+------+
5 rows in set (0.00 sec)

よし, ok.

view 作成

mysql> create view tstDB.tests_names as
    -> select tests.name from tstDB.tests;
Query OK, 0 rows affected (0.00 sec)

as で一回改行している.
これは私が可読性が高いと思っているから.
ここは普通に半角スペースでもok.

viewができているか確認

mysql> show tables;
+-----------------+
| Tables_in_tstDB |
+-----------------+
| tests           |
| tests_names     |
| users           |
+-----------------+

うん, いいね.

mysql> select * from tests_names;
+------+
| name |
+------+
| taka |
| taki |
| taku |
| take |
| tako |
+------+
5 rows in set (0.00 sec)

よし, ok.

今回は以上.

スポンサーリンク
336 x 280 – レクタングル(大)
336 x 280 – レクタングル(大)
  • このエントリーをはてなブックマークに追加

この記事が気に入ったら
いいね!しよう

スポンサーリンク
336 x 280 – レクタングル(大)
トップへ戻る