當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 存儲配置 » mysql如何創建存儲過程

mysql如何創建存儲過程-九游会j9娱乐平台

發布時間: 2024-02-08 13:14:05

ⅰ 如何創建mysql存儲過程可以返回一個表類型的數據

如何創建mysql存儲過程可以返回一個表類型的數據
首先需要知道「另一個存儲過程」的結果集的所有列的類型。
假設「另一個存儲過程」的名字是sp1,沒有參數,返回的結果集共3列,全部為int型,那麼「存儲過程」里添加一個與結果集列數相同的臨時表或表變數用於接收「另一個存儲過程」的結果集
如下
create procedure sp2
as
declare @t table(a int,b int,c int)

insert into @t(a,b,c)
exec sp1

select * from @t
使用sqlserver存儲過程可以很大的提高程序運行速度,簡化編程維護難度,現已得到廣泛應用。
創建存儲過程
和數據表一樣,在使用之前需要創建存儲過程,它的簡明語法是:

引用:
create proc 存儲過程名稱
[參數列表(多個以「,」分隔)]
as
sql 語句

例:

引用:
create proc upgetusername
@intuserid int,
@ostrusername nvarchar(20) output -- 要輸出的參數
as
begin
-- 將uname的值賦給 @ostrusername 變數,即要輸出的參數
select @ostrusername=uname from uuser where uid=@intuserid
end

其中 create proc 語句(完整語句為create procedure)的意思就是告訴sql server,現在需要建立一個存儲過程,upgetusername 就是存儲過程名稱,@intuserid 和 @ostrusername 分別是該存儲過程的兩個參數,注意,在sql server中,所有用戶定義的變數都以「@」開頭,output關鍵字表示這個參數是用來輸出的,as之後就是存儲過程內容了。只要將以上代碼在「查詢分析器」里執行一次,sql server就會在當前資料庫中創建一個名為「upgetusername」的存儲過程。你可以打開「企業管理器」,選擇當前操作的資料庫,然後在左邊的樹型列表中選擇「存儲過程」,此時就可以在右邊的列表中看到你剛剛創建的存儲過程了(如果沒有,刷新一下即可)。
二、存儲過程的調用

之前已經創建了一個名為「upgetusername」的存儲過程,從字面理解該存儲過程的功能是用來取得某一個用戶的名稱。存儲過程建立好了,接下來就是要在應用程序里調用了,下面看一下在asp程序里的調用。

ⅱ 如何通過用mysql怎麼創建存儲過程

創建存儲過程
create procedure 存儲過程名()
一個例子說明:一個返回產品平均價格的存儲過程如下代碼:
create procedure proctpricing()
begin
select avg(prod_price) as priceaverage
from procts;
end;
//創建存儲過程名為proctpricing,如果存儲過程需要接受參數,可以在()中列舉出來。即使沒有參數後面仍然要跟()。begin和end語句用來限定存儲過程體,過程體本身是個簡單的select語句

ⅲ mysql資料庫新特性之存儲過程入門教程

在mysql 中 終於引入了存儲過程這一新特性 這將大大增強mysql 的資料庫處理能力 在本文中 將指導讀者快速掌握mysql 的存儲過程的基本知識 帶領用戶入門

存儲過程介紹

存儲過程是一組為了完成特定功能的sql語句集 經編譯後存儲在資料庫中 用戶通過指定存儲過程的名字並給出參數(如果該存儲過程帶有參數)來執行它 存儲過程可由應用程序通過一個調用來執行 而且允許用戶聲明變數 同時 存儲過程可以接收和輸出參數 返回執行存儲過程的狀態值 也可以嵌套調用

存儲過程的優點

作為存儲過程 有以下這些優點

( )減少網路通信量 調用一個行數不多的存儲過程與直接調用sql語句的網路通信量可能不會有很大的差別 可是如果存儲過程包含上百行sql語句 那麼其性能絕對比一條一條的調用sql語句要高得多

( )執行速度更快 存儲過程創建的時候 資料庫已經對其進行了一次解析和優化 其次 存儲過程一旦執行 在內存中就會保留一份這個存儲過程 這樣下次再執行同樣的存儲過程時 可以從內存中直接中讀取

( )更強的安全性 存儲過程是通過向用戶授予許可權(而不是基於表) 它們可以提供對特定數據的訪問 提高代碼安全 比如防止 sql注入

