zoukankan      html  css  js  c++  java
  • 11.01 事务,视图,触发器,存储过程,函数,数据库备份

    事务

    事务指的是一组操作,要么执行成功,要么都执行失败

    '''
    例:
    	银行汇款,当我給朋友汇款的时候,我的银行存款已经扣除,他的银行存款未增加的时候断电了,怎么办?
    	可以使用事务解决这个问题
    '''
    

    事务使用

    start transaction;
    sql语句
    commit/rollback;
    

    commit:是提交,让事务的语句执行成功,
    rollback:是回滚,在语句内的所有任务回到起始位置.

    特性*******

    原子性(Atomicity):原子意为最小的粒子,即不能在分的事务,要么全部执行,要么全部取消
    一致性(Consistency):指事务发生前和发生后,数据的总额依然匹配
    隔离性(Isolation):就是,某个事务的操作对其它事务是不可见的
    持久性(Durability):当事务完成后,其影响应该2保留下来,不能撤销,只能通过"补偿性事务"来抵消之前的错误

    存储引擎*******

    InnoDB:相当于→保时捷引擎
    MyIsam:相当于→奔奔引擎
    建表的时候:

    create table user(
    	id int,
    	name varchar(32)
    )engine=Innodb charset utf8;
    

    mysql5.5以上,默认Innodb引擎
    mysql5.5以下,默认Myisam引擎

    引擎区别*******

    innodb支持事务,myisam不支持事务
    innodb支持行锁,myisam支持表锁

    视图

    增加视图

    create view 视图名 as SQL语句;
    例:

    create view 视图名 as select * from 表名 where 条件;
    

    删除视图

    drop view 视图名;

    触发器

    两张表:订单表,库存表
    场景:当下一个订单的时候,订单表需要增加一个记录,同时库存表需要减1,这两个操作是同时进行的.

    使用方法

    增加

    delimiter //
    create trigger 触发名 before insert on 表1 for each row begin
    	insert into 表2 (name) values ('aa');
    end //
    delimiter ;
    

    删除

    drop trigger 触发器名;

    存储过程

    就像一个sql函数

    创建

    delimiter //
    create procedure 函数名()
    begin
    	select * form 表名 where id = 2;
    end //
    delimiter ;
    

    使用方法

    call 函数名();

    删除

    drop procedure 函数名;

    函数

    类似于数据类型的内置方法
    char_length(srt):返回值为字符串str的长度,length()返回值为10,char_length()返回值为5
    concat(x1,x2,x3,…):字符串拼接,没有参数返回null
    等等

    数据库备份

    为了数据丢失后还能有备份数据,保证数据安全

    使用方法

    语法

    mysqldump -h 服务器 -u用户名 -p密码 数据库名 表名,表名…… #备份为名字是aaa.sql的文件

    单库备份

    mysqldump -u用户名 -p密码 数据库名 表名,表名…… #备份的名字:数据库名-表1-表2.sql

    多库备份

    mysqldump -u用户名 -p密码 --databases 数据库名1 数据库名2 mysql 数据库名3 #备份的名字:数据库名1_数据库名2_mysql_数据库名3.sql

    备份所有库

    mysqldump -u用户名 -p密码 --all-databases #备份名:all.sql

    重新导入

    source D:/所在磁盘地址/备份名;

  • 相关阅读:
    C++ calculate the time cost in 100 nanoseconds precision
    C++ append file via ofstream
    WCF Server Error in '/' Application.
    Webclient "The operation has timed out" and override webclient with customized timeout
    WPF implement SelectedCommand in MVVM via Interaction.Triggers
    将EDGE浏览器首页中的hao123删除的方法--干净的界面
    PHP 获取当前时间的下一个整点时间
    微信小程序添加空格
    为什么upload下的图片不存在,会报模块不存在的错误
    lnmp环境搭建
  • 原文地址:https://www.cnblogs.com/793564949liu/p/11787733.html
Copyright © 2011-2022 走看看