MySQL存儲過程和Function

一、存儲過程

MySQL中提供存儲過程存儲函數機制,將其統稱為存儲程序

SQL語句要先編譯,然后執行,存儲程序是一組為了完成特定功能的SQL語句,編譯后存到數據庫中。

用戶通過指定存儲程序的名字并給定參數來調用才會執行。

存儲程序的優點:

1.存儲過程能提高應用程序的性能。存儲過程被編譯后存儲在數據庫中。

2.編譯存儲過程之后,MySQL將其放入緩存中。存儲過程可以減少應用和服務器之間的流量,應用不用發送多個冗長的SQL語句,只需要發送存儲過程的名稱和參數。

缺點:

1.若大量使用存儲過程,使用存儲過程的每個連接的內存使用量會很大。

如果在存儲過程中使用大量邏輯操作,CPU使用率也會增加。

2.不能調試存儲過程,只有少數數據庫管理系統允許調試存儲過程。

MySQL不提供調試存儲過程的功能。

3.公司開發中不使用存儲過程,分析三層架構,業務邏輯一般放到業務層,也就是Tomcat,而不是把業務放到數據庫處理。
使用存儲過程使業務和數據庫嚴重耦合。

4.對于業務層性能擴容的手段有很多,搭建集群、使用緩存提高響應速度等。

大多數情況下,業務層并不是整個項目性能的瓶頸,而是數據庫。

業務層性能擴容相比數據庫性能擴容方便的多。

所以通常盡可能優化數據庫性能,降低數據層壓力。

存儲過程的使用

1.語法

CREATE PROCEDURE procedure_name([parmeters[...]])
begin
--SQL語句
end;

2.舉例

create procedure test()
beginselect 'Hello';
end;

3.調用 存儲過程

call test();

二、MySQL的Function

MySQL中,Function(函數)是一種被定義在數據庫中并可以在SQL查詢中調用的可重用代碼塊

MySQL支持用戶自定義函數,用戶可以根據需求創建函數執行特定任務。

Function(函數)的特點:

1.函數是一段封裝好的SQL代碼,接收輸入參數并返回單一的值
2.函數可用來簡化復雜的SQL查詢、計算和數據處理操作。
3.函數可以作為查詢中的表達式使用,也可以在其他SQL語句中調用。
4.函數提供了代碼重用的機制,可以減少重復編碼。

MySQL中,可以用CREATE FUNCTION語句創建函數。

CREATE FUNCTION function_name(parameter_list)
RETURNS return_type
BEGIN --函數體,包含具體的SQL代碼
END;

比如,創建一個Function計算兩個數字的和:

CREATE FUNCTION calculate_sum(a INT, b INT)
RETURNS INT
BEGINDECLARE result INT;SET result = a + b;RETURN result;
END;

創建Function(函數)后,可以通過SELECT語句調用該函數

SELECT calculate_sum(5,3);-- 調用calculate_sum函數計算5和3的和

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/714597.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/714597.shtml
英文地址,請注明出處:http://en.pswp.cn/news/714597.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

擴展學習|大數據分析的現狀和分類

文獻來源:[1] Mohamed A , Najafabadi M K , Wah Y B ,et al.The state of the art and taxonomy of big data analytics: view from new big data framework[J].Artificial Intelligence Review: An International Science and Engineering Journal, 2020(2):53. 下…

藍橋杯(3.2)

