首页 > 技术文章 > mysql事务 mysql的存储过程

wyingli 2017-06-05 14:11 原文

engine=innodb;表类型  必须是此种表类型才能支持事务

 

begin    或者start transaction 开始事务

commit   提交事务(关闭事务) 

rollback   放弃事务(关闭事务)

char 固定长度  varchar 不固定长度;

AUTO_INCREMENT 自增字段

 

使用delimiter创建存储过程:

定义:简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能;

有哪些特性:有输入输出参数,可以声明变量,有if/else, case,while等控制语句,通过编写存储过程,可以实现复杂的逻辑功能;

创建一个简单的存储过程:

DELIMITER ;;
CREATE PROCEDURE `proc_adder`(IN a int, IN b int, OUT sum int)
BEGIN
    
    DECLARE c int;  //声明变量
    if a is null then set a = 0; 
    end if;
  
    if b is null then set b = 0;
    end if;
set sum = a + b; //set 相当于return END ;; DELIMITER ;
set @b=5;
call proc_adder(2,@b,@s);  //调用
select @s as sum;

删除存储过程:
DROP PROCEDURE IF EXISTS porcedureName; -- 没有括号() 存储过程用create procedure 创建, 业务逻辑和sql写在begin和end之间。mysql中可用call porcedureName ();来调用过程。
存储过程insert

mysql创建自定义函数

语法:

create trigger triggerName

after/before insert/update/delete on 表名

for each row   #这句话在mysql是固定的

begin

sql语句;

end;

 

 

mysql索引

主键索引  会设为 int 而且是 AUTO_INCREMENT自增类型的

唯一索引  CREATE UNIQUE INDEX account_UNIQUE_Index ON `award`(`account`); 

单列索引(普通索引)  ALTER TABLE award ADD INDEX account_Index(`account`); 

        或者  CREATE INDEX account_Index ON `award`(`account`);

        一个索引只包含一个列,一个表可以有多个单列索引.

组合索引(2个或以上)  CREATE INDEX nickname_account_createdTime_Index ON `award`(`nickname`, `account`, `created_time`);

  从左到右索引顺序:(nickname) (nickname,account)(nickname,account,created_time)

  不能跳过某个字段来进行查询,这样利用不到索引;

  explain select * from `award` where nickname='aa';   //explain相当于console调试

全文索引:

使用where like的时候。%放在后面是index索引  where nickname='aa%';

ALTER TABLE tablename ADD FULLTEXT(column1, column2)


使用索引的优点和缺点:
优点:
1.可以通过建立唯一索引或者主键索引,保证数据库表中每一行数据的唯一性.
2.建立索引可以大大提高检索的数据,以及减少表的检索行数
3.在表连接的连接条件 可以加速表与表直接的相连 
4.在分组和排序字句进行数据检索,可以减少查询时间中 分组 和 排序时所消耗的时间(数据库的记录会重新排序)
5.建立索引,在查询中使用索引 可以提高性能
缺点:
1.在创建索引和维护索引 会耗费时间,随着数据量的增加而增加
2.索引文件会占用物理空间,除了数据表需要占用物理空间之外,每一个索引还会占用一定的物理空间
3.当对表的数据进行 INSERT,UPDATE,DELETE 的时候,索引也要动态的维护,这样就会降低数据的维护速度,
(建立索引会占用磁盘空间的索引文件。一般情况这个问题不太严重,但如果你在一个大表上创建了多种组合索
引,索引文件的会膨胀很快)。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

推荐阅读