ビューを作成する(CREATE VIEW文)

MySQL では新しいビューを作成するときに CREATE VIEW 文を使用します。ここでは MySQL でビューを作成する方法について解説します。

(Last modified: )

ビューを作成する

ビューを作成するには CREATE VIEW 文を使います。基本書式は次の通りです。

CREATE VIEW view_name AS select_statement

ビュー名( view_name )を指定してビューを作成します。ビュー名は 64 文字以内で指定し、同じデータベース内で他のビューやテーブルと同じ名前を付けることはできません。ビューをどのように定義するのかについて select_statement で指定します。

では実際に試してみます。まず元となるテーブルを次のように作成しました。

create table product (id int, name varchar(10), stock int);

ビューを作成する(1)

データをいくつか格納しておきます。

insert into product values(1, 'Display', 16);
insert into product values(2, 'Mouse', 8);
insert into product values(3, 'Keyboard', 12);
insert into product values(4, 'Printer', 4);

ビューを作成する(2)

それでは product テーブルの id カラムと name カラムからビューを作成します。次のように実行してください。

create view productlist as select id, name from product;

ビューを作成する(3)

ビューが作成されました。

作成したビューはテーブルと同じようにデータを取得することができます。次のように実行してください。

select * from productlist;

ビューを作成する(4)

このビューでは元のテーブルの特定のカラムの値だけを参照することができます。

-- --

もう一つ試してみます。次のようなテーブルを作成し、データを追加しました。

create table report (name varchar(10), num int, price int);

insert into report values('Orange', 5, 320);
insert into report values('Lemon', 3, 180);
insert into report values('Apple', 8, 240);
insert into report values('Orange', 4, 300);
insert into report values('Apple', 2, 260);

ビューを作成する(5)

report テーブルの name カラム毎に num カラムと price カラムを乗算した結果からビューを作成します。次のように実行してください。

create view sales as select name, sum(num * price) as total from report group by name;

ビューを作成する(6)

ビューが作成されました。

作成したビューからデータを取得します。

select * from sales;

ビューを作成する(7)

このビューでは個数(num)と単価(price)を乗算した結果を商品毎に集計した売上合計を参照することができます。

ビューのカラム名を設定する

ビューを作成したときビューのカラム名は元になっているテーブルのカラム名がそのまま使用されますが別の名前を付けることもできます。次の書式を使用します。

CREATE VIEW view_name (col_name1, col_name2, ...)
  AS select_statement

カラムの数だけビュー名の後にカラム名をカンマで区切って指定します。変更したいカラム名だけでなく、カラムの数だけ必ず指定する必要があります。

では実際に試してみます。次のようなテーブルを作成し、データをいくつか追加しました。

create table stock (name varchar(10), color varchar(10), num int);

insert into stock values('Mouse', 'red', 10);
insert into stock values('Display', 'white', 4);
insert into stock values('Printer', 'blue', 8);
insert into stock values('Display', 'black', 5);

ビューのカラム名を設定する(1)

stock テーブルの name カラムと color カラムからビューを作成します。この時ビューのカラム名として productname と color を指定して作成します。

create view product (productname, color) as select name, color from stock;

ビューのカラム名を設定する(2)

ビューが作成されました。

作成したビューからデータを取得します。

select * from product;

ビューのカラム名を設定する(3)

作成したビューのカラム名が元のテーブルのカラム名ではなく指定したカラム名になっていることが確認できます。

-- --

CREATE VIEW 文を使ってビューを作成する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。