`
memorymyann
  • 浏览: 271949 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

存贮过程和函数

阅读更多

这里以mysql为例,存贮过程是一组已经被编译好的SQL语句,所以他的速度要比没有编译的SQL语句速度要快,在有大量SQL语句时候,写成存贮过程是个不错选择,其次他还保证了数据修改的原子性。

 

mysql> select * from pet;
+----------+--------+---------+------+------------+------------+
| name     | owener | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | m    | 1993-02-04 | 2002-01-13 |
| Claws    | Gwen   | cat     | m    | 1992-01-04 | 2000-12-23 |
| Buffy    | Harold | cat     | m    | 1996-01-20 | 2000-12-23 |
| Didi     | Gwen   | dog     | m    | 1997-01-04 | 2000-12-23 |
| Fatpower | Shiwa  | pig     | m    | 1997-01-04 | 2000-12-23 |
+----------+--------+---------+------+------------+------------+
5 rows in set (0.00 sec)

 

这是个简单拿的表格,接下来我们开始创建存贮过程

mysql> delimiter //
mysql> create procedure update_death(in param_death date)
    -> begin
    -> update pet set species = 'dog';
    -> update pet set death = param_death;
    -> end;
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter;

这是一个带输入参数的存贮引擎,执行指令为call update_death('2001-11-01');

如果你输入错误日期,那么你会发现第一个UPDATE语句会被回滚。如果没有参数就让()为空即可。

如果有输出参数,则为

mysql> delimiter //
mysql> create procedure select_count_pet(out param1 int)
    -> begin
    -> select count(name) into param1 from pet;
    -> end;
    -> //
Query OK, 0 rows affected (0.00 sec)

mysql> delimiter ;
mysql> call select_count_pet(@count);
Query OK, 0 rows affected (0.00 sec)

mysql> select @count;
+--------+
| @count |
+--------+
| 5      |
+--------+
1 row in set (0.00 sec)

 

 

函数:前一个是存贮过程,这里简单列举下函数,函数的参数都是输入参数不同于存贮过程,他只是输入

mysql> select * from pet;
+----------+--------+---------+------+------------+------------+
| name     | owener | species | sex  | birth      | death      |
+----------+--------+---------+------+------------+------------+
| Fluffy   | Harold | cat     | m    | 1993-02-04 | 2008-12-01 |
| Claws    | Gwen   | cat     | m    | 1992-01-04 | 2008-12-01 |
| Buffy    | Harold | cat     | m    | 1996-01-20 | 2008-12-01 |
| Didi     | Gwen   | cat     | m    | 1997-01-04 | 2008-12-01 |
| Fatpower | Shiwa  | cat     | m    | 1997-01-04 | 2008-12-01 |
+----------+--------+---------+------+------------+------------+
5 rows in set (0.00 sec)

mysql> create function get_pet_birth(pet_name varchar(20)) returns date
    -> return (select birth from pet where name = pet_name);
Query OK, 0 rows affected (0.01 sec)

mysql> select get_pet_birth('Fluffy');
+-------------------------+
| get_pet_birth('Fluffy') |
+-------------------------+
| 1993-02-04              |
+-------------------------+
1 row in set (0.00 sec)

 

这里看出函数大概形式为

create function function_name(param) returns type

函数体

具体的可以看mysql的帮助手册。

分享到:
评论

相关推荐

    存储过程和函数

    根据提供的文件信息,本文将详细...存储过程和函数是数据库管理中非常重要的概念,它们可以提高程序的复用性和效率,同时简化数据库的维护工作。通过了解和掌握这些基本知识,可以更有效地管理和开发数据库应用程序。

    实验4存储过程和函数实验

    适合sqlserver数据库初学者,实验四存储过程和函数实验

    Oracle存储过程和函数(最详细包含emp 表实例操作,边看边操作)

    在Oracle数据库中,存储过程和函数是重要的编程元素,用于执行复杂的数据库操作和业务逻辑。本篇文章将深入探讨这两个概念,并结合经典的SCOTT库中的EMP表进行实例操作。 **一、Oracle存储过程** 存储过程是一组预...

    存储过程和函数的区别

    ### 存储过程和函数的区别 #### 一、概述 在数据库编程中,存储过程(Stored Procedure)与函数(Function)都是预编译并存储在数据库服务器上的代码块,能够提高应用程序性能,简化复杂的数据库操作,并增强数据...

    Mysql存储过程和函数

    其中,存储过程和函数是MySQL提供的两种重要的编程特性,它们可以帮助开发者更加灵活地控制数据库操作流程。本文将详细介绍MySQL存储过程与函数的相关概念、创建方法以及使用技巧。 #### 二、存储过程与函数的区别 ...

    MySQL实验报告5(存储过程与函数)(1)(1).pdf

    根据提供的文件内容,本篇实验报告主要围绕MySQL数据库中存储过程和函数的应用,涵盖了创建存储过程、函数、游标以及异常处理等高级特性。下面将详细解析报告中的每个知识点。 1. 创建存储过程 存储过程是一种在...

    GBase 8S 自定义存储过程和函数.doc

    GBase 8S 是一款由南京大学通用数据技术有限公司开发的关系型数据库管理系统,它支持自定义存储过程和函数,这极大地增强了数据库的功能性和灵活性。存储过程是GBase 8S中一个重要的特性,它们是一组预编译的SQL语句...

    第11章MySQL存储过程与函数.docx

    MySQL 存储过程和函数是数据库中定义的一组用户定义的 SQL 语句集合。它们之间的区别在于: 1. 存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。 2. 存储过程可以返回参数,而函数只能返回值或者表...

    Mysql手册20-存储过程和函数

    MySQL存储过程和函数是数据库编程的重要组成部分,它们提供了在数据库服务器上执行特定任务的能力。本部分详细介绍了存储程序和函数的各个方面,包括它们的创建、语法、权限控制以及与性能优化相关的概念。 首先,...

    存储过程-05.存储过程和函数结合使用

    在数据库管理领域,存储过程和函数是两种非常重要的数据库编程元素。它们在数据处理和业务逻辑实现中扮演着核心角色。本主题将深入探讨“存储过程-05.存储过程和函数结合使用”这一概念,旨在揭示它们如何协同工作以...

    数据库存储过程和函数.pdf

    在数据库领域,存储过程(Procedure)和存储函数(Function)是重要的数据库对象,用于封装一系列操作,提高数据处理效率。MySQL数据库管理系统提供了这两种机制,允许开发者编写复杂的SQL语句集,并通过特定的名称...

    存储过程与函数的区别

    在数据库管理领域,存储过程和函数是两种非常重要的数据库编程元素,它们都被广泛用于提高数据库操作的效率和安全性。然而,两者之间存在着显著的区别。本文将深入探讨存储过程与函数的差异,以及如何在实际应用中...

    oracle数据库 存储过程和函数的使用

    根据给定文件的信息,我们可以详细地探讨Oracle数据库中存储过程和函数的相关知识点。 ### 存储过程的意义 存储过程是一种数据库对象,它是由SQL语句和流程控制语句组成的预编译模块,存储在数据库服务器上。存储...

    java中调用oracle的存储过程和函数

    ### Java中调用Oracle的存储过程和函数 在Java应用程序中调用Oracle数据库中的存储过程或函数是一项常见的任务。这不仅能够提高代码的执行效率,还可以有效地管理事务处理,确保数据的一致性和完整性。本文将详细...

    MySql存储过程和函数

    MySQL存储过程和函数是数据库管理中的重要组成部分,它们在数据处理和业务逻辑中扮演着核心角色。本篇文章将深入探讨这两个概念,以及它们在MySQL环境中的应用和差异。 首先,让我们了解一下存储过程。存储过程是一...

    第10章 存储过程和函数PPT

    在数据库管理领域,存储过程和函数是MySQL等关系型数据库管理系统中的重要概念,它们极大地提升了数据操作的效率和代码的可重用性。本章主要围绕这两个主题展开,旨在帮助学习者深入理解并掌握其使用技巧。 存储...

    精通MySQL存储过程和函数

    ### 精通MySQL存储过程和函数 #### 1. 说明 ##### 1.1 手册适用范围 本手册适用于对MySQL存储过程和函数感兴趣的开发者和技术人员,特别是那些希望深入了解并掌握如何在实际项目中高效利用这些功能的专业人士。...

    oracle存储过程和函数PPT

    综合这三个主题,Oracle数据库开发者可以通过学习和熟练运用存储过程、函数和PL/SQL,提升数据库应用程序的性能和可维护性。了解并掌握游标管理,可以帮助开发者更加高效地处理大数据量的情况。这些知识对于任何涉及...

    完整精品数据库课件 MySQL从入门到精通 第10章 存储过程和函数(共19页).ppt

    MySQL是世界上最流行的关系型数据库管理系统之一,而存储过程和函数是其强大功能的重要组成部分。本章节将深入探讨这两个概念,以及如何在MySQL中创建、调用、查看、修改和删除它们。 1. **创建存储过程和函数** -...

Global site tag (gtag.js) - Google Analytics