My SQL 進階部分

來源:互聯網
上載者:User

標籤:name   依次   iter   處理   簡單   int   end   它的   服務   

一、預存程序

預存程序是儲存在資料庫目錄中的一段聲明性sql語句,感覺其功能類似函數。

1.簡單的預存程序

我們可以通過create procedure procedure_name 語句建立預存程序,然後通過call procedure_name 語句調用預存程序。

delimiter //    create procedure procedure_name( )        begin        select * from table_name        end //delimiter ;

下面我們來詳細的說明上述預存程序:

  • 第一個命令delimiter // ,與預存程序文法無關。它是將標準分隔字元--逗號(;)改為--雙斜杠(//)。因為我們想將預存程序作為整體傳給伺服器,而不是讓MySQL依次解釋每個語句。關鍵字end後使用分隔字元//來指示預存程序的結束,左後將分隔字元該回分號。
  • 使用create procedure語句建立預存程序。
  • begin 和 end 之間的部分是預存程序的主題,將聲明性的sql語句放在主題中以處理商務邏輯。
2.聲明變數

要在預存程序中聲明一個變數,可使用declare 語句,其基本文法格式如下:

declare variable_name datetype( size ) default default_value;

聲明變數後,就可以開始使用變數了。我們可以使用set 語句為其分配值,也可以使用 select into 語句將查詢結果分配給一個變數.

例如,假設我們有一個產品表(products),我們聲明兩個變數 total_count 和 m,將totla_count賦值為10,將products表的資料個數賦值給m:

declare total_count,m int default 0;set total_count = 10;select count(*) into mfrom products;

注意:變數有自己的範圍(範圍),它用來定義它的生命週期。 如果在預存程序中聲明一個變數,那麼當達到預存程序的END語句時,它將超出範圍,因此在其它代碼塊中無法訪問。

3.參數簡介

My SQL 進階部分

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.