當前位置:首頁 » 參考文獻 » 資料庫過程函數

資料庫過程函數

發布時間: 2021-03-20 05:48:45

資料庫中的自定義函數與存儲過程的區別,講得簡單點,不要太多的術語,

存儲過程:

存儲過程可以使得對資料庫的管理、以及顯示關於資料庫及其用戶信息的工作容易得多。存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。存儲過程存儲在資料庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。
存儲過程可包含程序流、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及返回值。

可以出於任何使用 SQL 語句的目的來使用存儲過程,它具有以下優點:

1、可以在單個存儲過程中執行一系列 SQL 語句。
2、可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。

3、存儲過程在創建時即在伺服器上進行編譯,所以執行起來比單個 SQL 語句快。

用戶定義函數:

Microsoft SQL Server 2000 允許創建用戶定義函數。與任何函數一樣,用戶定義函數是可返回值的常式。根據所返回值的類型,每個用戶定義函數可分成以下三個類別:

1、返回可更新數據表的函數:如果用戶定義函數包含單個 Select 語句且該語句可更新,則該函數返回的表格格式結果也可以更新。

2、返回不可更新數據表的函數:如果用戶定義函數包含不止一個 Select 語句,或包含一個不可更新的 Select 語句,則該函數返回的表格格式結果也不可更新。

3、返回標量值的函數:用戶定義函數可以返回標量值。

存儲過程

1. 功能強大,限制少
2. 不能直接引用返回值
3. 用select語句返回記錄集

自定義函數

1. 諸多限制,有許多語句不能使用,許多功能不能實現
2. 可以直接引用返回值
3. 用表變數返回記錄集

② 資料庫中存儲過程和函數的區別是什麼用自己的話回答。

存儲過程:可以進行增刪查改dml操作,甚至可以進行建表等ddl操作;不能return返回值內,可以容用out參數返回值。用exec 過程名 的方法調用。
函數,可以return返回值;一般來說,只能進行select操作,不能進行增刪改,也不能進行ddl操作。可以通過賦值的方式調用,也可以在sql語句中使用。

③ SQL的函數和過程正確的描述是

SQL允許定義函數、過程和方法。定義可通過SQL的有關過程的組件,也可以通過外部的程序設計語言,如Java,C或C++。SQL標准所定義的語法,與大多數資料庫實現的自身的非標准版本的語法不同。函數和過程允許「業務邏輯」作為存儲過程記錄在資料庫中,並在資料庫中執行。

業務邏輯能夠被寫成程序設計語言過程並完全存儲在資料庫之外,但把它們定義成資料庫中的存儲過程有幾個優點:

1 允許多個應用訪問這些過程。

2.允許當業務規則發生改變時進行單個點的改變,而不變改變應用系統的其他部分。

3.應用代碼可以調用存儲過程,而不是直接更新資料庫關系。

具體操作如下:

1. 聲明方式。

