<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>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                存儲過程是一組為了完成特定功能的預先創建并使用指定名稱存儲在數據庫服務器上的sql語句集合,用戶可以通過指定存儲過程的名稱并給定參數來調用并執行。存儲過程是可編程的函數,在數據庫中創建并保存,可以由sql語句和控制結構組成。 其實就是一組使用控制結構封裝好后存儲在數據庫服務器上的sql語句。 <br>優點: * 存儲過程是預編譯的,只在創建時進行編譯,在每次執行時不需重新編譯,因此使用存儲過程可以提高數據庫執行效率。 * 存儲過程創建一次便可以重復使用 * 實現復雜業務邏輯需要多條sql語句,客戶端和服務器之間需要多次請求,會產生大量的網絡傳輸,而存儲過程則是直接在數據庫服務器上執行的,因此會減少很多網絡傳輸,降低網絡負載。 * 安全性高。存儲過程可以屏蔽對底層數據庫對象的直接訪問,使用 EXECUTE 權限調用存儲過程,無需擁有訪問底層數據庫對象的顯式權限。 * 在通過網絡調用過程時,只有對執行過程的調用是可見的。無法看到表和數據庫對象名稱,不能嵌入SQL 語句,有助于避免 SQL 注入攻擊。 缺點: * 當業務邏輯改動較大,需要重新修改存儲過程直接操作數據庫 * 很多異常不能再代碼中捕獲,錯誤信息排查難度大。 * 過多使用存儲過程會降低系統的移植性,對數據庫的維護工作量增多。 * 存儲過程不太適合面向對象的設計,無法采用面向對象的方式將業務邏輯進行封裝,業務邏輯在存儲層實現,增加了業務和存儲的耦合,代碼的可讀性也會降低, 應用場景: 存儲過程適用于業務邏輯復雜且不會經常變更、請求量較少的操作。如:后臺大批量查詢、更新日志等。 * 比較復雜、耗時的操作 * 涉及多個SQL語句或者涉及多張表的操作 > 存儲過程實例: ``` mysql > DELIMITER // //mysql 聲明語句結束符,可以自定義。 mysql > CREATE PROCEDURE proc2(IN parameter int) //創建存儲過程,名稱為proc2,并傳參 -> begin //存儲過程開始 -> declare var int; //變量定義 -> set var=parameter+1; -> if var=0 then -> insert into t values(17); -> end if; -> if parameter=0 then -> update t set s1=s1+1; -> else -> update t set s1=s1+2; -> end if; -> end; //存儲過程結束 -> // //mysql 語句結束符,上面定義的一致 mysql > DELIMITER ; //將語句的結束符號恢復為分號 ```
                  <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>

                              哎呀哎呀视频在线观看