存储过程和函数作为数据库的一部分,为什么是学习之痛。

项目实际开发,考虑性能和代码维护,绝对不用存储过程。

如果单纯自己写个小程序糊弄人玩,还可以写写。

【学习】

在数据库中定义一些SQL语句集合,然后直接调用这些存储过程和函数来执行已经定义好的SQL语句。
避免开发人员重复编写相同的SQL语句。
在MySql服务器中存储和执行,可以减少客户端和服务端的数据传输。

delimiter &&
create procedure pro_book(in bT int,out count_num int)
reads sql data
	begin
select count(*) from t_book where bookTypeId=bT;
	end
&&
delimiter ;

call pro_book(1,@total);

  函数

delimiter &&
create function func_book(bookId int)
returns varchar(20)
	begin
return( select bookName from t_book where id=bookId);
	end
&&
delimiter ;

select func_book(1);

  

●变量的使用
delimiter &&
create procedure pro_user()
begin
declare a,b varchar(20);
insert into t_user values(NULL,a,b);
end
&&
delimiter ;

call pro_user();

●为变量赋值
delimiter &&
create procedure pro_user2()
begin
declare a,b varchar(20);
set a='jjj',b='888';
insert into t_user values(NULL,a,b);
end
&&
delimiter ;

call pro_user2();

delimiter &&
create procedure pro_user3()
begin
declare a,b varchar(20);
select name,pass into a,b from t_user2 where id=1;
insert into t_user values(NULL,a,b);
end
&&
delimiter ;

call pro_user3();

●游标的使用
delimiter &&
create procedure pro_user4()
begin
declare a,b varchar(20);
declare cur_t_user2 cursor for select name,pass from t_user2;
open cur_t_user2;
fetch cur_t_user2 into a,b;
insert into t_user values(NULL,a,b);
close cur_t_user2;
end
&&
delimiter ;

call pro_user4();

●流程控制的使用
存储过程和函数中可以使用流程控制。MySql使用if、case、loop、leave、iterate、repeat、while来控制。

●if语句
delimiter &&
create procedure pro_user5(in n int)
begin
select count(*) into @num from t_user2 where id=n;
if @num>0 then update t_user2 set name='yyy',pass='555' where id=n;
else insert into t_user2 values(NULL,'java','1234');
end if;
end
&&
delimiter ;

call pro_user5(1);
call pro_user5(3);

●case语句

STOP!!!

STOP!!!

STOP!!!

好了到此为止了!学的知识实际应用不上!!!

学习之痛(数据库->存储过程和函数)的更多相关文章

  1. Oracle数据库—— 存储过程与函数的创建

    一.涉及内容 1.掌握存储过程与函数的概念. 2.能够熟练创建和调用存储过程与函数. 二.具体操作 1.创建存储过程,根据职工编号删除scott.emp表中的相关记录. (1)以scott 用户连接数 ...

  2. PL/SQL学习(四)存储过程和函数

    原文参考:http://plsql-tutorial.com/ PL/SQL存储过程 存储过程相当于一个有名字的PL/SQL块,经过第一次编译后再次调用时不需要再次编译 创建格式: CREATE [O ...

  3. MySQL学习笔记:调用存储过程或函数报1418错误

    问题 MySQL开启bin-log后,调用存储过程或者函数以及触发器时,会出现错误号为1418的错误: ERROR 1418 (HY000): This function has none of DE ...

  4. Oracle学习(十二):存储过程/存储函数

    1.知识点 --第一个存储过程 /* 打印Hello World create [or replace] PROCEDURE 过程名(參数列表) AS PLSQL子程序体: 调用存储过程: 1. ex ...

  5. MySQL学习笔记:删除存储过程和函数

    删除存储过程.存储函数主要使用drop语句: drop procedure  —— 删除存储过程 drop function  —— 删除存储函数 语法: DROP {PROCEDURE|FUNCTI ...

  6. SQL Server 查询某一个数据库存储过程、函数是否包含某一个内容或者脚本

    SELECT obj.Name 名称, sc.TEXT 内容FROM syscomments scINNER JOIN sysobjects obj ON sc.Id = obj.IDWHERE sc ...

  7. MYSQL数据库学习十四 存储过程和函数的操作

    14.1 为什么使用存储过程和函数 一个完整的操作会包含多条SQL语句,在执行过程中需要根据前面SQL语句的执行结果有选择的执行后面的SQL语句. 存储过程和函数的优点: 允许标准组件式编程,提高了S ...

  8. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

  9. Mysql学习笔记(十)存储过程与函数 + 知识点补充(having与where的区别)

    学习内容:存储程序与函数...这一章学的我是云里雾里的... 1.存储过程...   Mysql存储过程是从mysql 5.0开始增加的一个新功能.存储过程的优点其实有很多,不过我觉得存储过程最重要的 ...

随机推荐

  1. ACdream 1112 Alice and Bob(素筛+博弈SG函数)

    Alice and Bob Time Limit:3000MS     Memory Limit:128000KB     64bit IO Format:%lld & %llu Submit ...

  2. 彻底禁止QQ更新

    彻底禁止QQ自动更新 彻底禁止QQ自动更新 相信大部分朋友用的QQ都不是腾讯提供的官方原版吧,我本人就用的某精简版本,只保留了自己会用到的个别功能,既省内存,启动也超快,界面更是清爽无比. 但是,这种 ...

  3. python基础——列表生成式

    python基础——列表生成式 列表生成式即List Comprehensions,是Python内置的非常简单却强大的可以用来创建list的生成式. 举个例子,要生成list [1, 2, 3, 4 ...

  4. php 获取当前时间

    <?php echo $showtime=date("Y-m-d H:i:s");?>

  5. IBM V7000

    IBM_V7000 http://www.tuicool.com/articles/7vI7ja http://www.ibm.com/support/knowledgecenter/en/ST3FR ...

  6. iOS开发网络篇—网络请求(HTTP协议)小结(转)

    1. 聊一下HTTP协议(协议的完整的通信过程) 2.通信过程 1> 请求 * 客户端 --> 服务器 * 请求的内容 a. 请求行(请求方法\HTTP协议\请求资源路径) b. 请求头( ...

  7. javascript字典数据结构常用功能实现

    必知必会啊. function Dictionary(){ var items = {}; this.has = function (key) { return key in items; }; th ...

  8. hdu 1150 最小点覆盖

    题目大意;有两台机器A和B以及N个需要运行的任务.每台机器有M种不同的模式,而每个任务都恰好在一台机器上运行.如果它在机器A上运行,则机器A需要设置为模式xi,如果它在机器B上运行,则机器A需要设置为 ...

  9. SQL_Server_2005_函数大全(描述及实例)

    为了方便阅读,把函数分为四种类型,分别表述. SQL_Server_2005_字符串函数(描述及实例) 函数名称:ascii.char.charindex.difference.left.right. ...

  10. 解决ClickOnce签名过期问题(转载)

    原文地址:http://www.cnblogs.com/xuhaibiao/archive/2009/06/23/1509692.html 场景:用于生产环境的项目进行系统升级,在发布ClickOnc ...