1. 程式人生 > >mysql中的儲存過程之無引數,in、out、inout引數的講解

mysql中的儲存過程之無引數,in、out、inout引數的講解

首先建立三個測試表:

如下:

user表裡邊的欄位為userId,userName 使用者表

dept表裡邊的欄位為deptId,deptName部門表

other表裡邊的欄位為otherId,otherName 其他表

建立無引數儲存

create procedure 你建立的名稱()

       begin

           。。。。。。。。。

       end;

如下:

一.建立語句

create procedure userCount()@1

       begin

           SELECT COUNT(userId) FROM USER;@2

       end;@3

注意:

1.   在@2和@3處記得加分號,要不然在執行時,會報語法錯誤

2.   在@1處不論有無引數都需要加 (),

二、在資料庫中檢視你建立的儲存過程語句為

select * frommysql.proc where name = '你上邊建立的名稱'and `type` = 'PROCEDURE'

如下:

select * frommysql.proc where name = 'userCount' and `type` = 'PROCEDURE'

三、檢視儲存過程程式碼語句

show createprocedure 你上邊建立的名稱              如下:

show createprocedure userCount

四、呼叫建立好的儲存過程語句

call userCount ();

五、刪除儲存語句

DROP PROCEDURE你上邊建立的名稱
如下:
DROP PROCEDURE userCount
=====================================================================

一、建立IN引數儲存

語句如下:

CREATE procedure userName(in cType char)
        begin 
      IF cType='U' THEN
                                      SELECT * FROM USER ;
      ELSEIF  cType='D' THEN
                                      SELECT * FROM dept ;
                       ELSE
                                      SELECT * FROM other ;
      END IF;
        end;
呼叫語句如下:
1.CALL userName('A')
2.CALL userName('D')
3.CALL userName('E')

二、建立OUT引數儲存

CREATE PROCEDUREtestOut(OUT outResult char)

           BEGIN

                 SELECT outResult;  //查詢結果1

                 SET outResult='A';//設定值

                 SELECT outResult; //查詢結果2

           END;

呼叫語句如下:
SET @outResult = 'W';

CALLtestOut(@outResult)

呼叫之後返回兩個值結果一和結果而結果1為null 結果2為A

二、建立INOUT引數儲存

CREATE PROCEDUREtestInOut(INOUT inOutResult char)

           BEGIN

                 SELECT inOutResult; 

                 SET inOutResult='A';

                 SELECT inOutResult;

           END;

呼叫語句如下:

SET @inOutResult= 'W';

CALLtestInOut(@inOutResult)

呼叫之後返回兩個值結果一和結果而結果1為W 結果2為A

總結:

IN 輸入引數

表示該引數的值必須在呼叫儲存過程時指定,在儲存過程中修改該引數的值不能被返回,為預設值

OUT 輸出引數

該值可在儲存過程內部被改變,並可返回

INOUT 輸入輸出引數

呼叫時指定,並且可被改變和返回

相關推薦

mysql儲存過程引數inoutinout引數講解

首先建立三個測試表: 如下: user表裡邊的欄位為userId,userName 使用者表 dept表裡邊的欄位為deptId,deptName部門表 other表裡邊的欄位為otherId,otherName 其他表 建立無引數儲存 create procedure 你

儲存過程引數inoutinout引數講解

首先建立三個測試表: 如下: user表裡邊的欄位為userId,userName 使用者表 dept表裡邊的欄位為deptId,deptName部門表 other表裡邊的欄位為otherId,otherName 其他表 建立無引數儲存 create proced

mysql儲存過程 解決引數作為表名

1.用變數做表名:  簡單的用set或者declare語句定義變數,然後直接作為sql的表名是不行的,mysql會把變數名當作表名。在其他的sql資料庫中也是如此,mssql的解決方法是將整條sql語句作為變數,其中穿插變數作為表名,然後用sp_executesql呼叫該語句。 這在mysql5.0之前是不

Mysql儲存過程與自定義函式的區別

