好程式設計師Java教程:SQL語言之檢視

好程式設計師IT發表於2019-06-21

好程式設計師 Java 教程: SQL 語言之檢視, 前言:

本章我們將學習 MySQL 中的檢視,檢視是資料庫中的重要元件,本文將從檢視是什麼,檢視的作用,建立和使用檢視以及修改檢視這些方面講解檢視。

 

檢視是什麼

檢視 View 是一種虛擬的表,本身不儲存資料,內部封裝了一條 SELECT 語句,資料來源於查詢的一張或多張實際資料的表。

檢視的結構和真實的表相同,也是有行和列組成,在檢視上也可以進行增刪改查的操作。

 

檢視的作用

檢視主要用於查詢,使用檢視的優點是:

1) 簡單

檢視可以將複雜的查詢語句進行封裝,使用者使用時不需要關心表的結構、連線關係、篩選條件、分組和排序等等,只需要對檢視進行簡單的查詢。

2) 安全

建立檢視時,可以篩選掉一些不希望使用者看到的行和列,也可以給檢視設定訪問許可權,讓不同級別的使用者看到不同的檢視,從而提高資料庫的資料安全性。

 

 

檢視的語法

建立檢視

create view 檢視名

as

select 語句 ;

刪除檢視

drop view 檢視名 ;

修改檢視

replace view  檢視名

as

select 語句 ;

使用檢視

selec * from  檢視名  [where  條件 ];

程式碼案例:

  1. --  在單表上建立檢視 查詢女同學的檢視
  2. create view view_female_stu
  3. as
  4. select * from tb_student where stu_gender = ' ';
  5. --  使用檢視
  6. select * from view_female_stu


  1. --  使用連線查詢建立檢視,查詢學生姓名、課程和分數
  2. create view view_stu_score
  3. as
  4. select s.stu_id  學號 , s.stu_name  姓名 ,c.course_name  課程 ,sc.score  分數
  5. from tb_student s left join tb_score sc on s.stu_id = sc.stu_id
  6. left join tb_course c on c.course_id = sc.course_id;
  7. --  使用檢視
  8. select * from view_stu_score where  分數  > 80;

注意:在建立檢視時,查詢語句中的別名會作為檢視的列名

檢視的修改

檢視主要用於查詢,但是也可以執行 insert update delete 語句,結果會對映到檢視關聯的實際表中。

  1. --  更新學生的年齡
  2. update view_female_stu set stu_age = stu_age + 3 where stu_id = 4;

執行上面程式碼的結果是,實際的 tb_student 表被更新了。

  1. --  更新學生分數
  2. update view_stu_score set  分數  = 83 where  學號  = 1;

執行上面程式碼的結果是,更新失敗,出現錯誤:

為什麼有的檢視可以更新,而有的會失敗呢?

下面情況的檢視不可以執行insert update delete 操作:

1)多表連線

2) 包含 distinct

3)包含聚合函式

4) 包含 group by

5) 包含 order by

6) 包含 union union all

7)包含子查詢等

所以對檢視執行 DML 操作的限制條件還是很多的,大多數情況下我們還是對檢視進行查詢,如果需要 DML 操作還是建議對實際表進行操作。

總結

檢視是一種虛擬的表,資料來源於從實際表中查詢的結果,它可以簡化查詢操作,以及提高資料庫的安全性,本章學習了檢視的建立和使用語法,檢視可以修改但是有比較多的限制條件,一般還是用於查詢。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69913892/viewspace-2648337/,如需轉載,請註明出處,否則將追究法律責任。

相關文章