Mysql高级之存储过程

原文:Mysql高级之存储过程

概念类似于函数,就是把一段代码封装起来,当要执行这一段代码的时候,可以通过调用该存储过程来实现.在封装的语句体里面,可以用if/else, case,while等控制结构.可以进行sql编程.

在mysql中,存储过程和函数的区别,

一个是名称不同,

二个就是存储过程没有返回值.

如果想获得返回值怎么办那?通过out性变量就OK!

查看现有的存储过程:

Show procedure status

 

删除存储过程

Drop procedure 存储过程的名字

 

调用存储过程

Call 存储过程名字();

1 过程里面声明变量

2 变量参与运算和简单控制语句

3 给存储过程传递参数

4 while循环

5 输出型变量

6 switch语句

7 do while语句

时间: 2024-09-23 06:25:39

Mysql高级之存储过程的相关文章

C#连接mysql然后查询存储过程

问题描述 C#连接mysql然后查询存储过程 C#连接mysql 然后查询一个名为userinfo的存储过程,传参5 sql:call userinfo(5); 这个是查询用户的信息的存储过程,执行这个sql,然后获得查询出来的结果,并且输出. 有没有大神写个demo我学习一下,谢谢! //正常执行sql语句我会,不会查存储过程 解决方案 C#调用mysql查询存储过程c#连接mysql 找不到存储过程mysql 树形结构查询(存储过程) 解决方案二: using System;using Sy

Mysql高级之触发器

原文:Mysql高级之触发器 触发器是一类特殊的事务 ,可以监视某种数据操作(insert/update/delete),并触发相关操作(insert/update/delete). 看以下事件: 完成下单与减少库存的逻辑 Insert into o (gid,num) values (2,3);  // 插入语句 Update g set goods_num = goods_num - 3 where id = 2;// 更新过程   这两个逻辑可以看成一个整体,或者说, insert ---

Mysql高级之游标

原文:Mysql高级之游标 什么是游标?select 语句也许一次性会取出来n条语句,那么游标便可以一次取出来select中的一条记录.每取出来一条,便向下移动一次!可以实现很复杂逻辑! 上面还有有一个问题,会多出来一条记录,怎样搞定? 原因在于continue,而不是选择exit: 如果用continue不行吗?是可以的,没发现上面带有逻辑上有点小问题吗?这样解决:调节一下顺序 可见有n多种方法,不就是语法问题吗!

MySQL用户执行存储过程的权限

  MySQL中以用户执行存储过程的权限为EXECUTE 比如我们在名为configdb的数据库下创建了如下存储过程,存储过程的定义者为user_admin use configdb; drop procedure if exists sp_dev_test_user_add; delimiter $$ CREATE DEFINER=`user_admin`@`%` PROCEDURE `sp_dev_test_user_add`( in var_user varchar(30), in var

mysql Event、存储过程、表命令

  Mysql事件调度器(Event Scheduler)类似于定时器,可以在某一个时间点执行一个SQL语句或一个语句块(BEGIN ... END):或者每隔固定间隔重复执行.类似于Linux下的crontab,或Windows下的Task Scheduler.   一.事件调度器的配置 所有事件都是在事件调度线程(event scheduler thread)里面执行的:当提及事件调度器时,通常指该线程.如果用户有PROCESS权限,可以通过SHOW PROCESSLIST命令来查看该线程及

实例解析MySQL中的存储过程及存储过程的调用方法_Mysql

mysql在5.1之后增加了存储过程的功能, 存储过程运行在mysql内部,语句都已经编译好了,速度比sql更快. 存储过程与mysql相当于shell和linux系统.如果你是程序员的话,那我告诉你存储过程实际上是一个方法,你只要调用这个方法,并且输入它设置好的参数就可以获取或者执行你想要的操作了. 看了如下存储过程实例,你会发现mysql存储过程和shell很像. 下面存储过程内容为:调用存储过程,并且传入用户名,密码参数.存储过程会将这她们存储到process_test表里面.看实例 一,

mysql高级查询

问题描述 现有这样的递归表(系统菜单表),表内容如下:怎样通过sql查询将父子归类,不要使用函数或存储过程.最终效果:表结构如下:CREATETABLE`sysmenu`(`id`bigint(20)NOTNULLAUTO_INCREMENT,`menuName`varchar(100)NOTNULLDEFAULT''COMMENT'菜单名称',`parentId`bigint(20)NOTNULLDEFAULT'0'COMMENT'父级ID',`url`varchar(200)NOTNULLD

MSSQL MySQL 数据库分页(存储过程)_MsSql

先看看单条 SQL 语句的分页 SQL 吧. 方法1: 适用于 SQL Server 2000/2005 复制代码 代码如下: SELECT TOP 页大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 页大小*(页数-1) id FROM table1 ORDER BY id ) ORDER BY id 方法2: 适用于 SQL Server 2000/2005 复制代码 代码如下: SELECT TOP 页大小 * FROM table1 WHERE

MySQL高级查询之与Group By集合使用介绍_Mysql

1 GROUP_CONCAT mysql> SELECT student_name,    ->     GROUP_CONCAT(test_score)    ->     FROM student    ->     GROUP BY student_name; Or: mysql> SELECT student_name,    ->     GROUP_CONCAT(DISTINCT test_score    ->               ORDER