Oracle ビュー(view)を挿入(insert)、更新(update)、削除(delete)するサンプル

環境
Oracle Database 11g Release 11.2.0.1.0 – 64bit Production
PL/SQL Release 11.2.0.1.0 – Production

構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE OR REPLACE VIEW ビュー名 AS
SELECT 列名 FROM テーブル1
inner join
テーブル2
on 条件
CREATE OR REPLACE VIEW ビュー名 AS SELECT 列名 FROM テーブル1 inner join テーブル2 on 条件
CREATE OR REPLACE VIEW ビュー名 AS
SELECT 列名 FROM テーブル1
inner join
テーブル2
on 条件

CREATE VIEW文を使用すると、ビューを定義できます。
ビューとは、1つ以上の表またはビューをベースとした論理表です。
操作方法
1.テーブルを確認します
USER_INFOテーブル

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
USERID USERNAME AGE
11 TOKYO 23
12 OOSAKA 24
13 FUKUOKA 25
14 YOKOHAMA 35
USERID USERNAME AGE 11 TOKYO 23 12 OOSAKA 24 13 FUKUOKA 25 14 YOKOHAMA 35
USERID	USERNAME	AGE
11	    TOKYO	    23
12	    OOSAKA	    24
13	    FUKUOKA	    25
14	    YOKOHAMA	35

departテーブル

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
DEPID DEPARTNAME
11 開発部
12 インフラ部
13 サポート部
14 教育部
DEPID DEPARTNAME 11 開発部 12 インフラ部 13 サポート部 14 教育部
DEPID	DEPARTNAME
11	    開発部
12	    インフラ部
13	   サポート部
14	   教育部

2.ビュー(view)を作成します
SQL構文

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
CREATE OR REPLACE VIEW USERVIEW AS
SELECT
UI.USERID,
UI.USERNAME,
DT.DEPARTNAME
FROM USER_INFO UI
INNER JOIN DEPART DT
ON UI.USERID = DT.DEPID
CREATE OR REPLACE VIEW USERVIEW AS SELECT UI.USERID, UI.USERNAME, DT.DEPARTNAME FROM USER_INFO UI INNER JOIN DEPART DT ON UI.USERID = DT.DEPID
CREATE OR REPLACE VIEW USERVIEW AS
  SELECT
    UI.USERID,
      UI.USERNAME,
      DT.DEPARTNAME
  FROM USER_INFO UI
   INNER JOIN DEPART DT
   ON UI.USERID = DT.DEPID

3.ビュー(VIEW)を更新します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
UPDATE USERVIEW SET USERNAME='テスト太郎' WHERE USERID=11
UPDATE USERVIEW SET USERNAME='テスト太郎' WHERE USERID=11
UPDATE USERVIEW SET USERNAME='テスト太郎' WHERE USERID=11

4.「user_info」テーブルの値を確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select * from user_info where userid = 11
select * from user_info where userid = 11
select * from user_info where userid = 11

結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
USERID USERNAME AGE
11 テスト太郎 23
USERID USERNAME AGE 11 テスト太郎 23
USERID	USERNAME	AGE
11	    テスト太郎	    23

5.ビュー(view)に対して挿入(insert)を行います

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
SQL> INSERT INTO USERVIEW(USERID,USERNAME) VALUES (15,'花子');
1行が作成されました。
SQL> INSERT INTO USERVIEW(USERID,USERNAME) VALUES (15,'花子'); 1行が作成されました。
SQL> INSERT INTO USERVIEW(USERID,USERNAME) VALUES (15,'花子');

1行が作成されました。

挿入結果を確認します

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
select * from user_info where userid = 15
select * from user_info where userid = 15
select * from user_info where userid = 15

結果

Plain text
Copy to clipboard
Open code in new window
EnlighterJS 3 Syntax Highlighter
USERID USERNAME AGE
15     花子      « NULL »
USERID USERNAME AGE 15     花子      « NULL »
USERID	USERNAME	AGE
15	    花子     	« NULL »

 

Oracle

Posted by arkgame