ビューを変更する(ALTER VIEW文, CREATE OR REPLACE VIEW文)

広告
eyecatch

ALTER VIEW 文または CREATE OR REPLACE VIEW文 を使用すると作成済みのビューを変更することができます。ここではビューを変更する方法について解説します。

ALTER VIEW文を使ったビューの変更

ALTER VIEW 文を使ってビューを変更する方法です。書式は次の通りです。

ALTER VIEW view_name [(column_list)] AS select_statement

CREATE VIEW 文と書式は同じです。既存のビューの名前を指定してビューを再設定します。

では実際に試してみます。テーブルを作成しビューを作成したあとでビューを変更してみます。まず元となるテーブルを次のように作成しました。テーブル作成したあとにデータをいくつか追加しておきます。

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

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

ALTER VIEW文を使ったビューの変更(1)

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

create view productlist as select id, name from product;

ALTER VIEW文を使ったビューの変更(2)

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

作成したビューからデータを取得します。次のように実行してください。

select * from productlist;

ALTER VIEW文を使ったビューの変更(3)

それでは作成した productlist ビューを変更してみます。変更前との違いは stock カラムの値を追加で取得していることと、 WHERE 句を使って stock カラムの値が 5 よりも大きい値に限定していることです。

alter view productlist as select id, name, stock from product where stock > 5;

ALTER VIEW文を使ったビューの変更(4)

ビューの変更が完了しました。 それでは変更後のビューからデータを取得してみます。

ALTER VIEW文を使ったビューの変更(5)

変更されたビューに基づいてデータを取得することができました。

CREATE OR REPLACE VIEW文を使ったビューの変更

ビューを変更するもう一つの方法は CREATE VIEW 文に OR REPLACE をつけて実行する方法です。書式は次のとおりです。

CREATE OR REPLACE VIEW view_name AS select_statement

CREATE VIEW 文を使用した場合は新規のビューを作成しますが、 OR REPLACE が付いている場合、指定したビュー名のビューが存在しない場合は新規にビューを作成し、指定したビュー名のビューが存在している場合はビューの変更を行います。

では実際に試してみます。テーブルを作成しビューを作成したあとでビューを変更してみます。まず元となるテーブルを次のように作成しました。テーブル作成したあとにデータをいくつか追加しておきます。

create table user (id int, name varchar(10), address varchar(10), old int);

insert into user values(1, 'Yamada', 'Tokyo', 32);
insert into user values(2, 'Suzuki', 'Osaka', 19);
insert into user values(3, 'Endou', 'Tokyo', 22);
insert into user values(4, 'Gotou', 'Nagoya', 28);

CREATE OR REPLACE VIEW文を使ったビューの変更(1)

user テーブルの name カラム、 old カラムからビューを作成します。 WHERE 句を使って address カラムの値で条件を設定しています。次のように実行してください。

create or replace view followuser as select name, old from user where address='Tokyo';

CREATE OR REPLACE VIEW文を使ったビューの変更(2)

今回ビュー名として指定した followuser というビューは存在していなかったので、新しくビューが作成されました。

作成したビューからデータを取得します。次のように実行してください。

select * from followuser;

CREATE OR REPLACE VIEW文を使ったビューの変更(3)

それでは作成した followuser ビューを変更してみます。取得するカラムを name カラムと addresss カラムに変更し、 WHERE 句の条件も old カラムの値で条件を設定しています。

create or replace view followuser as select name, address from user where old>25;

CREATE OR REPLACE VIEW文を使ったビューの変更(4)

今回ビュー名として指定した followuser というビューは既に存在しているので、既存の followuser ビューが変更されました。それでは変更後のビューからデータを取得してみます。

CREATE OR REPLACE VIEW文を使ったビューの変更(5)

変更されたビューに基づいてデータを取得することができました。

-- --

ALTER VIEW 文および CREATE OR REPLACE VIEW文を使って作成済みのビューを変更する方法について解説しました。

MySQLの使い方の他の記事を見てみる

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。