sql存儲過程教學視頻
一、簡單的儲存過程:
1、創建一個存儲過程
create procere GetUsers()
begin
select * from user;
end;12345
2、調用存儲過程
call GetUsers();12
3、刪除存儲過程
drop procere if exists GetUsers;
二、帶參數的存儲過程
1、MySql 支持 IN (傳遞給存儲過程) , OUT (從存儲過程傳出) 和 INOUT (對存儲過程傳入和傳出) 類型的參數 , 存儲過程的代碼位於 BEGIN 和 END 語句內 , 它們是一系列 SQL 語句 , 用來檢索值 , 然後保存到相應的變數 (通過指定INTO關鍵字) ;
2、下面的存儲過程接受三個參數 , 分別用於獲取用戶表的最小 , 平均 , 最大分數 , 每個參數必須具有指定的類型 , 這里使用十進制值(decimal(8,2)) , 關鍵字 OUT 指出相應的參數用來從存儲過程傳出
create procere GetScores(
out minScore decimal(8,2),
out avgScore decimal(8,2),
out maxScore decimal(8,2)
)
begin
select min(score) into minScore from user;
select avg(score) into avgScore from user;
select max(score) into maxScore from user;
end;1234567891011
3、調用此存儲過程 , 必須指定3個變數名(所有 MySql 變數都必須以@開始) , 如下所示 :
call GetScores(@minScore, @avgScore, @maxScore);12
4、該調用並沒有任何輸出 , 只是把調用的結果賦給了調用時傳入的變數@minScore, @avgScore, @maxScore, 然後即可調用顯示該變數的值 :
select @minScore, @avgScore, @maxScore;
5、使用 IN 參數 , 輸入一個用戶 id , 返回該用戶的名字 :
create procere GetNameByID(
in userID int,
out userName varchar(200)
)
begin
select name from user
where id = userID
into userName;
end;12345678910
6、調用存儲過程 :
call GetNameByID(1, @userName);
select @userName;123
Ⅱ SQL存儲過程如何學習
每一種資料庫系統的存儲過程、觸發器的寫法都會有不同,包括變數的定義格式等,都可能有差異。我沒有用過oracle,只懂informix、SQLServer。最好的辦法是找本書,或者看聯機幫助(不知道oracle有沒有像SQLServer那麼方便的聯機幫助),邊學邊練。只有自己多動手,才能真正掌握。
Ⅲ MS sql如何使用存儲過程
一、存儲過程的概念
T-SQl和C語言一樣 ,是一門結構化的語言。
什麼是存儲過程?
存儲過程是SQL查詢語句與控制流程語句的預編譯集合,並以特定的名稱保存在資料庫中。存儲過程也是資料庫對象
分類:
系統存儲過程: 以sp_或xp_打頭
用戶自定義 :以proc_打頭
存儲過程的優點:
執行速度快 效率高
模塊式編程
減少網路流量
提高安全性
二、系統存儲過程
SQl server 的系統存儲過程保存在master資料庫中,且所有命名的系統存儲過程命名以「Sp_」開頭。在master資料庫中,
系統存儲過程數量如下:
代碼如下 復制代碼
select count([name])as '系統存儲數量' from sysobjects
where [name] like 'sp_%'
EXECUTE 用來表示調用存儲過程,也可以縮寫為EXEC,
調用存儲的語法如下:
EXECUTE 『存儲過程名』 『參數』 ---如果沒有參數則省略參數
常用的系統存儲過程
EXEC sp_databases 列出當前系統中的資料庫
EXEC sp_renamedb 'Northwind','Northwind1' 修改資料庫的名稱(單用戶訪問)
USE stuDB GO EXEC sp_tables 返回某個表列的信息
EXEC sp_columns 查看指定列的信息
EXEC sp_help 查看某個表的所有信息
EXEC sp_helpconstraint '表名' 查看某個表的約束
EXEC sp_helpdb '資料庫名' 或 EXEC sp_helpdb 查看指定資料庫或所有資料庫信息
EXEC sp_helptext '對象名稱' 顯示資料庫對象(存儲過程、觸發器、試圖)的定義文本
EXEC sp_helpindex '表名' 查看指定表的索引信息
EXEC sp_renamedb '原名稱','新名稱' 更改資料庫名稱
EXEC sp_stored_proceres 列出當前環境可用的所有存儲過程
除了系統存儲過程,SQL Server 還提供以Xp_開頭的擴展存儲過程,如可以調用DOS命名的,XP_cmdshell 存儲過程
用法如下:
代碼如下 復制代碼
EXEC Xp_cmdshell DOS 命名 [NO_OUTPUT]
NO_OUTPUT 為可選參數,表示是否輸入存儲過程返回的信息
三、用戶自定義存儲過程
1、語法
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值] [參數類型(輸入/輸出)]
... ...
@參數n名 數據類型 [=默認值] [參數類型(輸入/輸出)]
as
begin
sql語句
end;
go
參數類型分為輸入參數和輸出參數,默認為輸入參數,使用OUTPUT表示輸出參數。創建存儲過程最好以proc開頭
2、創建不帶參數的存儲過程
代碼如下 復制代碼
--判斷存儲過程是否存在
if object_id('proc_student','procere') is not null
drop procere proc_student
go
create procere proc_student
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc
end;
--調用存儲過程
execute proc_student select * from pc
go
3、創建帶輸入參數的存儲過程
語法:
代碼如下 復制代碼
create procere 存儲過程名
@參數1名 數據類型 [=默認值]
....
@參數2名 數據類型[=默認值]
as
SQl與語句
...
go
--例如
--創建帶輸入參數的存儲過程
代碼如下 復制代碼
if object_id('proc_stu','procere') is not null
drop procere proc_stu
go
create procere proc_stu
@pcuse int
as
begin
select pcid as '電腦編號',
case pcuse
when 0 then '空閑'
when 1 then '忙碌'
end as '使用狀態' from pc where pcuse=@pcuse end;
--調用存儲過程
execute proc_stu @pcuse=1
4、創建帶輸出參數的存儲過程
代碼如下 復制代碼
--創建帶輸出參數的存儲過程
if OBJECT_ID('proc_s','procere') is not null
drop procere proc_s
go
create procere proc_s
@pcid int,
@pcus int output
as
begin
select @pcus=pcuse from pc where pcid=@pcid end;
--調用存儲過程
declare @pcus int execute proc_s 5,@pcus output
四、處理錯誤信息
當存儲過程的語句十分復雜時,可以在存儲過程中加入錯誤語言。SQL Server中可以使用RAISERROR 返回用戶自定義的錯誤信息。
RAISERROR 語法如下:
RAISERROR (自定義的錯誤信息,錯誤的嚴重級別,錯誤狀態)
自定義錯誤信息:表示輸出信息:表示輸出的錯誤提示文本
錯誤的嚴重級別:表示用戶自定義錯誤的嚴重性級別。(0-18極)
錯誤的狀態:表示自定義錯誤的狀態,值的范圍在1-127
Ⅳ 提供一些關於SQL 存儲過程 的視頻教程
我這有一些自己寫的存儲過程的總結。
其實你自己動手寫幾個就清楚了。
存儲過程,其實就是講一些資料庫操作封裝起來,對外不可見而已。
如果你需要,我可以把我的資料給你
Ⅳ SQL怎麼調用存儲過程
建立好SQL存儲過程,在很多的時候就會調用這些存儲過程。使用到存儲過程中的結果集。但若直接使用SQL存儲過程結果集與其他表進行連接,卻比較麻煩,如使用openrowset來進行調用存儲過程卻是不安全的。來看看openrowset的命令參數就知道了:select * from openrowset('sqloledb','ip';'user';'pwd','exec 庫..過程') 。參數需要使用的資料庫的密碼,並且SQL默認是沒有允許openrowset執行的。
其實我們可以還使用的其實方法,更安全地調用SQL存儲過程。
http://jingyan..com/article/915fc4149ad49e51384b204e.html
Ⅵ SQL創建存儲過程
可能是你的路徑不對,比如你在aaa這個資料庫下面建立了p1存儲過程
但是你的sql查詢窗口是在master資料庫下進行的,這個時候你調用p1是錯誤的,因為master資料庫下沒有p1存儲過程。
Ⅶ sql 關於存儲過程
@nowpage是int型的,要轉成字元型,也就類似於改成
set @strsql='select top 20 * from xxx where id not in
(select top '+convert(varchar(10),@nowpage)+' id from xxx where
Ⅷ SQL SERVER 如何應用存儲過程呢操作方法有什麼呢
SQL SERVER 如何應用存儲過程呢?
首先最好在SQL SERVER的管理工具中通過create procere寫一條語句來創建存儲過程,創建語句後,點擊工具欄中的執行命令,消息欄中顯示命令已成功完成的消息,證明存儲過程已創建。然後就可以在存儲過程子文件夾下看到自己創建的存儲過程了,執行存儲過程,可以使用exec命令,後跟存儲過程的名稱,另外,還可以在創建存儲過程的時候傳入參數,如下圖,需要使用@符號傳入參數,如果你的存儲過程加了參數,那麼如果你調用的時候沒有傳入參數,SQL SERVER會提示錯誤。
3、存儲過程減少網路流量對於資料庫對象的相同操作,如果將此次操作所涉及的T-SQL語句組織成一個存儲過程,在客戶端調用該存儲過程時,只在網路上傳遞調用語句,否則會是多條 SQL 語句。從而減輕了網路流量,降低了網路負載存儲過程可以用作安全機制,系統管理員可以對要執行的存儲過程的許可權進行限制,從而限制對某些數據的訪問,避免未經授權的用戶訪問數據,保證數據安全。
Ⅸ 我想學SQL資料庫的知識!
《東南大學SQL資料庫基礎資料》網路網盤資源免費下載
鏈接: https://pan..com/s/1X0OqhxxjegbZ4oYD-GNWRw
東南大學 SQL資料庫基礎 全39講 主講-幸研 附復習課|各學科 學習視頻目錄|復習課|資料庫基礎003.csf|資料庫基礎002.csf|資料庫基礎001.csf|資料庫基礎(復習)042.csf|資料庫基礎(復習)041.csf|資料庫基礎(復習)040.csf|政治目錄.txt|哲學目錄.txt|語言目錄.txt|藝術目錄.txt|醫學目錄.txt|心理目錄.txt
Ⅹ 求高手給個專門講解SQL2005存儲過程的視頻教程
看看有沒有你要的! http://www.verycd.com/search/folders/sql2005+%E6%95%99%E7%A8%8B?start=0&status=elite