MySQL存儲過程淺析

存儲過程

定義:

存儲過程是一組為了完成特定功能的SQL語句,是由一些SQL語句組成的代碼塊,這些代碼塊像方法一樣實現一些功能(對單表或多表的增刪改查),然后給代碼塊起一個名字,用到的時候再調用它。存儲過程具有輸入參數、輸出參數和輸入/輸出參數,可以在數據庫服務器上執行。

優點:

  1. 存儲過程只在創造時進行編譯,以后每次執行存儲過程都不需再重新編譯,而一般SQL語句每執行一次就編譯一次,所以使用存儲過程可提高數據庫執行速度,效率要比T-SQL語句高。
  2. 當對數據庫進行復雜操作時,可以用存儲過程把這些復雜操作封裝起來,與數據庫提供的事務處理結合一起使用。
  3. 一個存儲過程在程序在網絡中交互時可以替代大堆的T-SQL語句,所以也能降低網絡的通信量,提高通信速率。
  4. 存儲過程可以重復使用,可減少數據庫開發人員的工作量。
  5. 安全性高,可設定只有某些用戶才具有對指定存儲過程的使用權。

創建存儲過程

聲明分隔符和存儲過程的基本語法:

在 MySQL 中,創建一個包含多個 SQL 語句的存儲過程時,通常需要聲明一個新的分隔符,因為默認的分隔符是 ,而存儲過程的主體部分可能包含多個 ;,會導致解析問題。
通過使用 DELIMITER 命令,可以更改分隔符,以便 MySQL 能正確地識別存儲過程的開始和結束。
設置新的分隔符(例如 $$),然后在存儲過程結束后恢復默認分隔符 ;

DELEMITER $$CREATE PROCEDURE procedure_name (parameters)
BEGIN-- 過程體
EDN $$DELIMITER ;
/* 參數類型
IN:輸入參數,調用時傳入。
OUT:輸出參數,存儲過程執行后傳出。
INOUT:既是輸入參數又是輸出參數  */

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

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

相關文章

Oracle體系結構初探:數據庫啟動與停止

往期內容 參數管理 控制文件添加 啟動 在啟動Oracle數據庫時,我們一般會使用如下命令: startup 雖然命令只有一個,但其中卻是經歷了3個階段,從下面執行 startup 命令返回也可以看出來。 總結為3個階段: nomount&…

ubuntu下python導入.so庫

ubuntu下python導入.so庫 文章目錄 ubuntu下python導入.so庫1. 什么是.so文件?2. 使用python腳本編譯.so庫文件Reference 最近遇到了python導入c編譯的 .so庫的問題,發覺挺有意思,于是寫下這篇blog以作記錄。 1. 什么是.so文件? …

【簡單介紹下深度神經網絡】

🎥博主:程序員不想YY啊 💫CSDN優質創作者,CSDN實力新星,CSDN博客專家 🤗點贊🎈收藏?再看💫養成習慣 ?希望本文對您有所裨益,如有不足之處,歡迎在評論區提出…

句柄降權繞過CallBacks檢查

看到前輩們相關的文章,不太明白什么是句柄降權,于是專門去學習一下,過程有一點波折。 句柄降權 什么是句柄 當一個進程利用名稱來創建或打開一個對象時,將獲得一個句柄,該句柄指向所創建或打開的對象。以后&#xf…

什么是DNS緩存投毒攻擊,有什么防護措施

隨著企業組織數字化步伐的加快,域名系統(DNS)作為互聯網基礎設施的關鍵組成部分,其安全性愈發受到重視。然而,近年來頻繁發生的針對DNS的攻擊事件,已經成為企業組織數字化發展中的一個嚴重問題。而在目前各…

go string 實現

在go中string是不可變的,這意味著對string發生改變的操作實際上都是通過分配新的string去實現的 在string內存分配上,對于小對象分配到棧,大對象分配到堆中 string在go中的結構其實很簡單,就是一個指向實際數據的指針以及字符串…

用于與 HTTP 服務器通信的函數

用于與 HTTP 服務器通信的函數 Plant Simulation 提供了許多使用 HTTP 協議與 HTTP 服務器通信的函數。可使用這些函數來發送 HTTP 請求、發送數據和從 HTTP 響應中接收數據,以及在 HTTP 服務器上創建和刪除資源: httpGetRequest 發送 GET 請求。請求…

在 Visual Studio 2022 (VS2022) 中刪除 Git 分支的步驟如下

git branch -r PS \MauiApp1> git push origin --delete “20240523備份” git push origin --delete “20240523備份”

PCL 常用小知識

