成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

數(shù)據(jù)庫中存儲(chǔ)過程和函數(shù)的區(qū)別

開發(fā)
存儲(chǔ)過程(Stored Procedure)是一組為了完成特定功能的SQL語句集,是利用SQL Server所提供的Transact-SQL語言所編寫的程序。本文主要介紹存儲(chǔ)過程和函數(shù)的區(qū)別,希望對你有幫助,一起來看。

函數(shù)限制比較多,如不能用臨時(shí)表,只能用表變量等,而存儲(chǔ)過程的限制相對就比較少。

1.一般來說,存儲(chǔ)過程實(shí)現(xiàn)的功能要復(fù)雜一點(diǎn),而函數(shù)的實(shí)現(xiàn)的功能針對性比較強(qiáng)。

2.對于存儲(chǔ)過程來說可以返回參數(shù),而函數(shù)只能返回值或者表對象。

3.存儲(chǔ)過程一般是作為一個(gè)獨(dú)立的部分來執(zhí)行,而函數(shù)可以作為查詢語句的一個(gè)部分來調(diào)用,由于函數(shù)可以返回一個(gè)表對象,因此它可以在查詢語句中位于FROM關(guān)鍵字的后面。

4.當(dāng)存儲(chǔ)過程和函數(shù)被執(zhí)行的時(shí)候,SQLManager會(huì)到procedurecache中去取相應(yīng)的查詢語句,如果在procedurecache里沒有相應(yīng)的查詢語句,SQLManager就會(huì)對存儲(chǔ)過程和函數(shù)進(jìn)行編譯。

Procedurecache:中保存的是執(zhí)行計(jì)劃,當(dāng)編譯好之后就執(zhí)行procedurecache中的executionplan,之后SQLSERVER會(huì)根據(jù)每個(gè)executionplan的實(shí)際情況來考慮是否要在cache中保存這個(gè)plan,評判的標(biāo)準(zhǔn)一個(gè)是這個(gè)executionplan可能被使用的頻率;其次是生成這個(gè)plan的代價(jià),也就是編譯的耗時(shí)。保存在cache中的plan在下次執(zhí)行時(shí)就不用再編譯了。

存儲(chǔ)過程和函數(shù)具體的區(qū)別:

存儲(chǔ)過程:可以使得對的管理、以及顯示關(guān)于及其用戶信息的工作容易得多。存儲(chǔ)過程是SQL語句和可選控制流語句的預(yù)編譯集合,以一個(gè)名稱存儲(chǔ)并作為一個(gè)單元處理。存儲(chǔ)過程存儲(chǔ)在數(shù)據(jù)庫內(nèi),可由應(yīng)用程序通過一個(gè)調(diào)用執(zhí)行,而且允許用戶聲明變量、有條件執(zhí)行以及其它強(qiáng)大的編程功能。存儲(chǔ)過程可包含程序流、邏輯以及對數(shù)據(jù)庫的查詢。它們可以接受參數(shù)、輸出參數(shù)、返回單個(gè)或多個(gè)結(jié)果集以及返回值。

可以出于任何使用SQL語句的目的來使用存儲(chǔ)過程,它具有以下優(yōu)點(diǎn):

(1)功能強(qiáng)大,限制少。

(2)可以在單個(gè)存儲(chǔ)過程中執(zhí)行一系列SQL語句。

(3)可以從自己的存儲(chǔ)過程內(nèi)引用其它存儲(chǔ)過程,這可以簡化一系列復(fù)雜語句。

(4)存儲(chǔ)過程在創(chuàng)建時(shí)即在上進(jìn)行編譯,所以執(zhí)行起來比單個(gè)SQL語句快。

(5)可以有多個(gè)返回值,即多個(gè)輸出參數(shù),并且可以使用SELECT返回結(jié)果集。

函數(shù):是由一個(gè)或多個(gè)SQL語句組成的子程序,可用于封裝代碼以便重新使用。自定義函數(shù)諸多限制,有許多語句不能使用,許多功能不能實(shí)現(xiàn)。函數(shù)可以直接引用返回值,用表變量返回記錄集。但是,用戶定義函數(shù)不能用于執(zhí)行一組修改全局?jǐn)?shù)據(jù)庫狀態(tài)的操作。

補(bǔ)充:

前面有一句,“可以處于任何使用SQL語句的目的來使用存儲(chǔ)過程”。這里想說的是,有些時(shí)候有些地方使用函數(shù)或許會(huì)更方便些。例如,存在這樣一個(gè)表:Temperature(Year,Month,Day,T02,T08,T14,T20),其中Year,Month,Day是時(shí)間字段,T02,T08,T14,T20是指2時(shí)、8時(shí)、14時(shí)、20時(shí)四個(gè)時(shí)刻對應(yīng)的溫度值,這些溫度值可為空。現(xiàn)在,要求統(tǒng)計(jì)2008年5月份的平均溫度。

