SELECT s.*,p.hometown FROM student s,PRovince p WHERE s.wai = p.id-- 視圖的簡介,作用,優點-- 1.       什么是視圖?-- a.       視圖是一種虛擬的表,是從數據庫中一個或者多個表中導出的表-- b.       數據庫只存放了視圖的定義,而并沒有存放視圖中的數據,這些數據存放在原來的表中-- c. 使用視圖查詢數據時,數據庫系統會從原來的表中取出對應的記錄--  -- 2.         視圖的作用:-- a.         使操作簡便化-- b.         增加數據的安全性-- c.         提高表的邏輯獨立性-- -- 3.         視圖的優點:-- a. 視點集中-- b. 簡化操作-- c. 定制數據-- d. 合并分割數據-- e. 安全性-- 二: 創建視圖-- CREATE [ ALGORITHM ={ UNDEFIEND | MERGE | TEMPTABLE }]-- VIEW 視圖名[ ( 屬性清單) ]-- AS SELECT 語句-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];--  -- ALGORITHM 是可選參數,表示視圖選擇的算法;-- “視圖名”參數表示要創建的視圖的名稱;-- “屬性清單”是可選參數,其指定了視圖中各種屬性的名詞,默認情況下與SELECT 語句中查詢的屬性相同;-- SELECT 語句參數是一個完整的查詢語句,標識從某個表查出某些滿足條件的記錄,將這些記錄導入視圖中;-- WITH CHECK OPTION 是可選參數,表似乎更新視圖時要保證在該視圖的權限范圍之內;-- ALGORITHM 包括3 個選項UNDEFINED、MERGE 和TEMPTABLE。-- UNDEFINED 選項表示MySQL 將自動選擇所要使用的算法;-- MERGE 選項表示將使用視圖的語句與視圖定義合并起來,使得視圖定義的某一部分取代語句的對應部分;-- TEMPTABLE 選項表示將視圖的結果存入臨時表,然后使用臨時表執行語句;CASCADED是可選參數,表示更新視圖時要滿足所有相關視圖-- 和表的條件,該參數為默認值;-- LOCAL 表示更新視圖時,要滿足該視圖本身的定義條件即可;-- 創建一個查詢全表的視圖 oneCREATE VIEW two ASSELECT s.*,p.hometown FROM student s,province p WHERE s.wai = p.id;-- 使用視圖,根據條件查詢視圖中內容SELECT * FROM two WHERE hometown = '山西';-- 創建視圖three 查詢姓名,課程,分數和家鄉CREATE VIEW threeASSELECT s.namea 姓名,s.subjecta 課程,s.score 分數,p.hometown 家鄉 FROM student s,province p WHERE s.wai = p.id-- 使用視圖threeSELECT * FROM three;-- 查看視圖-- DESCRIBE 語句查看視圖基本信息DESC three;DESC two;--  SHOW CREATE VIEW 語句查看視圖詳細信息SHOW CREATE VIEW two;SELECT * FROM three;-- 四			修改視圖-- CREATE OR REPLACE VIEW 語句修改視圖-- CREATE OR REPLACE [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]-- VIEW 視圖名[( 屬性清單)]-- AS SELECT 語句-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];-- 如果視圖存在就REPLACE該視圖,如果不存在 就Create 該視圖-- 原來的視圖SELECT * FROM three;-- 創建或修改視圖CREATE OR REPLACE VIEW threeASSELECT * FROM province;-- ALTER 語句修改視圖-- ALTER [ ALGORITHM ={ UNDEFINED | MERGE | TEMPTABLE }]-- VIEW 視圖名[( 屬性清單)]-- AS SELECT 語句-- [ WITH [ CASCADED | LOCAL ] CHECK OPTION ];-- 只能修改視圖,不能創建視圖SELECT * FROM three;ALTER VIEW threeASSELECT * FROM province;-- alter只能修改稿視圖,不能創建視圖ALTER view fourASSELECT * FROM province;-- 更新視圖-- 更新視圖是指通過視圖來插入(INSERT)、更新(UPDATE)和刪除(DELETE)表中的數據。-- 因為視圖是一個虛擬的表,其中沒有數據。通過視圖更新時,-- 都是轉換基本表來更新。更新視圖時,只能更新權限范圍內的數據。超出了范圍,就不能更新。-- 通過視圖來插入(INSERT)、更新(UPDATE)和刪除(DELETE)時,都是對原表來進行操作.-- 查看視圖SELECT * FROM three;-- 插入數據INSERT INTO three VALUES (NULL,'杭州');-- 更新數據UPDATE three SET hometown = '天山' WHERE id = 6;-- 刪除數據DELETE FROM three WHERE id = 6;SELECT * FROM three;SELECT * FROM province;-- 刪除視圖-- 刪除視圖是指刪除數據庫中已存在的視圖。刪除視圖時,只能刪除視圖的定義,不會刪除數據;-- DROP VIEW [ IF EXISTS ] 視圖名列表[ RESTRICT | CASCADE ]DROP VIEW IF EXISTS one;-- 創建視圖CREATE VIEW oneASSELECT * FROM student;SELECT * FROM one;
新聞熱點
疑難解答