Mysql-学习笔记(==》存储过程 九)
1、存储过程概念
在大型数据库系统中,一组为了完成特定功能的sql语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
2、建立存储过程
delimiter//
create procedure 过程名(参数名 参数类型)
begin
存储过程要执行的语句;
end//
delimiter;
建立添加数据的存储过程
修改数据的存储过程
删除...
查询...
某些项目众的业务处理的存储过程
3、存储过程使用的语句
if then
end if;
while do
end while;
repeat 循环语句 1+2+3+4+...+100=5050;
case switch
调用存储过程
call 过程名(实参表)
删除存储过程
drop procedure 过程名;
------------------------------------
USE db;
CREATE TABLE sss(
sid INT UNSIGNED NOT NULL AUTO_INCREMENT,
sname VARCHAR(10) NOT NULL,
sscore TINYINT UNSIGNED,
saddress VARCHAR(30),
stel BIGINT UNSIGNED,
PRIMARY KEY(sid)
)ENGINE=MYISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;
INSERT INTO sss VALUES(NULL,'甄子丹',90,'北京',18298375932);
INSERT INTO sss VALUES(NULL,'李连杰',50,'湖北省武汉市',18298375932);
INSERT INTO sss VALUES(NULL,'杨幂',20,'上海',18298375932);
INSERT INTO sss VALUES(NULL,'李晨',30,'济南',18298375932);
SELECT * FROM sss;
成绩在20-59之间的加分
地址包含哪个地区的字符的 加多少分
-- 查看db数据库中所有的存储过程信息
SHOW PROCEDURE STATUS WHERE Db='db';
CALL sssadd(6);-- 传参数(相当于调用方法)
-- 建立存储过程(相当于java的类)
DELIMITER//
CREATE PROCEDURE sssadd(i INT)
BEGIN
DECLARE sc TINYINT;
DECLARE sd VARCHAR(30);
SELECT sscore, saddress INTO sc,sd FROM sss WHERE sid=i;
IF sc>=20 AND sc<60 THEN
IF sd LIKE '%上海%' THEN
UPDATE sss SET sscore=sscore+1 WHERE sid=i;
END IF;
IF sd LIKE '%济南%' THEN
UPDATE sss SET sscore=sscore+5 WHERE sid=i;
END IF;
END IF;
END//
DELIMITER;
DROP PROCEDURE sssadd;
-- 另外一种if then.. elseif... then else... end if
DELIMITER//
CREATE PROCEDURE sssadd(i INT)
BEGIN
DECLARE sc TINYINT;
DECLARE sd VARCHAR(30);
SELECT sscore, saddress INTO sc,sd FROM sss WHERE sid=i;
IF sc>=20 AND sc<60 THEN
IF sd LIKE '%上海%' THEN
UPDATE sss SET sscore=sscore+1 WHERE sid=i;
ELSEIF sd LIKE '%济南%' THEN
UPDATE sss SET sscore=sscore+5 WHERE sid=i;
ELSE
UPDATE sss SET sscore=sscore+3 WHERE sid=i;
END IF;
END IF;
END//
DELIMITER;
-- 条件循环 declare 声明变量 set 设置变量
DELIMITER//
CREATE PROCEDURE ddd()
BEGIN
DECLARE n INT;
SET n=0;
SET @x=0;
REPEAT
SET @x=@x+1;
SET n=n+1;
UNTIL n>100 END REPEAT;
END//
DELIMITER;
DROP PROCEDURE ddd;
CALL ddd();
SELECT @x;
Mysql-学习笔记(==》存储过程 九)的更多相关文章
- Mysql学习笔记(九)索引查询优化
PS:上网再次看了一下数据库关于索引的一些细节...感觉自己学的东西有点少...又再次的啃了啃索引.... 学习内容: 索引查询优化... 上一章说道的索引还不是特别的详细,再补充一些具体的细节... ...
- MySQL学习笔记——存储过程
- mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记
mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...
- 我的MYSQL学习心得(九) 索引
我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...
- MySQL学习笔记一
MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...
- MySQL学习笔记-MySQL体系结构总览
MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件 ...
- 【mysql学习笔记整理】
/*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...
- MySQL学习——操作存储过程
MySQL学习——操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...
- 数据库MySQL学习笔记高级篇
数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...
- 一千行MySQL学习笔记 (转)
出处: 一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...
随机推荐
- js拖拽换位置,使用数组方法
之前一直需要一个拖拽效果,网上找了些感觉不是不好用,就是写的有些地方让人不太满意,下面贡献一个自己写的.亲测可用,拖动后可互换位置!(带有注释) 方法/步骤 CSS代码部分 <style> ...
- C++之路进阶——bzoj2152(聪聪可可)
F.A.Qs Home Discuss ProblemSet Status Ranklist Contest ModifyUser hyxzc Logout 捐赠本站 Notice:由于本OJ建立在 ...
- mysql bin log日志
装mysql,运行一段时间后,在mysql目录下出现一堆类似mysql-bin.000***,从mysql-bin.000001开始一直排列下来,而且占用了大量硬盘空间,高达几十个G. 对于这些超大空 ...
- sql server 查询性能最差的sql语句
SELECT TOP 10 TEXT AS 'SQL Statement' ,last_execution_time AS 'Last Execution Time' ,(total_logical_ ...
- springmvc处理ajax请求
1.controller将数据封装成json格式返回页面 @RequestMapping("/dataList") public void datalist(CsoftCunsto ...
- Oracle存储过程总结
1.存储过程结构 1.1 第一个存储过程 create or replace procedure proc1( para1 varchar2, para2 out varchar2, para3 in ...
- DFT basics
DFT测试中,最重要的部分还是sequential circuit的内部状态的测试. 起初ad hoc的方法用来提高testability,可以提高局部的coverage,但并不是一个系统性的方法. ...
- 使用 nano 的时候提示找不到 libncursesw.so.5 这个共享库
由于拿nano来练习pacman这个包管理系统,也就是卸了装,装了卸.但是后来当我想用 nano 编辑文件的时候,系统提示标题上说的这错误. 不知道做了什么,难道是误删了什么东西...后来几番搜索,用 ...
- nginx在windwos中的使用
本文章参考了 nginx for windows的介绍:http://nginx.org/en/docs/windows.html 你从官网上下载到的是一个 zip 格式的压缩包,首先要把压缩包解压. ...
- 使用node-webkit开发exe窗口程序
首发:个人博客,更新&纠错&回复 ====关于原生程序与壳中程序的议论begin==== 在所有用户windows机器上都能直接跑的程序,如果不采用微软系的语言,如VB,C++,C#等 ...