当前位置: 首页 > news >正文

网页浏览器网址宁波seo网站

网页浏览器网址,宁波seo网站,网页设计与制作免费模板,营销网名大全存储过程 概念 存储过程,是一个数据库对象,类似一个函数。 在存储过程中可以使用SQL中的绝大部分内容,并且可以加入编程语言的特性(循环判断分支)。 编写好存储过程之后,可以在客户端调用存储过程,存储过程会自动的执行…

存储过程

概念

存储过程,是一个数据库对象,类似一个函数。

在存储过程中可以使用SQL中的绝大部分内容,并且可以加入编程语言的特性(循环判断分支)。

编写好存储过程之后,可以在客户端调用存储过程,存储过程会自动的执行里面的一系列代码
在存储过程中使用DDL/DML/TCL 和普通SQL一样,DQL和普通SQL略有区别。

创建存储过程

创建存储过程的语法

create PROCEDURE 过程名称([参数列表])
BEGINSQL语句
END;
--参数列表的声明规范:参数的输入、输出类型 参数名称 参数的类型;过个参数之间用逗号分隔--参数的输入/输出类型
1. In类型   外界数据传递给存储过程
2. Out类型  可以把存储过程中的数据返回给外界调用者
3. INOUT类型  既可以传入 又可以传出

创建存储过程

-- 创建一个存储过程,查询EMP表中的数据总数并返回结果
-- 注意:声明过程中需指明参数类型,但是没有参数长度的指定 
create PROCEDURE FUNC1(OUT Total INT)
BEGIN-- 把查询结果赋值给OUT类型的参数  select .. into .. from ..-- 通过OUT类型参数将结果返回给调用者select count(1) into Total from emp;
END;

查看创建的存储过程

CREATE DEFINER=`root`@`localhost` PROCEDURE `FUNC1`(OUT Total INT)
BEGIN-- 把查询结果赋值给OUT类型的参数-- 通过OUT类型参数将结果返回给调用者select count(1) into Total from emp;
END;

调用存储过程

-- 调用义好的存储过程,就像调用函数一样
call FUNC1(@Total); -- 调用存储过程,通过@Total给存储过程传递一个OUT类型参数
select @Total; -- 存储过程通过OUT类型参数返回结果,查询OUT类型参数获取存储过程的执行结果

删除存储过程

drop procedure FUNC1;

练习

-- 创建存储过程 返回两个数相加的结果
-- 如果没有指明参数的输入输出类型,默认为IN类型
create procedure func2(num1 INT,num2 int,OUT res int)
begin-- 把num1+num2的结果赋值给resset res = num1+num2;
end;-- 调用存储过程,查询结果,参数名字并不一定与定义的参数名一样
call func2(10,20,@re);
select @re;  --30

存储过程缺点

不能移植 无法移植 在不同数据库中,存储过程语法不同

不能移植 一旦使用存储过程 将无法移植

不能移植 除非不考虑移植 才使用存储过程

面试问到就说没用过,因为项目考虑数据移植性

自定义函数

-- 定义一个函数
create function f007(arg1 int, arg2 int)
returns int
Begindeclare result int default 0;set result = arg1 + arg2;return(result);
end ;
-------------------------------调用函数--------------
select f007(1,5);

函数与存储过程的区别

函数必须有返回值

函数中不能使用SQL

触发器

当对某张表做DML操作时,可以使用触发器自定义关联行为。

触发器用于在数据库的DML操作之前/之后执行某些操作

触发器trigger的定义语法

-- 在tab1表中创建一个触发器trig1 在每一行数据插入之前/之后 do something
create TRIGGER trig1 before/after insert on tab1 for each row
begin--do something
end;

NEW关键字 代表新数据 NEW.name获取新数据的name值

OLD关键字 代表老数据

-- 在emp_bak中创建触发器t1,每次往emp_bak插入数据之前
create trigger t1 before insert on emp_bak for each row
begin-- 执行往emp_bak1表插入相同的数据   NEW代表新数据insert into emp_bak1(empno,ename)values(NEW.empno,NEW.ename);
end;
-- 测试
insert into emp_bak(empno,ename)values(2234,"张三");--  在emp_bak中创建触发器t2,每次update emp_bak数据之后
create trigger t2 after update on emp_bak for each row
begin-- 在emp_bak1表中执行相同的操作  OLD代表老数据update emp_bak1 set ename = NEW.ename where  ename=OLD.name;
end;
-- 测试
update emp_bak set ename="张三丰" where ename="张三";

不推荐使用视图和触发器

视图 在开发环境怎么折腾都没问题 但是用于生产环境时视图想变动就难了

delimiter

终止符定义,默认是;

delimiter \\将终止符定义为\\

转载于:https://www.cnblogs.com/endurance9/p/10321310.html

http://www.lbrq.cn/news/2784439.html

相关文章:

  • 初级web前端工程师证书常用seo站长工具
  • 今日财经重大新闻seo营销技巧培训班
  • 网站的关键词库怎么做seo舆情优化
  • 高端建站服务商百度竞价排名叫什么
  • 网站的上一页怎么做个人网站开发网
  • 厦门网站建设哪家公司好成都有实力的seo团队
  • 国家住房和城乡建设网站辅导机构
  • 学生html美食静态网页代码网站seo优化方案设计
  • 昆明营销型网站建设公司武汉网站开发公司
  • 电商网站怎样做营销推广运营
  • 网站拨测人员是干嘛的河南seo推广
  • 网站做了301怎么查看跳转前网站教育培训机构推荐
  • 网站关键词不稳定企业策划推广公司
  • 带做网站绿标seo搜索引擎优化工资薪酬
  • 建设网站服务器 知乎企业网站推广方案
  • o2o商城网站制作制作网站要花多少钱
  • wordpress 文章索引石家庄关键词优化软件
  • 向国外支付网站开发费找培训机构的网站
  • 可以做仿牌网站郑州百度seo网站优化
  • 青海城乡和住房建设厅网站南京百度
  • 贵州住房和城乡建设部网站首页关键词优化意见
  • 成都专业网站建设价格低班级优化大师手机版下载(免费)
  • 长春网站建站全网推广的方式有哪些
  • 网站的开发工具和运行环境竞价交易规则
  • 真实的做视频网站360网站推广费用
  • 有什么网站接效果图做的常见的网络营销模式
  • 古交市住房和城乡建设局网站seo搜索引擎官网
  • 自己的公司怎么做网站网络seo外包
  • 动态网站开发结束语链接买卖平台
  • html做的网站图片横着摆放seo课程培训入门
  • 极其简单二叉树遍历JAVA版本
  • 《算法导论》第 34 章 - NP 完全性
  • 【数据结构之二叉树】
  • 【C++】基础:C++11-14-17常用新特性介绍
  • 4位量化:常规的线性层被替换成了4位线性层(48)
  • 服务器硬件电路设计之 SPI 问答(二):SPI 与 I2C 的特性博弈及多从机设计之道