mysql學習筆記之四(視圖),mysql學習筆記視圖

來源:互聯網
上載者:User

mysql學習筆記之四(視圖),mysql學習筆記視圖
視圖

通過對視圖的操作不僅可以實現查詢的簡化,而且還會提高安全性
視圖:
       本質是一種虛擬表,其內容和真實表相似,包含一系列帶有名稱的列和行資料。但是,視圖並不在資料庫中以儲存資料值的形式存在。行和列資料來自訂視圖的查詢所引用基本表,並且在具體引用視圖時動態產生。
        視圖使程式員只關心感興趣的某些特定資料和他們所負責的特定任務。這樣程式員只能看到視圖所定義的資料而不是視圖所參考資料表中的資料。從而提高了資料庫中資料逇安全性。

特點:
1、視圖的列可以來自不同的表,是表的抽象和在邏輯意義上建立的新關係
2、視圖由基本表(實表)產生的表(虛表)
3、視圖的建立和刪除不影響基本表
4、對視圖內容的更新(添加,刪除,修改)直接影響基本表
5、當視圖來自多個表時,不允許添加刪除資料(這個應該好理解,因為牽涉到了多個表,顯然刪除,添加都是不方便的或者說不安全的)
建立
create view viewname
例:
create table t_product(
id int,
name varchar(20),
price float
)
//建立視圖
create view view_product as select id,product from t_product
失敗了,原來定義成了name,改一下屬性
alter table t_product change name product varchar(20);
再次建立視圖,OK
select * from view_product
OK,這樣就將price欄位隱藏了。
視圖大家庭
由於視圖實際上是封裝查詢語句(可以想到吧),那麼是不是任何形式的查詢語句都可以封裝成視圖?
查詢檢視
常量查詢:
create view view_const as select  3.1415926;
彙總函式(COUNT MIN SUM MAX等)
create view view_fun as select count(name) from t_student
排序(ORDER BY)
CREATE VIEW view_order as select name from t_student order by id DESC
內串連查詢語句
create view view_join 
as
select s.name
from t_student as s,t_group as g
where s.group_id=g.id and g.id=2
外串連(left join 和 right join)
create view view_left
as
select s.name
from t_student as s left join t_group as g on s.group_id=g.id 
where g.id=2
子查詢
create view view_child
as 
select s.name
from t_student as s
where s.group_id in (select id from t_group)
記錄聯合(union 和 union all)
create view view_union
as
select id,name from t_student
union all
select id,name from t_group
查看視圖
show tables ,show table status(由於view是一個特殊的表,所以查看錶也就可以查看到view), show create view viewname
1、show table status like "view_product"\G
以上面建立的view_product為例
2、show create view view_product\G
查看視圖的定義
3、describe|desc
desc viewname
刪除視圖
drop viewname[,viewname,...]
可以一次刪除多個view
修改視圖
1、create  or replace view view_name
以view_product為例
現在想要隱藏id欄位。
a、可以先刪除視圖,重新建立一個視圖
b、create or replace view viewname as
如:create or replace view view_product as select id from t_product 
這樣就不需要先刪除在建立
2、alter語句(猜著就有)
alter view viewname
as  查詢語句

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.