<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                **目錄** [TOC] # 1 使用者變量 MySQL數據庫服務器提供一種簡易的儲存資料方式,稱為“使用者變量、user variables”。使用者變量儲存一些簡單的資料,例如數字或字串,它們可以在后續的操作中使用。下列是設定使用者變量的語法: [![mysql_12_snap_01](http://box.kancloud.cn/2015-09-15_55f7ef88abe52.png)](http://box.kancloud.cn/2015-09-15_55f7ef88abe52.png) 下列的敘述設定兩個儲存字串資料的使用者變量: [![mysql_12_snap_02](http://box.kancloud.cn/2015-09-15_55f7ef8bacf3d.png)](http://box.kancloud.cn/2015-09-15_55f7ef8bacf3d.png) 設定好使用者變量以后,你可以在“SELECT”敘述中查詢它們儲存的內容: [![mysql_12_snap_03](http://box.kancloud.cn/2015-09-15_55f7ef8c0150c.png)](http://box.kancloud.cn/2015-09-15_55f7ef8c0150c.png) 如果你需要設定多個變量的話,可以在一個“SET”敘述中設定多個需要的使用者變量: [![mysql_12_snap_04](http://box.kancloud.cn/2015-09-15_55f7ef9137382.png)](http://box.kancloud.cn/2015-09-15_55f7ef9137382.png) 使用查詢敘可以確認上列的敘述已經設定好的兩個使用者變量: [![mysql_12_snap_05](http://box.kancloud.cn/2015-09-15_55f7efa09b80f.png)](http://box.kancloud.cn/2015-09-15_55f7efa09b80f.png) 使用“SELECT”敘述也可以設定需要的使用者變量,不過要特別注意指定的符號只能使用“:=”: [![mysql_12_snap_06](http://box.kancloud.cn/2015-09-15_55f7efa1433c0.png)](http://box.kancloud.cn/2015-09-15_55f7efa1433c0.png) 下列的敘述設定兩個儲存整數資料的使用者變量,因為是使用“SELECT”敘述,所以設定好使用者變量以后,也會顯示設定的使用者變量內容: [![mysql_12_snap_07](http://box.kancloud.cn/2015-09-15_55f7efa1a1461.png)](http://box.kancloud.cn/2015-09-15_55f7efa1a1461.png) 再使用查詢敘確認上列的敘述已經設定好的兩個使用者變量: [![mysql_12_snap_08](http://box.kancloud.cn/2015-09-15_55f7efa229afb.png)](http://box.kancloud.cn/2015-09-15_55f7efa229afb.png) 已經設定好的使用者變量,可以使用在大部份的敘述中,例如下列的范例使用變量來設定查詢敘述的條件設定: [![mysql_12_snap_09](http://box.kancloud.cn/2015-09-15_55f7efa287250.png)](http://box.kancloud.cn/2015-09-15_55f7efa287250.png) 使用“SELECT”敘述設定使用者變量的方式,也可以直接把查詢敘述傳回的資料儲存起來: [![mysql_12_snap_10](http://box.kancloud.cn/2015-09-15_55f7efa2d55de.png)](http://box.kancloud.cn/2015-09-15_55f7efa2d55de.png) 上列范例執行后所設定的使用者變量,也可以使用在后續的敘述中: [![mysql_12_snap_11](http://box.kancloud.cn/2015-09-15_55f7efa3631d0.png)](http://box.kancloud.cn/2015-09-15_55f7efa3631d0.png) 你也可以拿使用者變量來執行需要的運算: [![mysql_12_snap_12](http://box.kancloud.cn/2015-09-15_55f7efa3c1233.png)](http://box.kancloud.cn/2015-09-15_55f7efa3c1233.png) 注:“LIMIT”子句指定的數字不可以使用變量。 # 2 Prepared Statements的應用 一個數據庫在建立好并開始使用以后,數據庫服務器就會接收各種不同的敘述來執行工作。以查詢敘述來說,有一些敘述可能大部份的內容都是一樣的,只有在條件的設定上會不一樣。就算這些敘述的內容是差不多的,數據庫服務器每次接收到敘述時,還是要執行一些同樣的工作: [![mysql_12_snap_13](http://box.kancloud.cn/2015-09-15_55f7efa478f37.png)](http://box.kancloud.cn/2015-09-15_55f7efa478f37.png) 如果有“許多要執行的敘述,可是內容卻相似”的情況,可以使用“Prepared statements”改善數據庫的效率。首先,你要把這種敘述先準備好: [![mysql_12_snap_14](http://box.kancloud.cn/2015-09-15_55f7efa9f20a5.png)](http://box.kancloud.cn/2015-09-15_55f7efa9f20a5.png) 服務器已經準備好的敘述就稱為“prepared statement”,后續要使用這種敘述前,要先設定好prepared statement需要的資料。在上列的范例中,因為prepared statement的內容中有一個問號,所以你要先設定好一個資料,也就是國家的代碼。然后再請服務器執行指定的prepared statement,服務器就會傳回執行后的結果了: [![mysql_12_snap_15](http://box.kancloud.cn/2015-09-15_55f7efaa8a62d.png)](http://box.kancloud.cn/2015-09-15_55f7efaa8a62d.png) # 3 建立、執行與移除Prepared Statements 如果有“許多要執行的敘述,可是內容卻相似”的情形,你就可以考慮請服務器把這種敘述建立為prepared statement。下列是建立prepared statement的語法: [![mysql_12_snap_16](http://box.kancloud.cn/2015-09-15_55f7efab487cd.png)](http://box.kancloud.cn/2015-09-15_55f7efab487cd.png) 如果常需要查詢某個國家的代碼、名稱與GNP的話,你可以建立一個下列的prepared statement。敘述中的問號是“參數標記、parameter marker”,表示執行這個prepared statement需要一個參數資料: [![mysql_12_snap_17](http://box.kancloud.cn/2015-09-15_55f7efab9018c.png)](http://box.kancloud.cn/2015-09-15_55f7efab9018c.png) 建立好需要的prepared statement以后,你必須使用“EXECUTE”來執行它: [![mysql_12_snap_18](http://box.kancloud.cn/2015-09-15_55f7efabe329b.png)](http://box.kancloud.cn/2015-09-15_55f7efabe329b.png) 執行一個prepared statement并不一定需要傳送資料給它,要依據prepared statement包含的敘述中有沒有問號來決定。如果有問號的話,一個問號就需要先設定好一個使用者變量,然后再使用“USING”傳送資料給prepared statement使用: [![mysql_12_snap_19](http://box.kancloud.cn/2015-09-15_55f7efac7687a.png)](http://box.kancloud.cn/2015-09-15_55f7efac7687a.png) 后續要執行這個查詢時,只要依照同樣的步驟就可以查詢別個國家資料了: [![mysql_12_snap_20](http://box.kancloud.cn/2015-09-15_55f7efad67190.png)](http://box.kancloud.cn/2015-09-15_55f7efad67190.png) 如果一個prepared statement已經不需要了,你可以使用下列的語法,從服務器中刪除指定的prepared statement: [![mysql_12_snap_21](http://box.kancloud.cn/2015-09-15_55f7efadab667.png)](http://box.kancloud.cn/2015-09-15_55f7efadab667.png) 下列的敘述執行以后會刪除名稱為“my_country”的prepared statement: [![mysql_12_snap_22](http://box.kancloud.cn/2015-09-15_55f7efb2e0a7f.png)](http://box.kancloud.cn/2015-09-15_55f7efb2e0a7f.png) # 4 Prepared Statements的參數 在建立prepared statement時,你會依照敘述的需求設定參數標記,這些參數標記也決定執行prepared statement時,須要傳多少參數資料給它才可以正確的執行。以下列新增紀錄的敘述來說,它就使用了三個參數標記,依序為部門編號、名稱與地點: [![mysql_12_snap_23](http://box.kancloud.cn/2015-09-15_55f7efb330798.png)](http://box.kancloud.cn/2015-09-15_55f7efb330798.png) 根據prepared statement使用的參數標記,在執行prepared statement時一定傳送正確的參數資料,否則會產生錯誤訊息: [![mysql_12_snap_24](http://box.kancloud.cn/2015-09-15_55f7efb388717.png)](http://box.kancloud.cn/2015-09-15_55f7efb388717.png) 下列的范例先把要新增部門的編號、名稱與地點資料設定為使用者變量,在執行“new_dept”時傳送給它使用: [![mysql_12_snap_25](http://box.kancloud.cn/2015-09-15_55f7efb3c1f02.png)](http://box.kancloud.cn/2015-09-15_55f7efb3c1f02.png) 如果傳送的參數數量不對的話,就會產生錯誤訊息: [![mysql_12_snap_26](http://box.kancloud.cn/2015-09-15_55f7efb44a88d.png)](http://box.kancloud.cn/2015-09-15_55f7efb44a88d.png) 如果傳送的使用者變量不存在的話,會自動使用“NULL”值代替: [![mysql_12_snap_27](http://box.kancloud.cn/2015-09-15_55f7efb498cbc.png)](http://box.kancloud.cn/2015-09-15_55f7efb498cbc.png) # 5 有效范圍 所有使用者變量與prepared statements都是某一個用戶端專屬的: [![mysql_12_snap_28](http://box.kancloud.cn/2015-09-15_55f7efb4ebe4b.png)](http://box.kancloud.cn/2015-09-15_55f7efb4ebe4b.png) 如果用戶端離線以后,他所設定的使用者變量與prepared statements都會被清除: [![mysql_12_snap_29](http://box.kancloud.cn/2015-09-15_55f7efb57ee1b.png)](http://box.kancloud.cn/2015-09-15_55f7efb57ee1b.png) 所以建立prepared statements時,不可以指定它是屬于哪一個數據庫,否則會有錯誤訊息: [![mysql_12_snap_30](http://box.kancloud.cn/2015-09-15_55f7efb5c9585.png)](http://box.kancloud.cn/2015-09-15_55f7efb5c9585.png)
                  <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>

                              哎呀哎呀视频在线观看