mysql workbench使用存储过程
来源:互联网 发布:清楚淘宝浏览记录 编辑:程序博客网 时间:2024/05/17 21:42
MySQL 使用存储过程
先来了解一下什么是mysql的存储过程:
Mysql存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。
要注意的地方:
1.不能在一个存储过程里定义另一个存储过程,但可以调用另一个存储过程
2.编译器为了区分存储过程和普通sql语句,在写存储过程是需要定义分割符来分割delimiter $$
如:
delimiter $$create procedure p(in a int)beginset a=2;select a;end;$$
否则编译器会报错
3.同一个名称的存储过程只能创建一次,再次创建需要把原来的删了。
实战例子:
学生表:
CREATE TABLE [dbo].[Student](
[StudentID] [int] IDENTITY(1,1) NOT NULL, –主键
[Number] varchar NULL, –学号
[Name] nchar NULL, –学生姓名
[ClassID] [int] NOT NULL –学生所在班级ID
)
班级表:
create table Class(
[ClassID] [int] IDENTITY(1,1) NOT NULL, –班级ID
[Code] varchar NULL, –班级编号
[ClassName] nchar NULL –班级名
)
插入班级数据:
insert into Class select ‘003’,’计算机3班’
insert into Class select ‘001’,’计算机1班’
insert into Class select ‘002’,’计算机2班’
insert into Class select ‘005’,’计算机5班’
insert into Class select ‘004’,’计算机4班’
任课老师:
create table Teacher(
[TeacherID] [int] IDENTITY(1,1) NOT NULL, –老师ID
[TeacherName] nchar NULL, –老师名称
[ClassID] [int] NOT NULL – 老师所教的班级ID
)
插入数据:
insert into Teacher select ‘陈老师’, 1
insert into Teacher select ‘李老师’, 3
insert into Teacher select ‘王老师’, 2
insert into Teacher select ‘赵老师’, 5
要求:编写一个可分页的存储过程,返回所有已安排了某任课老师的学生。要求:每页显示10条数据,页码和某任课老师可作为参数传入。需要列出学生的姓名、学号、以及学生所在的班级名和班级编号。
直接在workbench上的查询页面上输入下面代码:(’#’为我添加的注释,可去掉)
use dbo;DELIMITER $$CREATE DEFINER=`kjs`@`%` PROCEDURE `proc`(in pageindex int,in teacherName nvarchar(8))begindeclare ssql varchar(4000);#定义变量declare sstart int;declare send int;set sstart=(pageindex-1)*10;#设置sstart的值set send=pageindex*10-1;set @ssql=concat('select student.Name,student.Number,class.ClassName,class.Code fromstudent join class join teacher where student.ClassId=class.ClassID and class.ClassID=teacher.ClassID and teacher.TeacherName="',teacherName,'" limit ',sstart,',',send);#拼接数据库字符串prepare ssql from @ssql;#准备存储过程数据库执行语句execute ssql;#执行数据库语句deallocate prepare ssql;#结束后删除该准备end$$
运行即可,可以见到这dbo数据库里的routines中生成了一个名为proc的存储过程,如图:
那么如何测试存储过程呢?
很简单,在查询页面上调用该proc存储过程,并输入相应的参数即可
use dbo;call proc(1,"李老师")
更多请查看参考的相关链接点击更多内容
- mysql workbench使用存储过程
- mysql workbench 存储过程
- MYSQL workbench 创建存储过程
- workbench中使用存储过程
- 在mysql workbench中建立存储过程
- mysql存储过程使用
- MySQL存储过程使用
- MYSQL存储过程使用
- mysql存储过程使用
- Mysql存储过程使用
- mysql workbench使用总结
- MySQL Workbench使用
- mysql workbench 的使用
- mySQL workbench使用教程
- Mysql workbench使用
- MySQL Workbench的使用
- MySQL Workbench 使用教程
- MySQL Workbench的使用
- 快速排序
- TabLayout
- <转>创建支持SSH服务的Docker镜像
- live555学习笔记17-H264VideoStreamParser详解 .
- 73. Set Matrix Zeroes
- mysql workbench使用存储过程
- iOS开发编码规范建议
- C#基础知识总结
- Vbs脚本经典教材
- mysql触发器
- input:-webkit-autofill 导致chrome的输入框背景颜色变成黄色
- 用CSS和JavaScript改变样式的区别
- JSP tld文件配置 自定义标签简单示例
- Android Spinner监听重复选择某一项的方法