mysql存储过程入门与提高(第一篇)

以前在网上看到歪国人专门写了本mysql存储过程,感觉很强大啊。刚好最近新项目上优化要用到存储过程,我就把之前的学习笔记整理了一下。最近太忙啊!!!

MySQL stored programs包括存储过程,函数,触发器。

先来看一下官方的定义。

Stored procedures 存储过程
Stored procedures are the most common type of stored program. A stored proce-
dure is a generic program unit that is executed on request and that can accept
multiple input and output parameters.
Stored functions  函数
Stored functions are similar to stored procedures, but their execution results in
the return of a single value. Most importantly, a stored function can be used
within a standard SQL statement, allowing the programmer to effectively extend
the capabilities of the SQL language.
Triggers触发器。
Triggers are stored programs that are activated in response to, or are triggered
by, an activity within the database. Typically, a trigger will be invoked in
response to a DML operation (INSERT, UPDATE, DELETE) against a database table.
Triggers can be used for data validation or for the automation of denormalization.

大概说一下。

存储过程:存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。存储过程可包含程序流、逻辑以及对数 据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 可以在单个存储过程中

自定义函数:存储过程可以使得对数据库的管理、以及显示关于数据库及其用户信息的工作容易得多。存储过程是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程和函数的区别:

1.  一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
    2.  对于存储过程来说可以返回参数,而函数只能返回值或者表对象。
    3.  存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象。

存储过程就是程序,它是经过语法检查和编译的SQL语句,所以运行特别快。(这就是为啥用存储过程的原因)

触发器:触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行;出于性能和数据安全的原因,项目中基本没有用过触发器。

mysql查看库中所有的存储过程,函数,触发器:

select `name` from mysql.proc where db = ‘your_db_name‘ and `type` = ‘PROCEDURE‘

也可 “show procedure status; //存储过程”

select `name` from mysql.proc where db = ‘your_db_name‘ and `type` = ‘FUNCTION‘   //函数

也可 show function status;     //函数

存储过程,对INFORMATION_SCHEMA数据库中的TRIGGERS表查询

mysql>SELECT * FROM triggers T WHERE trigger_name=”mytrigger” \G

SHOW TRIGGERS [FROM db_name] [LIKE expr]

SHOW TRIGGERS\G     //触发器

时间: 2024-11-29 06:01:30

mysql存储过程入门与提高(第一篇)的相关文章

mysql存储过程入门与提高(第二篇)

以前面试的时候被问道为啥用mysql存储过程,或者存储过程的优点.作为一个专业的mysql dba.肯定是必须要掌握的.而我只是运维啊 哈哈哈.当时回答的不好,后来整理了 大概这几条,存储过程执行速度快,存储过程能够减少网络流量,提高应用程序代码的灵活性,提高数据安全保护机制. 狂汗啊!看人家洋鬼子整理的多齐整啊.师夷长技以制夷,奋起啊!!! ? The use of stored programs can lead to a more secure database.? Stored prog

mysql存储过程入门与提高(第三篇)

由于一些不好说的原因,以后博客内容大多只会发笔记的截图.此博客只发在my.oschina.net上,请勿作任何商业用途!! mysql存储过程:是指在数据库中定义一组sql语句组合在一起,并当作一个整体存储在mysql服务器中. 和存储函数的最主要的区别是对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象.函数只能返回一个变量:而存储过程可以返回多个.my.oschina.net讲存储函数的时候会把储存过程和存储函数的区别列出来.my.oschina.net 基本形式: CREA

SaltStack 入门到精通 - 第一篇: 安装SaltStack

实际环境的设定: 系统环境: centos6 或centos5 实验机器: 192.168.1.100 软件需求: salt 套件,及其需求环境 实验目的: 成功安装salt,并实现salt主从间通讯 特殊设置: 其它目的: 安装SaltStack(下面简称为salt) epel安装:salt安装需要epel源支持,所以在安装salt前需要先安装epel包 # centos5 下载下面rpm  wget -O    epel.rpm https://dl.fedoraproject.org/pu

【OpenCV入门指南】第一篇 安装OpenCV

[OpenCV第一篇]安装OpenCV 本篇主要介绍怎样下载OpenCV安装程序,怎样在VS2008下安装配置OpenCV,文章最后还介绍了一个使用OpenCV的简单小样例. <OpenCV入门指南>系列文章地址:http://blog.csdn.net/morewindows/article/category/1291764 一.OpenCV的下载 能够到http://www.opencv.org.cn/index.php/Download,然后选一个较新版本号下载.我下的是V2.3.1版本

【转帖】Mysql多维数据仓库指南 第一篇 第1章

 Mysql多维数据仓库指南 第一篇基本原理 章节列表: 第1章:基本组成 第2章:维度历史 第3章:维度可加性 第4章:维度查询 本篇概述 你将运用关系数据库来实施一个维度数据仓库.事实表和维表这两种类型的关系表构成了一个数据仓库模式的基本部分,在本书的第一部分,你将用mysql数据库建立这些基本部分. 第1章:基本组成   概述        本章将了解两个重要的主题:星型模式和代理键.星型模式是一种维度数据仓库的数据结构.代理键是在数据仓库中添加到事实表以作为主键的字段. 在本章你将开始一

MySQL存储过程入门教程

存储过程介绍 存储过程是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中.用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.存储过程可由应用程序通过一个调用来执行,而且允许用户声明变量 .同时,存储过程可以接收和输出参数.返回执行存储过程的状态值,也可以嵌套调用. 存储过程和函数的区别 函数往往作为公式使用,存储过程作为完成某种功能使用. 函数分为表值函数跟标量函数.表值函数是经过一些sql语句方法最后返回一张表,标量函数是经过一些sql语句方法最后返回一个值.

mysql 存储过程入门

这篇文章主要介绍了MySql存储过程与函数详解,内容很详细,需要的朋友可以参考下 存储过程和函数是在数据库中定义一些SQL语句的集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句.存储过程和函数可以避免开发人员重复的编写相同的SQL语句.而且,存储过程和函数是在MySQL服务器中存储和执行的,可以减少客户端和服务器端的数据传输.一.存储过程1.1.基本语法 CREATE PROCEDURE sp_name ([proc_parameter[,...]])     [characte

Mysql存储过程入门介绍

delimiter //一般情况下MYSQL以:结尾表示确认输入并执行语句,但在存储过程中:不是表示结束,因此可以用该命令将:号改为//表示确认输入并执行. 一.创建存储过程 1.基本语法: create procedure sp_name()begin.........end 2.参数传递 二.调用存储过程 1.基本语法:call sp_name()注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递 三.删除存储过程 1.基本语法:drop procedure sp_name//2.

Egret入门学习日记 --- 第一篇

第一篇(了解篇): 我人比较笨,得慢慢学,我就一点一点来好了. 首先,我个人喜欢游戏.网页开发相对游戏开发来说,网页开发实在太枯燥了,没劲.所以打算转游戏开发了. 游戏开发要选择游戏引擎,我去看了一些博客: 1.看的第一篇(发布于:2017年06月01日 22:20:16) https://blog.csdn.net/sujun10/article/details/72824248 说实话我被他的书写方式逗笑了,哈哈,真香.大佬最终还是选择了Egret. 2.看的第二篇(发布于:2018年04月