`
azheng270
  • 浏览: 92993 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

MySQL 存储过程学习笔记

阅读更多

存储过程创建语法:

CREATEPROCEDUREprocedure_name([parameter[,...])

[LANGUAGESQL]

[[NOT]DETERMINISTIC]

[{CONTAINSSQL|MODIFIESSQLDATA|READSSQLDATA|NOSQL}]

[SQLSECURITY{DEFINER|INVOKER}]

[COMMENTcomment_string]

procedure_statements

函数的创建

CREATEFUNCTIONfunction_name(parameter[,...])

RETURNSdatatype

[LANGUAGESQL]

[[NOT]DETERMINISTIC]

[{CONTAINSSQL|NOSQL|MODIFIESSQLDATA|READSSQLDATA}]

[SQLSECURITY{DEFINER|INVOKER}]

[COMMENTcomment_string]

语句体

函数与存储过程基本一样,其区别主要有:
1、 要使用RETURNS指定返回类型
2、 函数必须返回值,且在语句体中使用RETURN返回(注意:指定返回类型用RETURNS,返回值用RETURN)
3、 参数不区分IN,OUT,全部为IN类形

例:

CREATEFUNCTIONcust_status(in_statusCHAR(1))
RETURNSVARCHAR(20)
BEGIN
DECLARElong_statusVARCHAR(20);
IFin_status='O'THENSETlong_status='Overdue';
ELSEIFin_status
='U'THENSETlong_status='Uptodate';
ELSEIFin_status
='N'THENSETlong_status='New';
ENDIF;
RETURN(long_status);
END;

调用:

SELECTcust_status('O');

可用SHOW PROCEDURE STATUS 或 SHOW CREATE PROCEDURE 来查看存储过程信息
另,系统表INFORMATION_SCHEMA.ROUTINES也包含了存储过程的一些信息
同样地,函数也可以使用同样方式查看(SHOW FUNCTION STATUS)

触发器

CREATE[DEFINER={user|CURRENT_USER}]TRIGGERtrigger_name

{BEFORE
|AFTER}{UPDATE|INSERT|DELETE}

ONtable_name

FOREACHROW

trigger_statements

意义:
当对表table_name执行update,insert,delete操作之前(before)或之后(after)时触发语句trigger_statements操作

例:

mysql>CREATETRIGGERaccount_balance_au
AFTER
UPDATEONaccount_balanceFOREACHROW
BEGIN
DECLAREdummyINT;
IFNEW.balance<0THEN
SETNEW.balance=NULL;
ENDIF;
END

上述触发器表示:当更新表account_balance之后,如果更新的值balance小于0,则将它改为NULL,
注:如果为OLD.balance则表示更新前的原值

基本语法

一.创建存储过程

1.基本语法:
create procedure sp_name()
begin
.........
end
2.参数传递

二.调用存储过程

1.基本语法:call sp_name()
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递

三.删除存储过程

1.基本语法:
drop procedure sp_name//
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

四.区块,条件,循环

1.区块定义,常用
begin
......
end;
也可以给区块起别名,如:
lable:begin
...........
end lable;
可以用leave lable;跳出区块,执行区块以后的代码
2.条件语句
if 条件 then
statement
else
statement
end if;

3.循环语句
(1).while循环
[label:] WHILE expression DO

statements

END WHILE [label] ;

(2).loop循环
[label:] LOOP

statements

END LOOP [label];

(3).repeat until循环
[label:] REPEAT

statements

UNTIL expression

END REPEAT [label] ;
分享到:
评论

相关推荐

    MySQL视图及存储过程学习笔记

    MySQL视图及存储过程学习笔记

    Mysql存储过程学习笔记–建立简单的存储过程

    MySQL存储过程是数据库管理系统中的一种重要特性,它允许开发者预定义一组SQL语句,以便后续在需要时调用。这不仅简化了代码复用,提高了性能,还减少了网络流量,增强了安全性。以下是对存储过程的详细说明: **一...

    Mysql存储过程学习笔记--建立简单的存储过程

    MySQL存储过程是数据库管理系统中的一种重要特性,它允许开发者预定义一组SQL语句,以便后续在需要时调用。这不仅简化了代码复用,还能提高执行效率,因为存储过程在首次创建时会被编译,之后的调用只需传入参数即可...

    精通MySQL存储过程和函数

    ### 精通MySQL存储过程和函数 #### 1. 说明 ##### 1.1 手册适用范围 本手册适用于对MySQL存储过程...通过这些知识点的学习,可以帮助开发者更好地理解和应用MySQL存储过程和函数,从而提高应用程序的性能和安全性。

    MySQL核心技术学习笔记

    ### MySQL核心技术学习笔记 #### 一、为什么要学习数据库 学习数据库的重要性主要体现在以下几个方面: 1. **持久化数据到本地**:数据库能够将应用程序产生的数据持久化存储在磁盘上,即使系统重启也不会丢失...

    MySQL学习笔记 MySQL学习笔记

    - 存储过程和函数:预编译的SQL代码块,可重复使用,提高效率。 - 流程控制结构:如IF-ELSE、CASE、WHILE等,使SQL编程更灵活。 学习MySQL不仅涉及理论知识,还需要大量的实践操作来熟悉其语法和功能。掌握MySQL能...

    MySQL学习笔记.zip

    这份“MySQL学习笔记”将引导我们深入理解其核心概念和实用技能。 一、MySQL简介 MySQL是一个开源、免费的数据库系统,由瑞典的MySQL AB公司开发,后被Oracle公司收购。它的设计目标是速度、可移植性和简洁性,支持...

    mysql 个人学习笔记

    MySQL是世界上最受欢迎的关系型数据库管理...以上只是MySQL学习笔记的一部分内容,实际的学习过程中,你还会接触到触发器、分区、复制、集群等更高级的主题。不断实践和深入研究,才能真正掌握这个强大的数据库系统。

    mysql DBA学习笔记

    这份"超经典mysql DBA学习笔记"涵盖了成为一名优秀DBA所需掌握的众多知识点,旨在帮助学习者深入理解MySQL数据库的运维与优化。 一、MySQL概述 MySQL是一种开源、免费的关系型数据库管理系统,广泛应用于互联网应用...

    mysql学习笔记.rar

    首先,"mysql学习笔记.doc"很可能是核心的学习资料,它可能包含了MySQL的基础概念、安装与配置、SQL语言基础、数据类型、数据库设计、表的创建与管理、索引、视图、存储过程、触发器、事务处理、备份与恢复、性能...

    非常详细的某培训机构mysql学习笔记

    非常详细的某培训机构mysql学习笔记,内容系统全面,实用性强 MySQL1 MySQL基础 MySQ单实例部署 MySQL多实例部署 MySQL数据库操作 MySQL数据类型 MySQL存储引擎 MySQL表操作 MySQL2 MySQL数据操作 MySQL单...

    MYSQL知识学习过程笔记

    MYSQL知识学习过程笔记 在学习MYSQL之前,首先需要了解什么是数据库、数据库管理系统和SQL它们之间的关系是什么?数据库英文单词DataBase,简称DB,按照一定格式存储数据的一些文件的组合,顾名思义:存储数据的...

    与MySQL零距离接触学习笔记

    这份"与MySQL零距离接触学习笔记"无疑为初学者提供了一个深入了解MySQL的基础平台。 首先,笔记可能涵盖了MySQL的安装与配置。在Windows、Linux或MacOS等操作系统上安装MySQL通常涉及下载安装包,执行安装过程,并...

    Mysql学习笔记.pdf

    MySQL 是一款广泛使用的开源关系型数据库管理系统,其学习笔记涵盖了多个关键知识点。以下是对这些知识点的详细解释: 1. **MySQL 体系架构** - **网络连接层**:处理客户端的连接请求,包括连接管理、认证和安全...

    mySQL.zip_MYSQL_mysql 课件_学习笔记_笔记_资料

    这份"mySQL.zip_MYSQL_mysql 课件_学习笔记_笔记_资料"的压缩包内容包括了MySQL的培训课件和学习笔记,非常适合初学者进行数据库知识的入门学习。 51CTO下载-Mysql培训课件.pdf可能涵盖了以下MySQL的核心知识点: ...

    超经典mysql dba 学习笔记.zip

    这份“超经典mysql dba学习笔记”包含了丰富的MySQL运维知识,对于想要深入理解和掌握MySQL DBA技能的人来说是一份宝贵的资料。 一、MySQL基础知识 在学习MySQL DBA之前,首先需要了解MySQL的基本概念,包括数据库...

    MySQL学习笔记(含基础、运维、进阶三部分)

    MySQL学习笔记(含基础、运维、进阶三部分) MySQL学习笔记(含基础、运维、进阶三部分) MySQL学习笔记(含基础、运维、进阶三部分) 包含了我学习 MySQL 过程中的笔记和资源,从入门到进阶的内容都有涉及。通过...

    Mysql最全学习笔记

    MySQL学习笔记 数据库基础知识: * 数据库(DB):存储数据的容器。 * 数据库管理系统(DBMS):创建或管理数据库的软件,例如 MySQL、Oracle、SQL Server 等。 SQL 介绍: * 结构化查询语言(SQL):与数据库...

    MySQL DBA架构师学习笔记

    MySQL DBA架构师学习笔记涉及了MySQL数据库的部署、配置、监控和优化等多方面的知识点。以下是对文件内容中提及知识点的详细说明: 1. MySQL部署规划:在进行MySQL数据库部署时,需要进行前期规划,确定软件包、...

    MYSQL开发学习笔记

    ### MySQL开发学习笔记知识点梳理 #### 一、基础知识概述 - **数据库定义**: 数据库(database)是用于存储数据的仓库,它可以高效地存储和处理数据。主要存储介质有两种:磁盘和内存(RAM)。 - **数据库分类**: - *...

Global site tag (gtag.js) - Google Analytics