建立儲存過程: CREATE [definer = {user|current_user}] PROCEDURE sp_name ([ proc_parameter [,proc_parameter ...]]) [ characteristi

MySQL 儲存過程 中文亂碼問號???

mysql 中文亂碼一直是一個老大難的問題,接下來一一解決!!!! 資料庫儲存資料亂碼 儲存過程中資料亂碼 001 資料庫儲存資料亂碼 相信大家遇到最多就是資料庫中儲存資料,操作完之後,資料庫中中文亂碼,變為????問號。

mysql儲存過程引數INOUTINOUT)瞭解下

    在現實應用中,開發的儲存過程幾乎都需要引數,就是這些引數,使得儲存過程更加靈活和有用。 在mysql中,引數有三種模式:IN,OUT或INOUT:IN - 是預設模式。在儲存過程中定義IN引數時

MySQL儲存過程的3種迴圈,儲存過程的基本語法,ORACLE與MYSQL儲存過程/函式的使用區別退出儲存過程方法

  學無止境 部落格園   首頁   新隨筆   聯絡   訂閱  管理 隨筆-1968  評論-103  文章-4&

儲存過程(IN多個輸入引數OUT多個輸出引數,INOUT輸入輸出)

               儲存過程(無參,多個輸入引數,多個輸出引數) 儲存過程:     1、減少編譯次數     2、簡化操作     3、減少了變異次數減少了和資料庫的連結次數,提高效率  關於儲存過程的方法:      1、刪除儲存過程          DR

Sql Server儲存過程輸入和輸出引數(簡單例項一看就懂)

-- ===================【建立儲存過程】===================== USE [Message] GO /****** Object: StoredProcedure [dbo].[讀取外部資料庫查詢] Script Date:

mysql儲存過程從結果集給多個引數賦值的辦法

DECLARE var1 DATETIME; DECLARE var2 DATETIME; SELECT    t.f1, t.f2  into var1,var2 FROM    tableName t ; SELECT     class_id1,     atten

mysql儲存過程inoutinout引數使用實際案例

1.引數in的使用(代表輸入,意思說你的引數要傳到存過過程的過程裡面去) //為了避免儲存過程中分號(";")結束語句,我們使用分隔符告訴mysql直譯器,該段命令是否已經結束了。 /** 案例功能

儲存過程引數in,out ,in out 的用法

select * from scott.emp where empno=7839 or empno=7566  sele

mysql建立儲存過程模擬插入200萬用戶

公司需要建立模擬使用者測試大資料,百度建立儲存過程模擬插入資料下面是sql程式碼 CREATE PROCEDURE test()  begin  declare var int; declare a int; declare mobile bigint; SET var

Sql Server 2008儲存過程傳入表值引數

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!http://blog.csdn.net/jiangjunshow 也歡迎大家轉載本篇文章。分享知識,造福人民,實現我們中華民族偉大復興!        

MySQL儲存過程whilerepeat迴圈

一、while迴圈 CREATE DEFINER=`root`@`localhost` PROCEDURE `PRO_WHILE`() BEGIN DECLARE i INT DEFAULT 0; WHILE (i<10) DO /*當滿足條件的時候執行此程式碼塊*/ BE

Mysql儲存過程Mybatis對儲存過程的呼叫

                        mysql儲存過

MYSQL 使用儲存過程結合遊標迴圈插入資料demo

建立遊標 CLOSE釋放遊標使用的所有內部記憶體和資源,因此在每個遊標不再需要時都應該關閉 CREATE PROCEDURE processdemo() BEGIN DECLARE product_i

mysql儲存過程迴圈遍歷查詢結果集

-- 建立儲存過程之前需判斷該儲存過程是否已存在,若存在則刪除 DROP PROCEDURE IF EXISTS init_reportUrl; -- 建立儲存過程 CREATE PROCEDURE init_reportUrl() BEGIN -- 定義變數 DECLARE s int

MySQL使用儲存過程為資料庫全部的表增加備用欄位

需求描述 要為資料庫裡的所有的表統一加上十六個備用欄位,前提是備用欄位名取表名前三位,拼接上備用1-16 , 16個欄位中,其中8個varchar, 4個int, 4個datetime 1.建立一個簡單的表 DROP TABLE customer_detail_info; C

MSSQL儲存過程的可選引數的定義和使用_SQL高亮顯示

編輯日誌: 160508建立 160530優化新增:顯式傳參 160916SQL語句高亮顯示、格式優化 可選引數的存在,可以極大的降低程式碼的重複冗餘。在資料庫開發中,也是如此。現在針對MSSQL中儲存過程的可選引數的定義和使用進行基本的介紹,留作備忘。