最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL存儲過程圖文實例講解

 更新時間:2022年03月09日 15:56:27   作者:程裕強  
雖然MySQL的存儲過程一般情況下是不會使用到的,但是在一些特殊場景中,還是有需求的,下面這篇文章主要給大家介紹了關于MySQL存儲過程的相關資料,需要的朋友可以參考下

MySQL的存儲過程

存儲過程是數據庫的一個重要的功能,MySQL 5.0以前并不支持存儲過程,這使得MySQL在應用上大打折扣。好在MySQL 5.0開始支持存儲過程,這樣即可以大大提高數據庫的處理速度,同時也可以提高數據庫編程的靈活性。

MySQL存儲過程的創(chuàng)建

語法

CREATE PROCEDURE  過程名([[IN|OUT|INOUT] 參數名 數據類型[,[IN|OUT|INOUT] 參數名 數據類型…]]) [特性 ...] 過程體

DELIMITER //
  CREATE PROCEDURE myproc(OUT s int)
    BEGIN
      SELECT COUNT(*) INTO s FROM students;
    END
    //
DELIMITER ;

分隔符

MySQL默認以";"為分隔符,如果沒有聲明分割符,則編譯器會把存儲過程當成SQL語句進行處理,因此編譯過程會報錯,所以要事先用“DELIMITER //”聲明當前段分隔符,讓編譯器把兩個"//"之間的內容當做存儲過程的代碼,不會執(zhí)行這些代碼;“DELIMITER ;”的意為把分隔符還原。

參數

存儲過程根據需要可能會有輸入、輸出、輸入輸出參數,如果有多個參數用","分割開。MySQL存儲過程的參數用在存儲過程的定義,共有三種參數類型,IN,OUT,INOUT:

IN參數的值必須在調用存儲過程時指定,在存儲過程中修改該參數的值不能被返回,為默認值OUT:該值可在存儲過程內部被改變,并可返回INOUT:調用時指定,并且可被改變和返回

過程體

過程體的開始與結束使用BEGIN與END進行標識。

1、簡單實例

create procedure demo.p_test1()
begin
  -- 使用 declare語句聲明一個變量
  declare id int default 0;
  declare name varchar(50) default '';
  -- 使用set語句給變量賦值
  set id=7521;
  -- 將users表中id=1的名稱賦值給username
  select ename into name from demo.emp where empno=id;
  -- 返回變量
  select name;
end;

2、通過游標遍歷結果集

create table demo.test(
	id int,
	cnt varchar(50)
)
create procedure demo.p_test2()
-- 通過游標遍歷結果集
begin
  -- 聲明變量
  declare id int default 0;
  declare name varchar(50) default '';
  declare done boolean default 1;
  -- 聲明游標
  declare rs cursor for SELECT deptno,dname from demo.dept ;
  -- 定義異常:
  declare continue handler for SQLSTATE '02000' SET done = 0; 
  -- 打開游標
  open rs;
  delete from demo.test;
  while done do 
  	begin
	  fetch rs into id,name;
      INSERT into demo.test SELECT e.deptno,count(1) from demo.emp e WHERE e.deptno =id group by e.deptno;
     end ;
  end while;
  -- 關閉游標
  close rs;
end;
call demo.p_test2();

SELECT * from  demo.test;

總結 

到此這篇關于MySQL存儲過程講解的文章就介紹到這了,更多相關MySQL存儲過程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • MYSQL自定義函數判斷是否正整數的實例代碼

    MYSQL自定義函數判斷是否正整數的實例代碼

    這篇文章主要介紹了MYSQL自定義函數判斷是否正整數 的實例代碼,主要是使用正則表達式來判斷,具體實例代碼大家跟隨小編一起通過本文學習吧
    2018-11-11
  • mysql分區(qū)表學習之日期分區(qū)

    mysql分區(qū)表學習之日期分區(qū)

    這篇文章主要給大家介紹了關于mysql分區(qū)表學習之日期分區(qū)的相關資料,分區(qū)是一種表的設計模式,通俗地講表分區(qū)是將一大表,根據條件分割成若干個小表,需要的朋友可以參考下
    2023-08-08
  • MySQL數據庫維護中監(jiān)控所用到的常用命令

    MySQL數據庫維護中監(jiān)控所用到的常用命令

    這篇文章主要介紹額MySQL監(jiān)控時常用的的幾個MySQL命令,需要的朋友可以收藏下
    2013-08-08
  • 解析SQLite中的常見問題與總結詳解

    解析SQLite中的常見問題與總結詳解

    本篇文章是對SQLite中的常見問題進行了詳細的分析介紹,需要的朋友參考下
    2013-05-05
  • mysql清除log-bin日志的方法

    mysql清除log-bin日志的方法

    這篇文章主要介紹了mysql清除log-bin日志的方法,同時介紹了log-bin日志的作用,需要的朋友可以參考下
    2014-06-06
  • MySQL表的CURD使用

    MySQL表的CURD使用

    文章主要介紹了MySQL數據庫操作的基本方法,包括創(chuàng)建表、插入數據、查詢數據、更新數據和刪除數據等,涵蓋了表結構設計、數據插入、查詢條件、排序、分頁、更新和刪除操作,以及聚合函數和GROUP BY子句的使用
    2025-02-02
  • win10上如何安裝mysql5.7.16(解壓縮版)

    win10上如何安裝mysql5.7.16(解壓縮版)

    這篇文章主要介紹了win10上如何安裝mysql5.7.16(解壓縮版)的相關資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下
    2016-12-12
  • MySQL字符串索引更合理的創(chuàng)建規(guī)則討論

    MySQL字符串索引更合理的創(chuàng)建規(guī)則討論

    這篇文章主要給大家介紹了關于MySQL字符串索引更合理的創(chuàng)建規(guī)則,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-11-11
  • 淺析Mysql 中如何導出數據

    淺析Mysql 中如何導出數據

    MySQL中你可以使用SELECT…INTO OUTFILE語句來簡單的導出數據到文本文件上,這篇文章給大家介紹了Mysql 中如何導出數據,感興趣的朋友跟隨小編一起看看吧
    2023-11-11
  • MySQL排序中使用CASE WHEN的方法示例

    MySQL排序中使用CASE WHEN的方法示例

    這篇文章主要給大家介紹了關于MySQL排序中使用CASE WHEN的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-01-01

最新評論

从江县| 新闻| 宜昌市| 安徽省| 梅河口市| 海兴县| 西林县| 安国市| 泗洪县| 济源市| 凉城县| 吉林省| 高淳县| 大余县| 福建省| 无为县| 宝清县| 睢宁县| 皮山县| 麻城市| 宜春市| 丰宁| 射洪县| 黄冈市| 内乡县| 玉林市| 金坛市| 麦盖提县| 无锡市| 邻水| 达日县| 洪泽县| 华容县| 陆丰市| 延寿县| 荆州市| 屯门区| 裕民县| 水富县| 白玉县| 尼勒克县|