<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ### 什么是視圖 通俗的講,視圖就是一條 SELECT 語句執行后返回的結果集。所以我們在創建視圖的時候,主要的工作就落在創建這條SQL查詢語句上。 ### 視圖的特性 視圖是對若干張基本表的引用,一張虛表,查詢語句執行的結果,不存儲具體的數據(基本表數據發生了改變,視圖也會跟著改變) 可以跟基本表一樣,進行增刪改查操作(有條件限制) ### 視圖的作用 方便操作,特別是查詢操作,減少復雜的SQL語句,增強可讀性。 更加安全,數據庫授權命令不能限定到特定行和特定列,但是通過合理創建視圖,可以把權限限定到行列級別。 ### 使用場合 權限控制的時候,不希望用戶訪問表中某些含敏感信息的列,比如 聯系方式,薪資等。 關鍵信息來源于多個復雜關聯表,可以創建視圖提取我們需要的信息,簡化操作。 ### 創建視圖 語法如下: CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] 創建一個北京總公司(office_id = 1000)雇員的視圖: CREATE OR REPLACE VIEW view_bj_employees (id, name, office) AS ( SELECT employee_id, employee_name, office_id FROM employee WHERE office_id = 1000 ); 從 *view_bj_employees* 視圖中查詢數據: SELECT * FROM view_bj_employees; SELECT * FROM view_bj_employees WHERE gender = '男'; SELECT * FROM view_bj_employees WHERE dept_id = 1000; // unknown column 'dept_id' in 'where clause' ### 修改視圖 語法如下: ALTER OR REPLACE [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}] [DEFINER = { user | CURRENT_USER }] [SQL SECURITY { DEFINER | INVOKER }] VIEW view_name [(column_list)] AS select_statement [WITH [CASCADED | LOCAL] CHECK OPTION] ### 查看視圖 使用 show tables 命令不僅顯示表的名字,同時也顯示視圖的名字,而不存在單獨的顯示視圖的 show views 命令。 show tables; 使用 show create view 或者 desc 命令可以查看視圖的定義: show create view pk_employee_view; desc view_bj_employees; ### 更新視圖 更新視圖是指通過視圖來插入、更新、刪除表數據,因為視圖是虛表,其中沒有數據。如果對視圖插入、更新、刪除記錄,實際上是對基表執行相應的操作。 插入數據: INSERT INTO view_bj_employees (id, name, office) VALUES (null, '王大錘', 1000); 更新數據: UPDATE view_bj_employees SET name='王大炊' WHERE id = 58; UPDATE view_bj_employees SET name='王大炊' WHERE id = 17; // 記錄不在視圖范圍內(office_id=1002),更新失敗 刪除數據: DELETE FROM view_bj_employees WHERE id = 58; 有的視圖是可更新的,有的是不可更新的,是有條件限制的,所以視圖最好當作查詢使用,更多細節請參考官方文檔。 ### 刪除視圖 語法如下: DROP VIEW [IF EXISTS] view_name [, view_name] ... [RESTRICT | CASCADE] 刪除 *view_bj_employees* 視圖: drop view if exists view_bj_employees; 參考鏈接: - [MySQL視圖講解](http://www.2cto.com/database/201508/427083.html) - [Create View Syntax](https://dev.mysql.com/doc/refman/5.7/en/create-view.html) - [Updatable and Insertable Views](https://dev.mysql.com/doc/refman/5.7/en/view-updatability.html)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看