或許大家會(huì)這樣寫:

 

SELECT(AVG(T02)+AVG(T08)+AVG(T14)+AVG(T20))/4FROMTemperatureWHEREYear=2008ANDMonth=5

 

如果不考慮空值的話,這樣完全正確,但是考慮空值的話,如果根本沒有統(tǒng)計(jì)02時(shí)的溫度,那么AVG(T02)將為NULL,然后進(jìn)行所有運(yùn)算的結(jié)果都將為NULL。這顯然是不正確的。

這里可以創(chuàng)建一個(gè)自定義函數(shù),然后使用一個(gè)SELECT語句即可查詢:

 

SELECTAVG(user.Average(T02,T08,T14,T20)FROMTemperatureWHEREYear=2008ANDMonth=5

 

總結(jié):

用戶自定義函數(shù)在處理同一數(shù)據(jù)行中的各個(gè)字段時(shí),特別方便有用。雖然這里使用存儲(chǔ)過程也能達(dá)到查詢目的,但是顯然沒有使用函數(shù)方便。而且,即使使用存儲(chǔ)過程也無法處理SELECT查詢中的同一數(shù)據(jù)行中的各個(gè)字段的運(yùn)算。因?yàn)榇鎯?chǔ)過程不返回值,使用時(shí)只能單獨(dú)調(diào)用;而函數(shù)卻能出現(xiàn)在能放置表達(dá)式的任何位置。

【編輯推薦】

  1. 講解SQL Server數(shù)據(jù)庫中函數(shù)的使用方法
  2. 精品文章 論C++構(gòu)造函數(shù)中的不合理設(shè)計(jì)
  3. SQL Server的函數(shù)庫漏洞
  4. 講解Sybase存儲(chǔ)過程的建立和使用
  5. mysql5存儲(chǔ)過程編寫實(shí)踐
責(zé)任編輯:于鐵 來源: 新浪博客
相關(guān)推薦

2019-04-30 15:28:46

數(shù)據(jù)庫存儲(chǔ)過程觸發(fā)器

2009-09-11 15:12:26

LINQ執(zhí)行存儲(chǔ)過程

2011-06-03 10:50:27

Java

2010-09-10 16:12:08

sql函數(shù)判斷

2010-04-16 14:10:56

Oracle數(shù)據(jù)庫

2010-09-06 15:41:34

SQL函數(shù)存儲(chǔ)過程

2010-10-14 13:18:55

MySQL存儲(chǔ)過程

2010-10-25 13:48:26

Oracle過程

2010-09-06 11:05:05

SQL SERVER語句

2019-06-20 15:25:14

MySQLL數(shù)據(jù)庫存儲(chǔ)

2010-09-10 15:11:07

SQLGetKey函數(shù)

2024-01-19 09:37:19

MySQL數(shù)據(jù)庫

2018-12-26 15:00:56

數(shù)據(jù)庫行式存儲(chǔ)列式存儲(chǔ)

2019-08-27 15:00:09

MySQL數(shù)據(jù)庫存儲(chǔ)

2010-11-29 11:27:08

oracle創(chuàng)建存儲(chǔ)過

2018-11-05 15:14:42

MySQL編程語言技術(shù)

2010-04-16 13:34:00

Oracle Java

2010-09-02 11:24:45

SQL刪除

2023-02-28 11:29:09

存儲(chǔ)函數(shù)MySQL

2010-12-10 16:19:04

JDBC數(shù)據(jù)庫連接池DDLSQLJ存儲(chǔ)過程
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 欧美成人专区 | 中文字幕视频在线 | 亚洲一区二区三区免费在线 | 精品美女 | 国外成人在线视频 | 色婷婷综合久久久中字幕精品久久 | 亚洲成人免费在线 | 欧美.com | 在线成人免费视频 | 久久精品中文字幕 | 国产欧美日韩一区二区三区在线 | 欧美一区二区三区精品免费 | 91天堂网 | 欧美日韩亚洲系列 | 欧美国产精品一区二区 | 久在线视频 | 亚洲经典一区 | 国产一区二区三区免费视频 | 国产精品美女 | 羞羞网站在线观看 | 久在线| 精品日韩电影 | 黄色网址在线播放 | 亚洲欧美日本国产 | 国产精品日产欧美久久久久 | av电影一区| 天天操天天干天天透 | 综合视频在线 | 国产激情一区二区三区 | 午夜影院在线观看视频 | 久久国产高清视频 | av色噜噜| 精品国产一区二区国模嫣然 | 午夜天堂| 国产午夜精品一区二区三区四区 | 午夜欧美 | 日韩精品一区二区三区中文在线 | 精品久久香蕉国产线看观看亚洲 | 欧美国产精品一区二区三区 | 一级黄色录像片子 | 欧美在线天堂 |