在begin……end之間的語句可以執行signal out_of_classrome_seats來引發異常。這個句柄說明如果條件發生,將會採取動作終止begin end中的語句。另一個可選的動作是continue,它繼續從引發異常的語句的下一條語句開始執行。

    ④ 資料庫存儲過程、函數、觸發器的區別是什麼

    三者差別:

    1、存儲過程實現的功能要復雜一點,而函數實現的功能針對性比較強。;

    2、存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用;

    3、觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行。

    分別含義:

    1、存儲過程的特點

    ①存儲過程只在創建時進行編譯,以後執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高資料庫執行速度。

    ② 當對資料庫進行復雜操作時(如對多個表進行Update、Insert、Query、Delete時),可將此復雜操作用存儲過程封裝起來。

    ③可以在過程中調用另一個存儲過程。可以在存儲過程中調用函數。這可以簡化一系列復雜語句。

    ④ 安全性高,可設定只有某用戶才具有對指定存儲過程的使用權。

    ⑤參數有三種(IN、OUT、IN OUT),可返回多個參數值。

    ⑥在ORACLE中,若干個有聯系的過程可以組合在一起構成程序包。

    ⑦存儲過程是資料庫中的一個重要對象,任何一個設計良好的資料庫應用程序都應該用到存儲過程。

    2、函數的特點

    ①函數只有一種參數(IN),只有一條RETURN語句,只能返回單一的值。

    ②可在SQL語句(DML或SELECT)中調用函數。由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。

    3、觸發器的特點

    觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行。

    ⑤ 資料庫中存儲過程和函數有什麼區別

    自定義函數
    有且只有一個返回值,就像普通的函數一樣,可以直接在表達式中嵌入調用。
    存儲過程
    可以沒有返回值,也可以有任意個輸出參數,必須單獨調用。

    ⑥ 資料庫存儲過程、函數、觸發器的區別

    存儲過程和函數的區別:
    1. 一般來說,存儲過程實現的功能要復雜一點,而函數的實現的功能針對性比較強。
    2. 對於存儲過程來說可以返回參數,而函數只能返回值或者表對象。
    3. 存儲過程一般是作為一個獨立的部分來執行,而函數可以作為查詢語句的一個部分來調用,由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。
    4. 當存儲過程和函數被執行的時候,SQL Manager會到procere cache中去取相應的查詢語句,如果在procere cache里沒有相應的查詢語句,SQL Manager就會對存儲過程和函數進行編譯。
    Procere cache中保存的是執行計劃 (execution plan) ,當編譯好之後就執行procere cache中的execution plan,之後SQL SERVER會根據每個execution plan的實際情況來考慮是否要在cache中保存這個plan,評判的標准一個是這個execution plan可能被使用的頻率;其次是生成這個plan的代價,也就是編譯的耗時。保存在cache中的plan在下次執行時就不用再編譯了。
    觸發器、存儲過程和函數三者有何區別:
    觸發器是特殊的存儲過程,存儲過程需要程序調用,而觸發器會自動執行;
    在什麼時候用觸發器?要求系統根據某些操作自動完成相關任務。
    什麼時候用存儲過程?
    存儲過程就是程序,它是經過語法檢查和編譯的SQL語句,所以運行特別快。
    存儲過程和用戶自定義函數具體的區別
    先看定義: 存儲過程存儲過程可以使得對資料庫的管理、以及顯示關於資料庫及其用戶信息的工作容易得多。存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。
    存儲過程存儲在資料庫內,可由應用程序通過一個調用執行,而且允許用戶聲明變數、有條件執行以及其它強大的編程功能。存儲過程可包含程序流、邏輯以及對資料庫的查詢。它們可以接受參數、輸出參數、返回單個或多個結果集以及返回值。 可以出於任何使用 SQL 語句的目的來使用存儲過程,它具有以下優點: 可以在單個存儲過程中。

    ⑦ 存儲過程和函數的區別

    一、含義不同

    1、存儲過程:存儲過程是 SQL 語句和可選控制流語句的預編譯集合,以一個名稱存儲並作為一個單元處理。

    2、函數:是由一個或多個 SQL 語句組成的子程序,可用於封裝代碼以便重新使用。函數限制比較多,如不能用臨時表,只能用表變數等

    二、使用條件不同

    1、存儲過程:可以在單個存儲過程中執行一系列 SQL 語句。而且可以從自己的存儲過程內引用其它存儲過程,這可以簡化一系列復雜語句。

    2、函數:自定義函數諸多限制,有許多語句不能使用,許多功能不能實現。函數可以直接引用返回值,用表變數返回記錄集。但是,用戶定義函數不能用於執行一組修改全局資料庫狀態的操作。

    三、執行方式不同

    1、存儲過程:存儲過程可以返回參數,如記錄集,函數只能返回值或者表對象。存儲過程的參數有in,out,inout三種,存儲過程聲明時不需要返回類型。

    2、函數:函數參數只有in,而函數需要描述返回類型,且函數中必須包含一個有效的return語句。

    ⑧ 資料庫存儲過程和函數的區別

    函數分兩種,表值函數跟標量函數
    表值函數最後要返回一個表變數,而標量函數最後要返回一個標量值
    存儲過程即一組批處理,可以返回或不返回值,僅僅是執行其內部的全部語句
    函數可以與一般sql語句一同編寫,而存儲過程不可以,需要單獨執行

    ⑨ sql資料庫的存儲過程的函數問題

    1)自定義函數中不能調用存儲過程,如果調用了,函數可以順利創建,但是調用函數會出錯
    2)自定義函數中不能創建表,刪除表,插入表數據
    解決辦法:
    可以先把存儲過程返回的結果插入到臨時表,然後在函數里調用臨時表,或者運用內置函數,或者使用復雜的聯合查詢實現想要的結果

    ⑩ 資料庫 過程實現與函數實現有什麼區別

    過程沒有返回,函數有返回可以多次調用。

    熱點內容
    塗鴉論文 發布:2021-03-31 13:04:48 瀏覽:698
    手機資料庫應用 發布:2021-03-31 13:04:28 瀏覽:353
    版面217 發布:2021-03-31 13:04:18 瀏覽:587
    知網不查的資源 發布:2021-03-31 13:03:43 瀏覽:713
    基金贖回參考 發布:2021-03-31 13:02:08 瀏覽:489
    懸疑故事範文 發布:2021-03-31 13:02:07 瀏覽:87
    做簡單的自我介紹範文 發布:2021-03-31 13:01:48 瀏覽:537
    戰略地圖參考 發布:2021-03-31 13:01:09 瀏覽:463
    收支模板 發布:2021-03-31 13:00:43 瀏覽:17
    電氣學術會議 發布:2021-03-31 13:00:32 瀏覽:731