你創(chuàng)建一個(gè)存儲(chǔ)過(guò)程C
祥云網(wǎng)站建設(shè)公司成都創(chuàng)新互聯(lián),祥云網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為祥云上千家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站制作要多少錢,請(qǐng)找那個(gè)售后服務(wù)好的祥云做網(wǎng)站的公司定做!
先執(zhí)行存儲(chǔ)過(guò)程A,并得到返回值
再判斷返回值執(zhí)行存儲(chǔ)過(guò)程B
例如:
mysql
\d
//
mysql
create
procedure
test(v_name
char(20),out
v_id
int)
-
BEGIN
-
SELECT
id
into
v_id
from
t1
WHERE
name=v_name;
-
END;
-
//
mysql
create
procedure
test1(v_id
int,out
v_name
char(20))
-
BEGIN
-
SELECT
name
into
v_name
from
t2
where
id=v_id;
-
END;
-
//
mysql
create
procedure
test2(inout
v_name
char(20))
-
BEGIN
-
DECLARE
v_id
int;
-
CALL
test(v_name,v_id);
-
CALL
test1(v_id,v_name);
-
END;
-
//
mysql
set
@aa='xx‘//
Query
OK,
rows
affected
(0.00
sec)
mysql
call
test2(@aa)
//
Query
OK,
rows
affected
(0.01
sec)
mysql
select
@aa//
+------+
|
@aa
|
+------+
|
x2
|
+------+
1
row
in
set
(0.00
sec)
調(diào)用如:select 函數(shù)名(參數(shù)列表)。
mysql中的UDF(自定義函數(shù)),可以寫好一些方法或?函數(shù),然后進(jìn)行調(diào)用,而且是在SQL語(yǔ)句中可以進(jìn)行調(diào)用。?
DROP FUNCTION CalculateAmount?
CREATE FUNCTION CalculateAmount(userid INT) RETURNS float(10,2)?
BEGIN?
DECLARE totalCredits FLOAT;?
SELECT SUM(amount) INTO totalAmount FROM credit_user WHERE id =userid;?
RETURN totalAmount;?
END?
要注意的是,在UDF中,不要定義與數(shù)據(jù)表中重名的列。而在SQL中,?則可以像SELECT CalculateAmount(1);那樣去調(diào)用了。
在我們?nèi)粘I钪信紶枙?huì)遇到一些自己不知道如何解決的問(wèn)題,比如使用安裝好的mysql。那么我們應(yīng)該怎樣解決這種自己不知道如何使用安裝好的mysql的情況呢?那么接下來(lái)就由我來(lái)介紹一下使用安裝好的mysql的步驟吧。
本次操作以Dell電腦為例,具體操作步驟如下:
第一步:
首先,打開MySQLWorkbench,雙擊打開即可。打開后的界面如下所示,然后選擇數(shù)據(jù)庫(kù)實(shí)例,雙擊進(jìn)行登錄。圖中數(shù)據(jù)庫(kù)的實(shí)例是LocalinstanceMYSQL57
第二步:
然后,輸入用戶名和密碼進(jìn)行登錄。如下圖所示:
第三步:
登錄成功后,界面如下所示。其中,區(qū)域1顯示的是數(shù)據(jù)庫(kù)服務(wù)器中已經(jīng)創(chuàng)建的數(shù)據(jù)庫(kù)列表。區(qū)域2是關(guān)于數(shù)據(jù)庫(kù)的操作列表。區(qū)域三是sql的編輯器和執(zhí)行環(huán)境,區(qū)域4是執(zhí)行結(jié)果的列表
第四步:
在sql的編輯器中輸入測(cè)試語(yǔ)句,如圖所示,其中world數(shù)據(jù)庫(kù)是mysql自帶的測(cè)試數(shù)據(jù)庫(kù),然后選擇執(zhí)行(或者使用快捷鍵ctrl+enter)。執(zhí)行成功后,查詢結(jié)果會(huì)顯示在下面的列表中。
第五步:
使用完畢后,直接退出,并且如果無(wú)需數(shù)據(jù)庫(kù)的后繼操作的話,記得關(guān)掉MySQL的服務(wù)
看了我的方法,現(xiàn)在你學(xué)會(huì)如何使用安裝好的mysql了嗎?學(xué)會(huì)了的話就快快把這個(gè)方法分享出去,讓更多的人知道如何使用安裝好的mysql。以上就是使用安裝好的mysql的步驟。
本文章基于Dell品牌、Windows10系統(tǒng)撰寫的。
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Types;
/*
* 對(duì)應(yīng)的存儲(chǔ)過(guò)程
DROP PROCEDURE IF EXISTS `pro_num_user`;
delimiter ;;
CREATE PROCEDURE `pro_num_user`(IN user_name varchar(10) ,OUT count_num INT)
READS SQL DATA
BEGIN
SELECT COUNT(*) INTO count_num FROM tab_user WHERE 'name'=user_name;
END
;;
delimiter ;
*/
public class Test {
public static final String DRIVER_CLASS = "com.mysql.jdbc.Driver";
public static final String URL = "jdbc:mysql://127.0.0.1:3306/test";
public static final String USERNAME = "root";
public static final String PASSWORD = "acbee";
public static void main(String[] args) throws Exception {
test1();
test2();
}
public static void test1() throws Exception
{
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_num_user(?,?)}"; //調(diào)用存儲(chǔ)過(guò)程
CallableStatement cstm = connection.prepareCall(sql); //實(shí)例化對(duì)象cstm
cstm.setString(1, "myd"); //存儲(chǔ)過(guò)程輸入?yún)?shù)
//cstm.setInt(2, 2); // 存儲(chǔ)過(guò)程輸入?yún)?shù)
cstm.registerOutParameter(2, Types.INTEGER); // 設(shè)置返回值類型 即返回值
cstm.execute(); // 執(zhí)行存儲(chǔ)過(guò)程
System.out.println(cstm.getInt(2));
cstm.close();
connection.close();
}
public static void test2() throws Exception
{
Class.forName(DRIVER_CLASS);
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD);
String sql = "{CALL pro_number(?,?,?)}"; //調(diào)用存儲(chǔ)過(guò)程
CallableStatement cstm = connection.prepareCall(sql); //實(shí)例化對(duì)象cstm
cstm.setInt(1, 2); // 存儲(chǔ)過(guò)程輸入?yún)?shù)
cstm.setInt(2, 2); // 存儲(chǔ)過(guò)程輸入?yún)?shù)
cstm.registerOutParameter(3, Types.INTEGER); // 設(shè)置返回值類型 即返回值
cstm.execute(); // 執(zhí)行存儲(chǔ)過(guò)程
System.out.println(cstm.getInt(3));
cstm.close();
connection.close();
}
}
創(chuàng)建存儲(chǔ)過(guò)程
mysql
delimiter
$
--
delimiter
$是設(shè)置
$為命令終止符號(hào),代替默認(rèn)的分號(hào),因?yàn)榉痔?hào)有其他用處.
mysql
create
procedure
sp_test(IN
pi_id
int,
OUT
po_name
varchar(10))
-
begin
-
select
*
from
test.tb_test;
-
select
tb_test.name
into
po_name
from
test.tb_test
where
tb_test.id
=
pi_id;
-
end
-
$
Query
OK,
rows
affected
(0.00
sec)
mysql
delimiter
;
--
恢復(fù)分號(hào)作為分隔終止符號(hào)
5.調(diào)用存儲(chǔ)過(guò)程
mysql
set
@po_name=';
Query
OK,
rows
affected
(0.00
sec)
mysql
call
sp_test(1,@po_name);
分享名稱:mysql過(guò)程怎么調(diào)用,如何調(diào)用mysql數(shù)據(jù)庫(kù)
文章來(lái)源:http://chinadenli.net/article6/hohjog.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供虛擬主機(jī)、搜索引擎優(yōu)化、網(wǎng)站建設(shè)、App開發(fā)、微信小程序、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)