戻る

ビューを使いこなす

ビューの作成

CREATE VIEW ビューの作成 AS SELECT カラム名 FROM テーブル名 WHERE 条件;

ALTER TABLE tb ADD bikou VARCHAR(100);

UPDATE tb SET bikou='制約なし';

SELECT * FROM tb;

CREATE TABLE tb1L SELECT * FROM tb1;

CREATE VIEW v1
AS
SELECT nama,tosi
FROM tb1L;

SELECT * FROM v1;

ビューからカラムの値を更新する

UPDATE v1 SET nama='主任・佐藤' WHERE nama='佐藤';

条件を設定してビューを作成

CREATE VIEW v2
AS
SELECT tb.bang,tb1L.nama,tb.uria
FROM tb
JOIN tb1L
USING(bang)
WHERE tb.uria>=100;

SELECT * FROM v2;

元になるテーブルを更新するとビューはどうなるのか?

UPDATE tb SET uria=777 WHERE uria=54;

SELECT * FROM v2;

ビューの存在を確認

SHOW TABLES;

ビューのカラム構造を表示

DESC ビュー名;

DESC v2;

ビューの詳細情報の表示

SHOW CREATE VIEW ビュー名;

ビューに「INSERT」するとどうなるのか?

INSERT INTO v1 VALUES('アルバイト・石田',18);

SELECT * FROM v1;

SELECT * FROM tb1L;

条件が設定されている元のテーブルにはどう反映されているのか?

CREATE VIEW v3
AS
SELECT bang,uria
FROM tb
WHERE uria>=100;

SELECT * FROM v3;

ビューの条件に合わないデータの挿入

INSERT INTO v3 VALUES('意地悪',50);

SELECT * FROM v3;

SELECT bang,uria FROM tb;

ビューの条件に合わない場合はエラーになるようにする

CREATE VIEW v4
AS
SELECT bang,uria FROM tb
WHERE uria>100
WITH CHECK OPTION;

INSERT INTO v4 VALUES ('意地悪',50);

ビューの上書き

CREATE OR REPLACE VIEW v1
AS
SELECT NOW();

ビューのカラム構造を変更

ALTER VIEW ビュー名
AS
SELECT カラム名
FROM テーブル名;

ALTER VIEW v1
AS
SELECT nama,tosi
FROM tb1;

ビューの削除

DROP VIEW ビューの名前

DROP VIEW IF EXISTS v1;

次のテーブル「tb」で、カラム「uria」が50以上で、「bang」ごとの「uria」の平均で120以上のものだけを、「uria」の平均が多いものから表示するビュー「v_uria」を作成してください。

CREATE VIEW v_uria
AS
SELECT bang,AVG(uria)
FROM tb
WHERE uria>=50
GROUP BY bang
HAVING AVG(uria)>=120
ORDER BY AVG(uria) DESC;

inserted by FC2 system