mysql 视图_mysql视图
一。為什么使用視圖
1.重用SQL語句。
2.簡化復雜的SQL操作。在編寫查詢后,可以方便地重用它而不必知道它的基本查詢細節。
3.使用表的組成部分而不是整個表。
4.保護數據。可以給用戶授予表的特定部分的訪問權限而不是整個表的訪問權限。
5.更改數據格式和表示。視圖可返回與底層表的表示和格式不同的數據。
6.在視圖創建之后,可以用與表基本相同的方式利用它們。可以對視圖執行SELECT操作,過濾和排序數據,將視圖聯結到其他視圖或表,甚至能添加和更新數據(添加和更新數據存在某些限制)。
7.重要的是知道視圖僅僅是用來查看存儲在別處的數據的一種設施。視圖本身不包含數據,因此它們返回的數據是從其他表中檢索出來的。在添加或更改這些表中的數據時,視圖將返回改變過的數據。
二。視圖的規則和限制
1.與表一樣,視圖必須唯一命名(不能給視圖取與別的視圖或表相同的名字)。
2.對于可以創建的視圖數目沒有限制。
3.為了創建視圖,必須具有足夠的訪問權限。這些限制通常由數據庫管理人員授予。
4.視圖可以嵌套,即可以利用從其他視圖中檢索數據的查詢來構造一個視圖(但是會影響性能)。
5.ORDER BY可以用在視圖中,但如果從該視圖檢索數據的SELECT語句中也含有ORDER BY,那么該視圖中的ORDER BY將被覆蓋。
6.視圖不能索引,也不能有關聯的觸發器或默認值。
7.視圖可以和表一起使用。例如,編寫一條聯結表和視圖的SELECT語句。
三。創建,修改,刪除視圖
1.創建視圖
create view 視圖名(注意唯一) as 執行語句(包括查詢,刪除,修改,插入,但最好不要用除了查詢以外的,因為有很多限制,而且視圖主要是用來查詢的)//上面語句的意思:把查詢結果當做視圖栗子:create view users as select * from user執行語句就創建了一個users視圖了2.查看創建視圖的語句(即:這個視圖是后面的查詢語句是什么)
show create view 視圖名栗子:
查看先前創建的視圖:
show create view users結果:
這就是create view 列中的內容:
CREATE ALGORITHM=UNDEFINED DEFINER=`root`@`localhost` SQL SECURITY DEFINER VIEW `users` AS select `user`.`id` AS `id`,`user`.`user_name` AS `user_name`,`user`.`password` AS `password`,`user`.`create_time` AS `create_time` from `user`3.刪除視圖
drop view 視圖名栗子:drop view users4.更新視圖
方式一:
先刪除原先的視圖,然后再創建
drop view userscreate view users as select * from user方式二:
直接更新視圖,語句如下:
四。使用視圖
在上面我們已經知道如何創建視圖,接下來將會看到如何使用視圖。
1.簡單使用
當查詢的時候,完全可以把視圖當做一個表來看待。當我們的查詢語句非常復雜時,且多次使用,那會非常香。
栗子:
查詢視圖中所有數據select * from users查詢視圖中id=1的行select * from users where id = 1注意:
1.視圖并不是存在的表,使用的時候還是通過語句去查了表。
2.通過WHERE子句從視圖中檢索特定數據。在MySQL處理此查詢時,它將指定的WHERE子句添加到視圖查詢中的已有WHERE子句中,以便正確過濾數據。(將會自動組合)。
3.創建的視圖最好能重用,不然沒啥意義。(我用一次為啥要創建視圖呢?是不是這個理)
總結
以上是生活随笔為你收集整理的mysql 视图_mysql视图的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 围成一圈的排列组合问题_约瑟夫问题
- 下一篇: pythonos基础_python基础之