1209. 帶分數 import java.io.*;public class Main {static BufferedReader br new BufferedReader(new InputStreamReader(System.in));static PrintWriter pw new PrintWriter(new OutputStreamWriter(System.out));static final int N 10;static int n, cnt;static int[…

LabVIEW流量控制系統

LabVIEW流量控制系統 為響應水下航行體操縱舵翼環量控制技術的試驗研究需求,通過LabVIEW開發了一套小量程流量控制系統。該系統能夠滿足特定流量控制范圍及精度要求,展現了其在實驗研究中的經濟性、可靠性和實用性,具有良好的推廣價值。 項…

tritonserver學習之八:redis_caches實踐

tritonserver學習之一:triton使用流程 tritonserver學習之二:tritonserver編譯 tritonserver學習之三:tritonserver運行流程 tritonserver學習之四:命令行解析 tritonserver學習之五:backend實現機制 tritonserv…

【C++初階】內存管理

目錄 一.C語言中的動態內存管理方式 二.C中的內存管理方式 1.new/delete操作內置類型 2.new和delete操作自定義類型 3.淺識拋異常 (內存申請失敗) 4.new和delete操作自定義類型 三.new和delete的實現原理 1.內置類型 2.自定義類型 一.C語…

C++學習筆記:二叉搜索樹

二叉搜索樹 什么是二叉搜索樹?搜索二叉樹的操作查找插入刪除 二叉搜索樹的應用二叉搜索樹的代碼實現K模型:KV模型 二叉搜索樹的性能怎么樣? 什么是二叉搜索樹? 二叉搜索樹又稱二叉排序樹,它或者是一棵空樹,或者是具有以下性質的二叉樹: 若它的左子樹…

Linux安裝Nginx詳細步驟

1、創建兩臺虛擬機,分別為主機和從機,區別兩臺虛擬機的IP地址 2、將Nginx素材內容上傳到/usr/local目錄(pcre,zlib,openssl,nginx) 附件 3、安裝pcre庫   3.1 cd到/usr/local目錄 3.2 tar -zxvf pcre-8.36.tar.gz 解壓 3.3 cd…

MATLAB圖像噪聲添加與濾波

在 MATLAB 中添加圖像噪聲和進行濾波通常使用以下函數: 添加噪聲:可以使用imnoise函數向圖像添加各種類型的噪聲,如高斯噪聲、椒鹽噪聲等。 濾波:可以使用各種濾波器對圖像進行濾波處理,例如中值濾波、高斯濾波等。 …

前端學習、HTML

html是由一些標簽構成的,標簽之間可以嵌套,每個標簽都有開始標簽和結束標簽,也有部分標簽只有開始標簽,沒有結束標簽。html的標簽也可以成為元素。(樹形結構) html文件的最頂層標簽就是html。 head用來放…

**藍橋OJ 178全球變暖 DFS

藍橋OJ 178全球變暖 思路: 將每一座島嶼用一個顏色scc代替, 用dx[]和dy[]判斷他的上下左右是否需要標記顏色,如果已經標記過顏色或者是海洋就跳過.后面的淹沒,實際上就是哪個塊上下左右有陸地,那么就不會被淹沒,我用一個tag標記,如果上下左右一旦有海洋,tag就變為false.如果tag…

用冒泡排序模擬C語言中的內置快排函數qsort!

目錄 ?編輯 1.回調函數的介紹 2. 回調函數實現轉移表 3. 冒泡排序的實現 4. qsort的介紹和使用 5. qsort的模擬實現 6. 完結散花 悟已往之不諫,知來者猶可追 創作不易,寶子們!如果這篇文章對你們有幫助的話,別忘了給個免…

機器學習:模型評估和模型保存

一、模型評估 from sklearn.metrics import accuracy_score, confusion_matrix, classification_report# 使用測試集進行預測 y_pred model.predict(X_test)# 計算準確率 accuracy accuracy_score(y_test, y_pred) print(f"Accuracy: {accuracy*100:.2f}%")# 打印…

整數和浮點數在內存中的存儲(大小端字節序,浮點數的存取)

目錄 1.整數在內存中的存儲 2.大小端字節序和字節序判斷 2.1什么是大小端? 2.2為什么會有大小端 3.浮點數在內存中的存儲 3.1浮點數的存儲 3.1.1 浮點數存的過程 3.1.2 浮點數取的過程 3.2 解析 3.3 驗證浮點數的存儲方式 1.整數在內存中的存儲 整數的二進…

PAT (Basic Level) Practice | 朋友數

如果兩個整數各位數字的和是一樣的,則被稱為是“朋友數”,而那個公共的和就是它們的“朋友證號”。例如 123 和 51 就是朋友數,因為 123 51 6,而 6 就是它們的朋友證號。給定一些整數,要求你統計一下它們中有多少個不…

億道信息輕工業三防EM-T195,零售、制造、倉儲一網打盡

厚度僅10.5mm,重量僅0.65千克的EM-T195,其緊湊而纖薄的設計為以往加固型平板帶來了全新的輕薄概念。盡管設計時尚、輕薄,但經過軍用認證的強固性仍然能夠承受所有具有挑戰性的環境條件。隨身攜帶無負擔的輕便性加上抗震功能使其成為餐廳、酒店…

C++_數據類型_字符型

作用 字符型變量用于顯示單個字符 語法 char ch a;注意 在顯示字符型變量時,用單引號將字符括起來,不要用雙引號單引號只能有一個字符,不可以是字符串 C和C中字符型變量只占用一個字節字符型變量并不是把字符本身放到內存中存儲&#xf…

Excel導出

目錄 Maven依賴 實體類 表頭列寬自適應處理器 行列凍結處理器 合并單元格處理器 工具類 Maven依賴 <!--easy excel--><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.3.2</vers…

數獨游戲(dfs)

代碼注釋如下 #include <iostream> using namespace std; const int N 10; bool col[N][N], rol[N][N], cell[3][3][N]; char g[N][N]; bool dfs(int x, int y) { //用bool這樣在找到一個方案就可以迅速退出if(y 9) x, y 0; //若y超出邊界&#xff0c;則第二…

S1---FPGA硬件板級原理圖實戰導學

視頻鏈接 FPGA板級實戰導學01_嗶哩嗶哩_bilibili FPGA硬件板級原理圖實戰導學 【硬件電路設計的方法和技巧-嗶哩嗶哩】硬件電路設計的方法和技巧01_嗶哩嗶哩_bilibili&#xff08;40min&#xff09; 【高速板級硬件電路設計-嗶哩嗶哩】 高速板級硬件電路設計1_嗶哩嗶哩_bil…

【RT-Thread基礎教程】郵箱的使用

文章目錄 前言一、郵箱的特性二、郵箱操作函數2.1 創建郵箱創建動態郵箱創建靜態郵箱 2.2 刪除郵箱2.3 發郵件2.4 取郵件 三、示例代碼總結 前言 RT-Thread是一個開源的實時嵌入式操作系統&#xff0c;廣泛應用于各種嵌入式系統和物聯網設備。在RT-Thread中&#xff0c;郵箱是…