Mysql存儲過程和函數區別介紹

来源:http://www.cnblogs.com/lucky-man/archive/2016/12/02/6124475.html
-Advertisement-
Play Games

存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是資料庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶表。 存儲過程和函數存在以下幾個區別: 1)一般來說,存儲過程實現的功能要複雜一點,而函數的實現的功能針對性比較強。存儲過程,功 ...


存儲過程是用戶定義的一系列sql語句的集合,涉及特定表或其它對象的任務,用戶可以調用存儲過程,而函數通常是資料庫已定義的方法,它接收參數並返回某種類型的值並且不涉及特定用戶表。

存儲過程和函數存在以下幾個區別:

1)一般來說,存儲過程實現的功能要複雜一點,而函數的實現的功能針對性比較強。存儲過程,功能強大,可以執行包括修改表等一系列資料庫操作;用戶定義函數不能用於執行一組修改全局資料庫狀態的操作。

2)對於存儲過程來說可以返回參數,如記錄集,而函數只能返回值或者表對象。函數只能返回一個變數;而存儲過程可以返回多個。存儲過程的參數可以有IN,OUT,INOUT三種類型,而函數只能有IN類~~存儲過程聲明時不需要返回類型,而函數聲明時需要描述返回類型,且函數體中必須包含一個有效的RETURN語句。

3)存儲過程,可以使用非確定函數,不允許在用戶定義函數主體中內置非確定函數。

4)存儲過程一般是作為一個獨立的部分來執行( EXECUTE 語句執行),而函數可以作為查詢語句的一個部分來調用(SELECT調用),由於函數可以返回一個表對象,因此它可以在查詢語句中位於FROM關鍵字的後面。 SQL語句中不可用存儲過程,而可以使用函數。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 未分區的表,只能存儲在一個FileGroup中;對Table進行分區後,每一個分區都存儲在一個FileGroup,或分散式存儲在不同的FileGroup中。對錶進行分區的過程,是將邏輯上完整的一個表,按照特定的欄位拆分成多個分區,分散到(相同或不同的)FileGroup中,每一個部分叫做表的一個分區 ...
  • 1 概述 在集成項目中需要應對不同環境下的安裝配置,主流操作系統大致可以分為三種:Linux、Windows以及UNIX。其中Linux備受青睞的主要原因有兩個: 首先,Linux作為自由軟體有兩個特點:一是它免費提供源碼,二是愛好者可以按照自己的需要自由修改、複製和發佈程式的源碼,並公佈在Inte ...
  • 任務目標: 編譯安裝LAMP 要求(1) 安裝一個模塊化的PHP 要求(2) 安裝一個FPM的PHP 註意PHP需要最後一個安裝,因為需要前兩者的支持. 所以這裡的安裝次序為 1.httpd 2.MariaDB 3.PHP 一、安裝包組 # yum groupinstall "Development... ...
  • 本篇博文主要講解Oracle資料庫SQL語句完整的執行順序,文中也順便稍微提一下Oracle資料庫相關的知識。 ...
  • LifeCycleState: IDLE, START, STOP, ERROR [Source]: org.apache.flume.Source 繼承LifeCycleAware{stop() + start() + getLifeCycleState()} + NamedComponent{g ...
  • 這是mongodb裡面學習的關於性能的知識點,資料庫的管理無非就是維護和優化。維護在於平時的功能維護,其中優化就包括慢查詢和性能提高了。本次文章裡面提到從索引建立到監控,比較全面的闡述了在mongodb的優化中需要的過程。希望對自己日後的工作提供方便查閱,也希望對大家有用。 ...
  • 本篇博文,作為SQL查詢性能優化的基礎,只針對查詢流程深入剖析其來龍去脈。 ...
  • 一、使用show variables 和show status 命令查看MySQL的伺服器靜態參數值和動態運行狀態信息。 二、可以使用 mysqld --verbose --help|more 查看某個參數的定義。加上 grep 過濾。 三、key_buffer_size 用於MyISAM引擎的全局 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...