※存储过程
存储过程是保存在数据库上的一段可执行代码。
1、定义存储过程的语法是:
Create procedure sp_name (参数..)
Begin
SQL语句
End;
2、调用它的方法:
Call sp_name(参数…); //空参时则括号中不填内容

3、演示
1)不带参数
定义(delimiter用于定义结束符):
DELIMITER $$
CREATE PROCEDURE p1()
BEGIN
INSERT INTO person2 VALUES('P05','李四',0);
SELECT * FROM person2;
END$$
DELIMITER ;
调用:
call p1();

2)带输入参数
DELIMITER $$
CREATE PROCEDURE p2(in id varchar(32), in nm varchar(30) )
BEGIN
INSERT INTO person2 VALUES(id,nm,0);
SELECT * FROM person2;
END$$
DELIMITER ;

call p2('P06','张飞');
CALL p2('P07','刘备');

3) 带输入、输出参数
定义:
DELIMITER $$
CREATE PROCEDURE p3(in id varchar(32), in nm varchar(30), out num int )
BEGIN
INSERT INTO person2 VALUES(id,nm,0);
SELECT count(*) into num FROM person2;
END$$
DELIMITER ;

调用:
CALL p3('P08','关羽',@aa); //一个@为用户变量,两个@为系统变量
输出返回值(输出参数)
SELECT @aa;

//输出系统变量“@@version”的值
SELECT @@VERSION--------我的是输出5.6.22-log

※查询内容区分大小写
mysql查询默认是不区分大小写的 如:
select * from table_name where a like 'a%'   
select * from table_name where a like 'A%'   
select * from table_name where a like 'a%'
select * from table_name where a like 'A%'
效果是一样的。
要让mysql查询区分大小写,可以:
select * from table_name where binary a like 'a%'  
select * from table_name where binary a like 'A%'   
select * from table_name where binary a like 'a%'
select * from table_name where binary a like 'A%'
也可以在建表时,加以标识 
create table table_name(
a varchar(20) binary
);

※事务: 一个事务只会有一个结果,要么成功,要么失败。
举例:
P09,'赵子龙' 一次买了两辆车,需要把赵子龙的信息存储到person2表,同时还要把两辆车的信息存储到car表-----两个表的存储动作就是一个事务,要么成功(两个表的信息都成

功存储), 要么失败(只要其中一个表的一条数据存储失败,其它表的信息都不能存储进去,如果存进去则要还原)。
类似的例子,还有:银行转账! 销售单和销售明细!

SQL演示:
START TRANSACTION; //开启事务
DELETE FROM person2 WHERE id='P04';
DELETE FROM person2 WHERE id='P05';
ROLLBACK/COMMIT; //回滚/提交-------------事物一旦进行了提交,数据就无法再回滚了;

START TRANSACTION; //开启事务
INSERT INTO person2 VALUES('P09','赵子龙','1');
INSERT INTO car VALUES('C007','BMW',50,'P09');
INSERT INTO car VALUES('C008','QQ',7,'P09');
ROLLBACK/COMMIT; //回滚/提交

DELETE FROM car WHERE id='C007';
DELETE FROM car WHERE id='C008';
DELETE FROM person2 WHERE id='P09';

※事务的隔离

