預存程序
需要MySQL 5 MySQL 5新增了對預存程序的支持,因此,本章內容適用於MySQL 5及以後的版本。
迄今為止,使用的大多數SQL語句都是針對一個或多個表格的單一語句。並非所有操作都這麼簡單,而且常常會有一個完整的操作需要多個語句才能完成。例如,考慮以下的情況。
1.為了處理訂單,需要核對以確保庫存中有相應的物品。
2.如果庫存有物品,這些物品需要預定以便不將它們再賣給別的人,並且要減少可用的物品數量以反映正確的庫存量。
3.庫存中沒有的物品需要訂購,這需要與供應商進行某種互動。
4.關於哪些物品入庫(並且可以立即發貨)和哪些物品退訂,需要通知相應的客戶。
這顯然不是一個完整的例子,它甚至超出了本書中所用樣例表的範圍,但足以幫助表達我們的意思了。執行這個處理需要針對許多表格的多條MySQL語句。此外,需要執行的具體語句及其次序也不是固定的,它們可能會(和將)根據哪些物品在庫存中哪些不在而變化。
那麼,怎麼寫此程式碼?可以單獨編寫每條語句,並根據結果有條件地執行另外的語句。在每次需要這個處理時(以及每個需要它的應用程式中)都必須做這些工作。
可以建立預存程序。預存程序簡單來說,就是為以後的使用而保存的一條或多條MySQL語句的集合。可將其視為批次文件,雖然它們的作用不僅限於批次。
為什麼要使用預存程序
既然我們知道了什麼是預存程序,那為什麼要使用它們呢?有許多理由,以下列出一些主要的理由。
1.透過把處理封裝在容易使用的單元中,簡化複雜的運算。
2.由於不要求反覆建立一系列處理步驟,這保證了資料的完整性。如果所有開發人員和應用程式都使用相同(試驗和測試)預存程序,則所使用的程式碼都是相同的。 這一點的延伸就是防止錯誤。需要執行的步驟越多,出錯的可能性就越大。防止錯誤保證了資料的一致性。
3.簡化變動的管理。如果表名、列名或業務邏輯(或別的內容)有變化,只需要更改預存程序的程式碼。使用它的人員甚至不需要知道這些變化。 這一點的延伸就是安全性。透過儲存過程限制對基礎資料的存取減少了資料訥誤(無意識的或別的原因所導致的資料訥誤)的機會。
4.提高效能。因為使用預存程序比使用單獨的SQL語句快。
5.存在一些只能用在單一請求中的MySQL元素和特性,預存程序可以使用它們來編寫功能更強更靈活的程式碼。 換句話說,使用預存程序有3個主要的好處,即簡單、安全、高效能。顯然,它們都很重要。不過,在將SQL程式碼轉換為預存程序前,也必須知道它的一些缺陷。
6.一般來說,預存程序的編寫比基本SQL語句複雜,編寫預存程序需要更高的技能,更豐富的經驗。
7.你可能沒有建立預存程序的安全存取權。許多資料庫管理員限制預存程序的建立權限,允許使用者使用預存程序,但不允許他們建立預存程序。儘管有這些缺陷,預存程序還是非常有用的,並且應該盡可能地使用。
不能寫預存程序?你仍然可以使用 MySQL將編寫預存程序的安全性和存取與執行預存程序的安全性和存取區分開來。這是好事情。即使你不能(或不想)編寫自己的預存程序,也仍然可以在適當的時候執行別的預存程序。
以上是為什麼使用mysql儲存流程? mysql儲存過程簡介的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于架构原理的相关内容,MySQL Server架构自顶向下大致可以分网络连接层、服务层、存储引擎层和系统文件层,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用char()和REPLACE()函数来替换换行符;REPLACE()函数可以用新字符串替换列中的换行符,而换行符可使用“char(13)”来表示,语法为“replace(字段名,char(13),'新字符串') ”。

mysql的msi与zip版本的区别:1、zip包含的安装程序是一种主动安装,而msi包含的是被installer所用的安装文件以提交请求的方式安装;2、zip是一种数据压缩和文档存储的文件格式,msi是微软格式的安装包。

方法:1、利用right函数,语法为“update 表名 set 指定字段 = right(指定字段, length(指定字段)-1)...”;2、利用substring函数,语法为“select substring(指定字段,2)..”。

转换方法:1、利用cast函数,语法“select * from 表名 order by cast(字段名 as SIGNED)”;2、利用“select * from 表名 order by CONVERT(字段名,SIGNED)”语句。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了关于MySQL复制技术的相关问题,包括了异步复制、半同步复制等等内容,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于mysql的相关知识,其中主要介绍了mysql高级篇的一些问题,包括了索引是什么、索引底层实现等等问题,下面一起来看一下,希望对大家有帮助。

在mysql中,可以利用REGEXP运算符判断数据是否是数字类型,语法为“String REGEXP '[^0-9.]'”;该运算符是正则表达式的缩写,若数据字符中含有数字时,返回的结果是true,反之返回的结果是false。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

禪工作室 13.0.1
強大的PHP整合開發環境

SublimeText3漢化版
中文版,非常好用

SublimeText3 Linux新版
SublimeText3 Linux最新版

記事本++7.3.1
好用且免費的程式碼編輯器

Dreamweaver CS6
視覺化網頁開發工具