91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

MySQL存儲過程高級SQL語句怎么創建

發布時間:2022-12-07 18:03:40 來源:億速云 閱讀:131 作者:iii 欄目:MySQL數據庫

本篇內容主要講解“MySQL存儲過程高級SQL語句怎么創建”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MySQL存儲過程高級SQL語句怎么創建”吧!

MySQL高級SQL語句(存儲過程)

一、存儲過程的概述

1.1 什么是存儲過程

存儲過程是一組為了完成特定功能的SQL語句集合。
存儲過程在使用過程中是將常用或者復雜的工作預先使用SQL語句寫好并用一個指定的名稱存儲起來,這個過程經編譯和優化后存儲在數據庫服務器中。當需要使用該存儲過程時,只需要調用它即可。存儲過程在執行上比傳統SQL速度更快、執行效率更高。

1.2 存儲過程的有點

  1. 執行一次后,會將生成的二進制代碼駐留緩沖區,提高執行效率。

  2. SQL語句加上控制語句的集合,靈活性高。

  3. 在服務器端存儲,客戶端調用時,降低網絡負載。

  4. 可多次重復被調用,可隨時修改,不影響客戶端調用。

  5. 可完成所有的數據庫操作,也可控制數據庫的信息訪問權限。

二、創建、調用和查看存儲過程

2.1 創建存儲過程

delimiter $$                 #將語句的結束符號從分號;臨時改為兩個$$(可以自定義)
create procedure proc ()     #創建存儲過程,過程名為proc,不帶參數
-> begin                     #過程體以關鍵字begin開始
-> select * from store_info; #過程體語句
-> end $$                    #過程體以關鍵字end結束

delimiter ;                   #將語句的結束符號恢復為分號

示例:

delimiter $$create procedure proc01 ()-> bengin
-> create table student(id int,name char(10),age int);-> insert into student values(1,'zhangsan',18);-> insert into student values(2,'lisi',18);-> select * from student;-> end $$delimiter ;

MySQL存儲過程高級SQL語句怎么創建

2.2 調用和查看存儲過程

call proc;               #調用存儲過程



show create procedure [數據庫.]存儲過程名;  #查看某個存儲過程的具體信息

show create procedure proc;
show create procedure proc\G

show procedure status [like '%proc%'] \G

示例:

call proc01;   

 show create procedure proc01;
 show create procedure proc01\G       #查看存儲過程的具體信息
 
 show procedure status like '%Proc01%'\G

MySQL存儲過程高級SQL語句怎么創建
MySQL存儲過程高級SQL語句怎么創建
MySQL存儲過程高級SQL語句怎么創建

2.3 刪除存儲過程

 #存儲過程內容的修改方法是通過刪除原有存儲過程,之后再以相同的名稱創建新的存儲過程。
drop procedure if exists proc;
 #僅當存在時刪除,不添加If EXISTS 時,如果指定的過程不存在,則產生一個錯誤。

示例:

drop procedure if exists proc01;

MySQL存儲過程高級SQL語句怎么創建

三、存儲過程的參數

  • IN 輸入參數: 表示調用者向過程傳入值。(傳入值可以是字面量或變量)

  • OUT 輸出參數: 表示過程向調用者傳出值。(可以返回多個值)(傳出值只能是變量)

  • INOUT 輸入輸出參數: 既表示調用者向過程傳入值,又表示過程向調用者傳出值。(值只能是變量)

注意:變量名不能含有下劃線。

delimiter $$create procedure proc2(in stuname char(20))  #參數為stuname,數據類型一定要與下面的where語句后字段的數據類型相同-> begin
-> select * from student where name = stuname;-> end $$delimiter ;call proc2('zhangsan');       #調用存儲過程,并傳入參數‘zhangsan’

MySQL存儲過程高級SQL語句怎么創建

四、存儲過程的控制語句

MySQL存儲過程高級SQL語句怎么創建

4.1 條件語句 :if-then-else … end if

 delimiter $$  
 create procedure proc03(in innum int)   #創建存儲過程proc03,參數為innum,類型為int 
 -> begin 
 -> declare var int;         #定義變量var為int類型 
 -> set var=innum*2;         #變量var的值等于傳入的參數值乘2
 -> if var>=10 then          #當var的值大于10時,id值會加1,否則減1
 -> update ss set id=id+1;  
 -> else 
 -> update ss set id=id-1;  
 -> end if;  
 -> end $$
  
 delimiter ;
 
 call proc03(8);    #調用存儲過程,并傳入參數8
 
 call proc03(3);    #調用存儲過程,并傳入參數3

MySQL存儲過程高級SQL語句怎么創建

4.2 循環語句 :while ···· end while

 delimiter $$                   #修改默認結束符為$$
 create procedure proc05()      #創建存儲過程proc04
 -> begin                       #過程體以關鍵字begin開始
 -> declare var int(10);        #定義變量var為int類型
 -> set var=0;                  #var的起始值為0
 -> while var<6 do              #使用while循環,當var值小于6時滿足條件,則向表中插入var的值
 -> insert into ss values(var);  
 -> set var=var+1;              #每次循環后var值自增1
 -> end while;                  #結束while循環
 -> end $$                      #創建存儲過程結束
 
 delimiter ;                    #重新修改默認結束符為原始的;
 
 call proc05;                   #調用存儲過程proc04

MySQL存儲過程高級SQL語句怎么創建

到此,相信大家對“MySQL存儲過程高級SQL語句怎么創建”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平和县| 祁连县| 顺平县| 丰顺县| 灵武市| 古浪县| 梁河县| 额敏县| 湛江市| 扎赉特旗| 玉林市| 崇明县| 旬阳县| 万安县| 普兰县| 平湖市| 桂阳县| 巴塘县| 黑山县| 富锦市| 平阴县| 甘洛县| 南丹县| 龙山县| 大足县| 钦州市| 麻城市| 平和县| 西青区| 长乐市| 尤溪县| 抚宁县| 堆龙德庆县| 华宁县| 修武县| 大连市| 永善县| 满洲里市| 娄烦县| 车险| 怀来县|