sql 存储过程和函数
最近在學習數據庫,上課過程中總是在許多知識點有或多或少的問題,對于這些問題的產生,大概是由于我聽課習慣所造成的吧,好啦,廢話不多說,開始今天到主題吧。
首先介紹SQL的存儲過程,先來給它定義,存儲過程是由過程化SQL語句書寫的過程,這個過程經過編譯和優化后存儲在數據庫服務器中,因此稱它為存儲過程,使用是只需要調用即可
優點:
1、運行效率高,因為它不像解釋執行的SQL語句那樣在提出操作請求的時候,才開始進行語法分析和優化工作。它提供了在服務器端快速執行SQL語句的有效途徑。
2、存儲過程降低了客戶機和服務器之間的通信量。如果用到高級語言(php\python) ,應該也是可以的降低通信量的。
3、方便維護,有利于集中管理
語法:
CREAETE PROCEDURE? 「? NAME? 」(過程名)?
@ARGUMENT(參數)
AS
<過程化SQL>
存儲過程的執行或者調用:
EXEC NAEM(過程名)? ' @ARGUMENT '
存儲過程的刪除:
drop 過程名
?
數據庫編程里的函數。在這里說的函數我們也稱為自定義函數,因為是用戶自己使用過程化SQL設計定義的。函數和存儲過程類似,都是持久性存儲模塊,所以定義過程也類似
不同之處是函數必須指定返回的類型。
語法:
第一種返回的什整個table:
CREATE FUNCTION 「NAME」(@INPUT CHAR(10))
RETURN TABLE
AS
RETURN ( <過程化SQL語句> )
第二種返回想要返回到數據:
CREATE FUNCTION 「NAME」(@INPUT CHAR(10))
RETURN @TABLENAME TABLE
? ?(? 返回數據名? ? 返回數據類型? ?)
AS
BEGIN
INSERT @TABLENAME
<過程化SQL語句>
RETURN?
END
? ? ? ? ? ? ? ?修改函數:ALTER FUCNTION 已存在的函數名
函數的執行:
SELECT 函數名 (' @INPUT ')
刪除用戶自定義函數:
drop 函數名
?
?
?
?
以上是在sql server 2008的環境,別問我為什么用這個數據庫,學校只有這種數據庫啦,2333333。
轉載于:https://www.cnblogs.com/evenGO/p/9233298.html
總結
以上是生活随笔為你收集整理的sql 存储过程和函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php简单算法之冒泡排序
- 下一篇: 准备备孕,朋友推荐我吃四季优美随便果排毒