mysql中的存储过程和事务隔离的更多相关文章

  1. mysql(函数,存储过程,事务,索引)

    函数 MySQL中提供了许多内置函数: 内置函数 一.数学函数 ROUND(x,y) 返回参数x的四舍五入的有y位小数的值 RAND() 返回0到1内的随机值,可以通过提供一个参数(种子)使RAND( ...

  2. mysql 视图 触发器 存储过程 函数事务 索引

    mysql 视图 触发器 存储过程 函数事务 索引 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,并可以将其当 ...

  3. MySQL中的存储过程、函数与触发器

    一.对待存储过程和函数的态度 优点: 1.存储过程只在创建时进行编译,sql语句则每次执行都需要编译.能提高数据库执行速度. 2.简单复杂操作结合事物一起封装. 3.复用性高. 4.安全性高,可指定存 ...

  4. mysql 中创建存储过程

    mysql中创建存储过程和存储函数虽相对其他的sql语言相对复杂,但却功能强大,存储过程和存储函数更像是一种sql语句中特定功能的一种封装,这种封装可以大大简化外围调用语句的复杂程度. 首先以表emp ...

  5. MySQL中的存储过程和函数使用详解

    一.对待存储过程和函数的态度 在实际项目中应该尽量少用存储过程和函数,理由如下: 1.移植性差,在MySQL中的存储过程移植到sqlsever上就不一定可以用了. 2.调试麻烦,在db中报一个错误和在 ...

  6. MySQL中的存储过程、游标和存储函数

    MySQL中的存储过程首先来看两个问题: 1.什么是存储过程? 存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存 ...

  7. Mysql 视图,触发器,存储过程,函数,事务

    视图 视图虚拟表,是一个我们真实查询结果表,我们希望将某次查询出来的结果作为单独的一个表,就叫视图,无法对图字段内容进行增删改. --格式: CREATE VIEW 视图名字 AS 操作; --比如: ...

  8. MySQL学习(五)事务隔离

    文章部分图片和总结来自参考资料,侵删 概述 MySQL的可重复读隔离级别,事务T启动的时候会创建一个视图read-view,之后事务T执行期间,即使有其他事务修改了数据,事务T看到的仍然跟在启动时看到 ...

  9. MySql中innodb存储引擎事务日志详解

    分析下MySql中innodb存储引擎是如何通过日志来实现事务的? Mysql会最大程度的使用缓存机制来提高数据库的访问效率,但是万一数据库发生断电,因为缓存的数据没有写入磁盘,导致缓存在内存中的数据 ...

随机推荐

  1. 探讨NSString和NSMutableString的内存问题以及copy和MutableCopy两个方法

    NSString: //main.m #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { ...

  2. python引用在函数传参时的体现以及可变与不可变对象的对比

    今天偶然看到 vamei 老师的博客 http://www.cnblogs.com/vamei/archive/2012/07/10/2582795.html 讲的是python动态类型以及引用的事儿 ...

  3. ios开发中常用的也是最基本的mysql语句

    MySQL常用基本SQL语句小结——(转) sql语言不经常用,每次再用都隔好久的时间,以致最基本的都想不起来了,只好转一篇记着= - 找的时候方便 SQL分类:  DDL—数据定义语言(CREATE ...

  4. js中的继承2--原型继承

    一. 原型与构造函数 Js所有的函数都有一个prototype属性,这个属性引用了一个对象,即原型对象,也简称原型.这个函数包括构造函数和普通函数,我们讲的更多是构造函数的原型,但是也不能否定普通函数 ...

  5. Javascript时间操作小结

    来源:http://www.ido321.com/847.html 在项目需要一个计时器,效果如下: js代码 1: /*获取当前时间*/ 2: function getCurrentDate() 3 ...

  6. 集群搭建必备:虚拟机之一实现Host-only方式上网

    Host-only模式实现联网得考虑如下配置过程: 1. 安装VMware-Workstation,安装虚拟机Linux(centos.ubuntu等)完毕: 2.设置虚拟机上网方式是Host-onl ...

  7. Delphi XE5 常用功具与下载

    1.Delphi XE5 正式版 http://altd.embarcadero.com/download/radstudio/xe5/delphicbuilder_xe5_win.iso http: ...

  8. Oracle-Oracle10 数据空间建立,导入,导出--oracle10g 删除步骤

    --以system/manager身份登录SQLPlus,并执行 ========================管理员登陆==================================== 登 ...

  9. SQL2005查询所有表的大小

    IF NOT EXISTS (SELECT * FROM [tempdb].sys.objects WHERE object_id = OBJECT_ID(N'[tempdb].[dbo].[tabl ...

  10. GridView多行标题行、改造标题行、自定义标题行完美版

    网上找了个找,最终还是自己做的比较靠谱,道理很简单,直接看代码 代码:   /// <summary> /// =================== 两行标题行 ============ ...