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-学习笔记(==》存储过程 九)的更多相关文章

  1. Mysql学习笔记(九)索引查询优化

    PS:上网再次看了一下数据库关于索引的一些细节...感觉自己学的东西有点少...又再次的啃了啃索引.... 学习内容: 索引查询优化... 上一章说道的索引还不是特别的详细,再补充一些具体的细节... ...

  2. MySQL学习笔记——存储过程

  3. mysql basic operation,mysql总结,对mysql经常使用语句的详细总结,MySQL学习笔记

    mysql> select * from wifi_data where dev_id like "0023-AABBCCCCBBAA" ; 1.显示数据库列表.show d ...

  4. 我的MYSQL学习心得(九) 索引

    我的MYSQL学习心得(九) 索引 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类 ...

  5. MySQL学习笔记一

    MySQL 学习笔记 一 一.数据库简单介绍 1. 按照数据库的发展时间顺序,主要出现了以下类型数据库系统: Ø 网状型数据库 Ø 层次型数据库 Ø 关系型数据库 Ø 面向对象数据库 上面4中数据库系 ...

  6. MySQL学习笔记-MySQL体系结构总览

    MySQL体系结构总览 不管是用哪种数据库,了解数据库的体系结构都是极为重要的.MySQL体系结构主要由数据库和数据库实例构成. 数据库:物理操作系统文件或者其它文件的集合,在mysql中,数据库文件 ...

  7. 【mysql学习笔记整理】

    /*mysql学习笔记整理*/ /*常用的数据库操作对象*/ #库的操作#创建#数据库的创建USE mysql;CREATE DATABASE db_x;#删除#删除数据库DROP DATABASE ...

  8. MySQL学习——操作存储过程

    MySQL学习——操作存储过程 摘要:本文主要学习了使用DDL语句操作存储过程的方法. 了解存储过程 是什么 存储过程是一组为了完成特定功能的SQL语句集合. 使用存储过程的目的是将常用或复杂的工作预 ...

  9. 数据库MySQL学习笔记高级篇

    数据库MySQL学习笔记高级篇 写在前面 学习链接:数据库 MySQL 视频教程全集 1. mysql的架构介绍 mysql简介 概述 高级Mysql 完整的mysql优化需要很深的功底,大公司甚至有 ...

  10. 一千行MySQL学习笔记 (转)

    出处:  一千行MySQL学习笔记 /* 启动MySQL */ net start mysql /* 连接与断开服务器 */ mysql -h 地址 -P 端口 -u 用户名 -p 密码 /* 跳过权 ...

随机推荐

  1. Java基础(62):Eclipse调试(Debug)的10条技巧(转)

    在看这篇文章前,我推荐你看一下Eclipse 快捷键手册 先提三点 不要使用System.out.println作为调试工具 启用所有组件的详细的日志记录级别 使用一个日志分析器来阅读日志 1.条件断 ...

  2. react tab

    <!DOCTYPE html> <html> <head> <script src="js/react.js"></scrip ...

  3. 轻量linux-Crunch bang

    主页地址:http://crunchbang.org crunch bang11昵称 wheezy crunchbang 11 基于 debian7

  4. android 自定义view详解

    1.自定义View前首先要了解一下View的方法,虽然有些不一定要实现. 分类 方法 描述 创建 Constructors View中有两种类型的构造方法,一种是在代码中构建View,另一种是填充布局 ...

  5. oracle中清空表数据的两种方法

    1.delete from t 2 .truncate table t 区别: 1.delete是dml操作:truncate是ddl操作,ddl隐式提交不能回滚 2.delete from t可以回 ...

  6. SVN使用(二)

    TortoiseSVN是windows平台下Subversion的免费开源客户端. 一般我们都是先讲讲服务器的配置,然后再讲客户端的使用,但是在TortoiseSVN上,却可以反过来.因为,如果你的要 ...

  7. android简单的夜间模式

    现在android项目values下打 attrs.xml <?xml version="1.0" encoding="utf-8"?> <r ...

  8. Maven3.x 插件开发入门

    Maven工具有很多插件,各种各样的插件,让我们开发调试过程中非常方便,但是终究是有你想要的但是现目前插件不能满足的(可能性非常非常低),这个时候就需要使用其他的替代工具,或者是自己来开发一个Mave ...

  9. ExtJS4.2 根据数据库记录构建树形菜单

    背景:最近用ExtJS4.2做一个系统,需要在前端展示资源菜单,为树形结构,该树形结构是从数据库动态加载的. ExtJS的树形结构大致有两种情况: 1.静态树形结构,此处不多说,看API就能简单明白: ...

  10. 深拷贝 vs 浅拷贝 释放多次

    如果类中有需要new的数据,那么一定要注意delete; 如果只free一次,但是提示free多次,一定要注意了,有可能是因为你没有定义拷贝函数! 以我的亲身经历来说: operater *(mycl ...