mysql存储过程了解下
记录了一些有关mysql存储过程的知识点和小案例,希望共同学习。。。
luyaran
像永远快乐的阳光,追求那至高无上的完美乐园。
展开
-
mysql存储过程之优缺点了解下
存储过程呢,其实就是存储在数据库目录中的一段声明性SQL语句,而,mysql在它发布的第一个十年期间,不支持存储过程,存储函数,触发器和事件。但是,自从MySQL 5.0版本以来,这些功能被添加到MySQL数据库引擎,使其更加灵活和强大。我们这次就来看下,这个存储过程的优缺点。首先来看优点:通常存储过程有助于提高应用程序的性能。当创建,存储过程被编译之后,就存储在数据库中。 但是,MySQ...原创 2018-07-09 10:53:54 · 827 阅读 · 0 评论 -
mysql存储过程之创建(CREATE PROCEDURE)和调用(CALL)
这个咱就不说什么定义啦术语啦啥的,直接看着实例来慢慢熟悉它。完事呢,咱们来创建一个名为GetAllProducts()的简单存储过程哈,这个GetAllProducts()存储过程呢,主要是用来从products表中选择所有产品。咱们来启动 mysql 客户端工具并键入以下命令:DELIMITER // CREATE PROCEDURE GetAllProducts() BEGIN...原创 2018-07-09 11:07:12 · 19053 阅读 · 1 评论 -
mysql存储过程之变量(创建(DECLARE)和赋值(SET))
我们都知道,变量是一个命名数据对象,变量的值可以在存储过程执行期间更改。我们接下来就尝试使用存储过程中的变量来保存直接/间接结果。 这些变量是存储过程的本地变量,但是我们得注意,变量必须先声明后,才能使用它。而我们如果要在存储过程中声明一个变量,可以使用DECLARE语句,来看下sql语法:DECLARE variable_name datatype(size) DEFAULT defau...原创 2018-07-09 11:21:50 · 31293 阅读 · 0 评论 -
mysql存储过程之参数(IN,OUT或INOUT)了解下
在现实应用中,开发的存储过程几乎都需要参数,就是这些参数,使得存储过程更加灵活和有用。 在mysql中,参数有三种模式:IN,OUT或INOUT:IN - 是默认模式。在存储过程中定义IN参数时,调用程序必须将参数传递给存储过程。 另外,IN参数的值被保护。这意味着即使在存储过程中更改了IN参数的值,在存储过程结束后仍保留其原始值。换句话说,存储过程只使用IN参数的副本。OUT - 可以在...原创 2018-07-09 11:52:17 · 5267 阅读 · 0 评论 -
mysql存储过程之返回多个值
mysql存储函数只返回一个值。要开发返回多个值的存储过程,需要使用带有INOUT或OUT参数的存储过程。咱们先来看一个orders表它的结构:mysql> desc orders;+----------------+-------------+------+-----+---------+-------+| Field | Type | Null | K...原创 2018-07-09 13:15:50 · 14622 阅读 · 1 评论 -
mysql存储过程之if语句了解下
mysql中的 IF语句允许我们根据表达式的某个条件或值结果来执行一组SQL语句,所以我们要在MySQL中形成一个表达式,可以结合文字,变量,运算符,甚至函数来组合。表达式可以返回TRUE,FALSE或NULL,这三个值之一。来看下语法结构:IF expression THEN statements;END IF;如果上述表达式(expression)计算结果为TRUE,那么将执行st...原创 2018-07-09 13:41:13 · 30117 阅读 · 0 评论 -
mysql存储过程之case语句了解下
除了if语句,mysql提供了一个替代的条件语句CASE。 mysql的 CASE语句使代码更加可读和高效。废话不多说,我们先来看下简单case语句的语法:CASE case_expression WHEN when_expression_1 THEN commands WHEN when_expression_2 THEN commands ... ELSE comma...原创 2018-07-09 14:33:46 · 4781 阅读 · 1 评论 -
mysql存储过程之游标(DECLARE)了解下
我们在处理存储过程中的结果集时,可以使用游标,因为游标允许我们迭代查询返回的一组行,并相应地处理每行。mysql的游标为只读,不可滚动和敏感三种模式,我们来看下:只读:无法通过光标更新基础表中的数据。不可滚动:只能按照select语句确定的顺序获取行。不能以相反的顺序获取行。 此外,不能跳过行或跳转到结果集中的特定行。敏感:有两种游标:敏感游标和不敏感游标。敏感游标指向实际数据,不敏感游标使用数据...原创 2018-07-09 14:49:05 · 2641 阅读 · 0 评论 -
mysql存储过程之列出存储过程
mysql为提供了一些有用的语句,可以更有效地管理存储过程,并且,这些语句包括列出存储过程并显示存储过程的源代码。我们首先来使用SHOW PROCEDURE STATUS语句来显示存储过程的字符:SHOW PROCEDURE STATUS [LIKE 'pattern' | WHERE expr];其中,SHOW PROCEDURE STATUS语句是对SQL标准的MySQL扩展。此语句提供存储过...原创 2018-07-09 14:55:52 · 474 阅读 · 0 评论 -
mysql存储过程之循环(WHILE,REPEAT和LOOP)
MySQL提供循环语句,允许我们根据条件重复执行一个SQL代码块其中有三个循环语句:WHILE,REPEAT和LOOP,我们接下来分别看下。首先是WHILE语句来看下语法:WHILE expression DO statementsEND WHILEWHILE循环在每次迭代开始时检查表达式。 如果expressionevaluates为TRUE,MySQL将执行WHILE和END WHI...原创 2018-07-10 14:33:27 · 12567 阅读 · 0 评论 -
mysql存储过程之错误处理
当存储过程中发生错误时,重要的是适当处理它,例如:继续或退出当前代码块的执行,并发出有意义的错误消息。其中mysql提供了一种简单的方法来定义处理从一般条件(如警告或异常)到特定条件(例如特定错误代码)的处理程序。完事我们来使用DECLARE HANDLER语句来尝试声明一个处理程序,先来看语法:DECLARE action HANDLER FOR condition_value statemen...原创 2018-07-10 14:49:03 · 13868 阅读 · 1 评论 -
mysql存储过程之引发存储过程中的错误条件(SIGNAL和RESIGNAL语句)
在mysql中,我们可以使用SIGNAL和RESIGNAL语句来引发存储过程中的错误条件。先来看,SIGNAL语句。我们通常使用SIGNAL语句在存储的程序(例如存储过程,存储函数,触发器或事件)中向调用者返回错误或警告条件。 SIGNAL语句提供了对返回值(如值和消息SQLSTATE)的信息的控制。来看下它的语法结构:SIGNAL SQLSTATE | condition_name;SET c...原创 2018-07-10 14:58:24 · 3662 阅读 · 0 评论 -
mysql存储过程之存储函数(CREATE FUNCTION)
之前提到过好多次存储函数,这次咱们就来具体看下。它呢,是返回单个值的特殊类型的存储程序。我们通常使用存储的函数来封装在SQL语句或存储的程序中可重用的常用公式或业务规则。与存储过程不同,我们可以在SQL语句中使用存储的函数,也可以在表达式中使用, 这有助于提高程序代码的可读性和可维护性。我们来看下创建新存储函数的最简单语法:CREATE FUNCTION function_name(param1,...原创 2018-07-10 15:06:36 · 4116 阅读 · 0 评论