( ) 業務邏輯可以封裝存儲過程中 這樣不僅容易維護 而且執行效率也高

當然存儲過程也有一些缺點 比如

可移植性方面 當從一種資料庫遷移到另外一種資料庫時 不少的存儲過程的編寫要進行部分修改

存儲過程需要花費一定的學習時間去學習 比如學習其語法等

在mysql中 推薦使用mysql query browswer()這個工具去進行存儲過程的開發和管理 下面分步驟來學習mysql中的存儲過程

定義存儲過程的結束符

在存儲過程中 通常要輸入很多sql語句 而sql語句中每個語句以分號來結束 因此要告訴存儲過程 什麼位置是意味著整個存儲過程結束 所以我們在編寫存儲過程前 先定義分隔符 我們這里定義 // 為分隔符 我們使用delimiter //這樣的語法 就可以定義結束符了 當然你可以自己定義其他喜歡的符號

如何創建存儲過程

下面先看下一個簡單的例子 代碼如下

delimiter//createprocedure`p ` ()language sqldeterministicsql security definerment a procere beginselect hello world ! ;end//

下面講解下存儲過程的組成部分

)首先在定義好終結符後 使用create procedure 存儲過程名的方法創建存儲過程 language選項指定了使用的語言 這里默認是使用sql

)deterministic關鍵詞的作用是 當確定每次的存儲過程的輸入和輸出都是相同的內容時 可以使用該關鍵詞 否則默認為not deterministic

) sql security關鍵詞 是表示調用時檢查用戶的許可權 當值為invoker時 表示是用戶調用該存儲過程時檢查 默認為definer 即創建存儲過程時檢查

) ment部分是存儲過程的注釋說明部分

lishixin/article/program/mysql/201404/30557

ⅳ mysql編寫一個存儲過程

1、delimiter // ,聲明分隔符:delimiter是分割符的意思,因為mysql默認以";"為分隔符,如果我們沒有聲明分割符,那麼編譯器會把存儲過程當成sql語句進行處理,則存儲過程的編譯過程會報錯,所以要事先用delimiter關鍵字申明當前段分隔符,這樣mysql才會將";"當做存儲過程中的代碼,不會執行這些代碼(這里如果不懂的話,你可以通過試錯的方法來理解)。
2、編寫存儲過程的格式:create procedure([[in |out |inout ]參數名數據類形...])
例子:
1)create procere proc1(out s int) // 只有輸出
2)create procere proc2(in p_in bigint) // 只有輸入
3)create procere proc15() // 沒有輸入與輸出
4)create procere demo_multi_param(in id bigint,in name varchar(32),out c int) //多輸入與輸出
3、過程體的開始與結束使用begin與end進行標識。
4、select count (*) into s from student; // 過程體,一系列的邏輯語句,sql語句
5、delimiter ; 用完了之後要把分隔符還原。

ⅳ mysql如何創建存儲過程

1 用mysql客戶端登入
2 選擇資料庫
mysql>use test
3 查詢當前資料庫有哪些存儲過程
mysql>show procere status where db='test'
4 創建一個簡單的存儲過程
mysql>create procere hi() select 'hello';
5 存儲過程創建完畢,看怎麼調用它
mysql>call hi();
顯示結果 mysql> call hi();
-------
| hello |
-------
| hello |
-------
1 row in set (0.00 sec) query ok, 0 rows affected (0.01 sec)
6 一個簡單的儲存過程就成功了

熱點內容
androidapk版本號 發布:2024-02-10 00:04:16 瀏覽:990
培訓學校源碼 發布:2024-02-09 23:57:28 瀏覽:687
pythonifaandb 發布:2024-02-09 23:36:26 瀏覽:264
javarsa私鑰加密 發布:2024-02-09 23:36:17 瀏覽:239
python證書微軟認證 發布:2024-02-09 23:34:27 瀏覽:999
wlan沒有ip配置怎麼解決 發布:2024-02-09 23:24:19 瀏覽:532
javatoexe 發布:2024-02-09 22:48:53 瀏覽:418
路由器撥號賬號密碼在哪裡 發布:2024-02-09 22:29:30 瀏覽:164
ssd緩存是什麼 發布:2024-02-09 22:00:12 瀏覽:626
簡單游腳本試用破解 發布:2024-02-09 21:42:34 瀏覽:41
网站地图