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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ## 7.1視圖: - 從一個或幾個基本表(或視圖)導出的表。它與基本表不同, 是一個虛表。 - 數據庫只存放視圖的定義,而不存放視圖對應的數據, 這些數據仍存放在原來的基本表中。所以基本表中的數據發生變化,從視圖中查詢出的數據也就隨之改變了。 - mysql5.1版本出現的新特性,是通過表動態生成的數據 只是保存了sql邏輯,不占用物理空間,只是一般不能增刪改 **優點:** 可以暴露特定字段,做權限管理 1. 視圖能夠簡化用戶的操作 2. 視圖使用戶能以多鐘角度看待同一數據 3. 視圖對重構數據庫提供了一定程度的邏輯獨立性 4. 視圖能夠對機密數據提供安全保護 5. 適當的利用視圖可以更清晰的表達查詢 **缺點:** 1. 性能差:從數據庫視圖查詢數據可能會很慢,特別是如果視圖是基于其他視圖創建的。 2. 表依賴關系:將根據數據庫的基礎表創建一個視圖。每當更改與其相關聯的 表的結構時,都必須更改視圖。 >[info]視圖創建: ``` create view v1[id,name,salary] as select employee_id,last_name,salary from employees ``` <br> ## 7.2存儲過程 ``` /* 含義:一組預先編譯好的SQL語句的集合,理解成批處理語句 1、提高代碼的重用性 2、簡化操作 3、減少了編譯次數并且減少了和數據庫服務器的連接次數,提高了效率 */ ``` >[danger]創建語法 ``` CREATE PROCEDURE 存儲過程名(參數列表) BEGIN 存儲過程體(一組合法的SQL語句) END /* 1、參數列表包含三部分 參數模式 參數名 參數類型 舉例: in stuname varchar(20) 參數模式: in:該參數可以作為輸入,也就是該參數需要調用方傳入值 out:該參數可以作為輸出,也就是該參數可以作為返回值 inout:該參數既可以作為輸入又可以作為輸出,也就是該參數既需要傳入值,又可以返回值 2、如果存儲過程體僅僅只有一句話,begin end可以省略 存儲過程體中的每條sql語句的結尾要求必須加分號。 存儲過程的結尾可以使用 delimiter 重新設置,默認結尾為分號";" 語法: delimiter 結束標記 案例: delimiter $ */ ``` >[danger]調用語法 CALL 存儲過程名(實參列表); >[danger]刪除存儲過程 #語法:drop procedure 存儲過程名 DROP PROCEDURE p1; >[danger]查看存儲過程的信息 DESC myp2;× SHOW CREATE PROCEDURE myp2; ## 7.3 函數 ``` /* 含義:一組預先編譯好的SQL語句的集合,理解成批處理語句 1、提高代碼的重用性 2、簡化操作 3、減少了編譯次數并且減少了和數據庫服務器的連接次數,提高了效率 區別: 存儲過程:可以有0個返回,也可以有多個返回,適合做批量插入、批量更新 函數:有且僅有1 個返回,適合做處理數據后返回一個結果 */ ``` >[success]創建語法 ``` CREATE FUNCTION 函數名(參數列表) RETURNS 返回類型 BEGIN 函數體 END ``` ``` /* 注意: 1.參數列表 包含兩部分: 參數名 參數類型 2.函數體:肯定會有return語句,如果沒有會報錯 如果return語句沒有放在函數體的最后也不報錯,但不建議 return 值; 3.函數體中僅有一句話,則可以省略begin end 4.使用 delimiter語句設置結束標記 */ ``` - 調用語法 `SELECT 函數名(參數列表) ` - 查看函數 `SHOW CREATE FUNCTION myf3; ` - 刪除函數 `DROP FUNCTION myf3; ` *案例:創建函數,實現傳入兩個float,返回二者之和 ``` CREATE FUNCTION test_fun1(num1 FLOAT,num2 FLOAT) RETURNS FLOAT BEGIN DECLARE SUM FLOAT DEFAULT 0; SET SUM=num1+num2; RETURN SUM; END SELECT test_fun1(1,2); ``` ## 7.4 循環控制 ``` /* 分類: while、loop、repeat 循環控制: iterate類似于 continue,繼續,結束本次循環,繼續下一次 leave 類似于 break,跳出,結束當前所在的循環 */ ``` **1.while** ``` /* 語法: 【標簽:】while 循環條件 do 循環體; end while【 標簽】; */ ``` **2.loop** ``` /* 語法: 【標簽:】loop 循環體; end loop 【標簽】; 可以用來模擬簡單的死循環 */ ``` **3.repeat** ``` /* 語法: 【標簽:】repeat 循環體; until 結束循環的條件 end repeat 【標簽】; */ ```
                  <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>

                              哎呀哎呀视频在线观看