MySQL基礎(十):視圖

  • 本博客是《MySQL基礎》系列博客的第十部分,主要介紹MySQL的視圖
  • 本博客既爲方便自己查看複習而作,亦爲你而作,望能有所裨益
  • 學習交流請聯繫 [email protected]

基本概念

視圖是虛擬表,本身不存儲數據,而是按照指定的方式進行查詢的SQL語句的封裝

視圖應用

爲了說明視圖的作用,我們在這裏舉一個例子:


我們要從 sakila 數據庫查詢出顧客的id號(Customer_id)、姓名(first_name,last_name)、地址(address)、城市(city)、國家(country)這些字段,並將其放在一張表內


因爲涉及到多張表,所以這裏就涉及到我們先前在《MySQL基礎(七):DQL語句》中提到的連接查詢。

select customer_id,first_name,last_name,ad.address,city,co.country from customer cu
join address ad on ad.address_id = cu.address_id
join city on city.city_id = ad.city_id
join country co on co.country_id = city.country_id
; -- 表後可加別名,用以簡化書寫,如此處address的別名爲ad

但是這種複雜的多重查詢語句不可能每次查詢都寫一遍,因此我們想是不是可以像其他語言一樣封裝下方便重複利用呢?
於是便有了視圖

創建視圖

create view <視圖名> as  <所封裝的語句> 

create view v_customer_info as 
select customer_id,first_name,last_name,ad.address,city,co.country from customer cu
join address ad on ad.address_id = cu.address_id
join city on city.city_id = ad.city_id
join country co on co.country_id = city.country_id;

查看視圖

show full tables where table_type like '%VIEW%'; -- 查看當前數據庫下已創建的所有視圖
show create view <視圖名>; -- 查看創建視圖的SQL語句

使用視圖

select * from <視圖名>; -- 調用視圖,即執行所封裝的SQL語句 

修改視圖

create or replace view <視圖名> as <所封裝的語句>
-- 有則改之,無則加之

刪除視圖

drop view <視圖名>;
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章