文章目錄 一、時間計算二、實現類似`pcl::PointCloud::Ptr`和`pcl::PointCloud`的兩個類相互轉換三、查找點云的x,y,z的極值四、知道需要保存點的索引,從原點云中拷貝點到新點云五、從點云里刪除和添加點六、對點云進行全局或局部變換七、鏈接兩個點云字段(兩點云大小必須相…

若依 ruoyi-vue 用戶賬號前后端參數校驗密碼 手機號 郵箱

前端 <el-dialog :title"title" :visible.sync"open" width"800px" append-to-body><el-form ref"form" :model"form" :rules"rules" label-width"120px"><el-row><el-col :span…

Vue3骨架屏(Skeleton)

效果如下圖&#xff1a;在線預覽 APIs 參數說明類型默認值必傳animated是否展示動畫效果booleantruefalsebutton是否使用按鈕占位圖boolean | SkeletonButtonPropsfalsefalseavatar是否顯示頭像占位圖boolean | SkeletonAvatarPropsfalsefalseinput是否使用輸入框占位圖boolea…

SOLIDWORKS二次開發服務商 慧德敏學

SOLIDWORKS是一套三維設計軟件, 采用特征建模、變量化驅動可方便地實現三維建模、裝配和生成工程圖。SOLIDWORKS軟件本身所具有的交互方式, 可以使用戶對已生成模型的尺寸、幾何輪廓和相互約束關系隨時進行修改, 而不需要編程。但要實現設計意義上的變量化繪圖和系列化設計, 需…

java-查詢字符串當中是否包含中文

文章目錄 前言java-查詢字符串當中是否包含中文 前言 如果您覺得有用的話&#xff0c;記得給博主點個贊&#xff0c;評論&#xff0c;收藏一鍵三連啊&#xff0c;寫作不易啊^ _ ^。 ??而且聽說點贊的人每天的運氣都不會太差&#xff0c;實在白嫖的話&#xff0c;那歡迎常來啊…

軟考系統架構師一些知識點記錄-1

個人隨筆 (Owed by: 春夜喜雨 http://blog.csdn.net/chunyexiyu) 引言 準備去參加軟考的考試&#xff0c;但對一些概念掌握的還不夠&#xff0c;借此機會&#xff0c;整理記錄一二&#xff0c;便于自己理解掌握。 知識范圍 感覺不夠清晰的部分主要是第三篇和第四篇的部分。…

國際頂會認可!KaiwuDB 論文入選 ICDE 2024

導 讀 近日&#xff0c;KaiwuDB 與中國人民大學合作的論文 FOSS: A Self-Learned Doctor for Query Optimizer 被數據庫領域頂會The 40th IEEE International Conference on Data Engineering (ICDE 2024) 錄用啦! 論文中提出了具備自學習、自診斷能力的查詢優化器 FOSS&…

USB官方文檔怎么下載

直接登錄USB官網"https://usb.org/" 如&#xff0c;我需要查找與USB device class相關的文檔 點擊搜索后就能找到。 學習還是要以官方文檔為主&#xff0c;博客上的介紹不可信&#xff0c;USB協議規范很重要!

商品發布功能

文章目錄 1.SPU和SKU介紹1.SPU2.SKU3.兩者之間的關系 2.完成商品發布界面1.組件引入1.commoditylaunch.vue 引入到 src/views/modules/commodity下2.multiUpload.vue 引入到 src/components/upload/multiUpload.vue 2.創建菜單1.創建目錄2.創建菜單&#xff0c;注意菜單路由要匹…

go語言中同一for循環體內的多個初始變量和多個自增變量用法示例

在go語言的for循環體中&#xff0c;我們可以同時初始多個變量&#xff0c; 也可以同時多多個變量進行自增/自減操作&#xff0c; 用法如下&#xff1a; for 后面的多個初始化變量使用的是逗號分隔的批量賦值操作&#xff0c;多個變量自增自減使用 加減運算符和逗號分隔 字符…

MySQL之性能剖析和Schema與數據類型優化(一)

性能剖析總結 1.定義性能最有效的方法是響應時間2.如果無法測量就無法有效地優化&#xff0c;所以性能優化工作需要基于高質量、全方位及完整的響應時間測量3.測量的最佳開始點是應用程序&#xff0c;而不是數據庫。即使問題出在底層的數據庫&#xff0c;借助良好的測量也可以…

C++系列-友元

&#x1f308;個人主頁&#xff1a;羽晨同學 &#x1f4ab;個人格言:“成為自己未來的主人~” 我們在之前的文章有提到友元&#xff0c;我們先來看下面的這段包含了友元的代碼&#xff1a; ??#define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace…