事务视图存储过程触发器数据备份

目录

  • 事务
  • 事务的特性
    • 原子性(Atomicity):
    • 一致性(Consistency):
    • 隔离性(Isolation):
    • 持久性(Durability):
  • 存储引擎
    • InnoDB :保时捷引擎
    • MyIsam:奔奔引擎
  • 视图
    • 使用
    • 增加视图
    • 删除视图
    • 触发器
  • 存储过程
    • 创建
  • 函数
  • 数据库的备份
    • 语法

      • 示列

事务

通俗的说,事物指一组操作,要么都执行成功,要么都执行失败

使用事务:
    start transactino
        sql语句
    commit/rowllback

# 演示:
mysql> select * from t1;

+----+------+--------+
| id | name | salary |
+----+------+--------+
|  1 | aa   |   1000 |
|  2 | bb   |   2000 |
|  3 | dd   |   3000 |
+----+------+--------+

mysql> start transaction;
mysql> update t1 set salary=100 where name='aa';
mysql> select * from t1;
+----+------+--------+
| id | name | salary |
+----+------+--------+
|  1 | aa   |    100 |
|  2 | bb   |   2000 |
|  3 | dd   |   3000 |
+----+------+--------+
3 rows in set (0.00 sec)
mysql> commit;

事务的特性

原子性(Atomicity):

原子意为最小的粒子,即不能再分的事务,要么全部执行,要么全部取消

一致性(Consistency):

指事务发生前和发生后,数据的总额依然匹配#

隔离性(Isolation):

简单点说,某个事务的操作对其他事务不可见的#

持久性(Durability):

当事务完成后,其影响应该保留下来,不能撤消,只能通过“补偿性事务”来抵消之前的错误

存储引擎

InnoDB :保时捷引擎

Innodb 支持事务,支持行锁,颗粒型查找

MyIsam:奔奔引擎

MyIsam 不支持事务,支持表锁

# 建表的时候
create table user (
    id int auto_increment primary key,
    name varchar(32) not null default'',
    salary int not null default 0
)engine=Innodb charset utf8

视图

使用

比如项目有100个SQL,其中80个SQL都是select * from user where name=‘xxx‘;

增加视图

create view 视图名 as SQL语句;

删除视图

drop view 视图名

触发器

# 两张表:
# 订单表     库存表
# 场景:
#   当我下一个订单的时候, 订单表中需要增加一个记录, 同时库存表中需要减1
#   这两个操作是同时发生的,  并且前一个操作出发后一个操作
#
# 使用方法:
#   增加:
        delimiter //
        create trigger 触发器名 before insert on t2 for each row
        begin
            insert into t3(name) values('aa');
        end//
        delimiter ;
### 当向tb1表中添加一条数据的同时, 向tb2表添加一条数据

#   删除
        drop trigger 触发器名称;

存储过程

像一个SQL函数

创建

delimiter //
create procedure p1()
bigin
    select * from user where id=2;
end//
delimiter ;

call p1()

函数

#       CHAR_LENGTH(str)
#           返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。
#           对于一个包含五个二字节字符集, LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。
#
#       CONCAT(str1,str2,...)
#           字符串拼接
#           如有任何一个参数为NULL ,则返回值为 NULL。

#       FORMAT(X,D)
#           将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形             式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。
#           例如:
#               SELECT FORMAT(12332.1,4); 结果为: '12,332.1000'

#       INSTR(str,substr)
#           返回字符串 str 中子字符串的第一个出现位置。

#       LEFT(str,len)
#           返回字符串str 从开始的len位置的子序列字符。

#       LOWER(str)
#           变小写

#       UPPER(str)
#           变大写

#       LTRIM(str)
#           返回字符串 str ,其引导空格字符被删除。

#       RTRIM(str)
#           返回字符串 str ,结尾空格字符被删去。

#       SUBSTRING(str,pos,len)
#           获取字符串子序列

#       LOCATE(substr,str,pos)
#           获取子序列索引位置

#       REPEAT(str,count)
#           返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。
#           若 count <= 0,则返回一个空字符串。
#           若str 或 count 为 NULL,则返回 NULL 。

#       REPLACE(str,from_str,to_str)
#           返回字符串str 以及所有被字符串to_str替代的字符串from_str 。

#       REVERSE(str)
#           返回字符串 str ,顺序和字符顺序相反。

#       RIGHT(str,len)
#           从字符串str 开始,返回从后边开始len个字符组成的子序列

数据库的备份

语法

mysqldump -h 服务器 -u用户名 -p密码 数据库名 表名,表名,...>aaa.sql

示列

# 单库备份
    mysqldump -uroot -p123 db1 > db.sql
    mysqldump -uroot -p123 table1 table2 >db1-table-table2.sql

# 多库备份
    mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql

# 备份所有库
    mysqldump -uroot -p123 --all-databases > all.sql

# 重新导入:
    mysql> source D:/test3.sql;

原文地址:https://www.cnblogs.com/hj59988326/p/11778733.html

时间: 2025-01-04 14:48:09

事务视图存储过程触发器数据备份的相关文章

MySQL笔记---视图,存储过程, 触发器的使用入门

大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只能停留在名称的阶段.最近看完了一本薄薄的小书叫<MySQL必知必会>,记了不少笔记,也自己上手实践了一番,总算是了解了些皮毛. 下面通过实例来具体了解这几个东西,首先我的样例表是这样的. 视图: 什么是视图? 视图是虚拟的表,本身并不包含数据,通过一个例子,来更好地理解视图: 假设上述表中,我需要

数据库MySQL之 视图、触发器、存储过程、函数、事务、数据库锁、数据库备份、事件

浏览目录 视图 触发器 存储过程 函数 事务 数据库锁 数据库备份 事件 一.视图 1.视图概念 视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 2.视图特点 视图的列可以来自不同的表,是表的抽象和逻辑意义上建立的新关系 视图是由基本表(实表)产生的表(虚表) 视图的建立和删除不影响基本表 对视图内容的更新(添加.删除和修改)直接影响基本表 当视图来自多个基本表时,不允许添加,修改和删除数据 3.视图的本质 视图是根据SQL语句获取动态的数据集,并为其命

MySQL——视图、触发器、存储过程、函数、事物、数据库锁、数据库备份

一.视图 视图:是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据. 视图有五个特点: 1.视图的列可以来自不同的表,是表的抽象和逻辑意义上简历的新关系. 2.视图是由基本表(实表)产生的表(虚表). 3.视图的建立和删除不影响基本表. 4.对视图内容的更新(添加.删除和修改)直接影响基本表. 5.当视图来自多个基本表时,不允许添加和删除数据. 1.创建视图 create view 视图名称 as sql 查询语句 2.使用视图 select * from 视图名

mysql数据库之 存储引擎、事务、视图、触发器、存储过程、函数、流程控制

目录 一.存储引擎 1.什么是存储引擎? 2.mysql支持的存储引擎 3. 使用存储引擎 二.事务 三.视图 1.什么是视图 2.为什么要用视图 3.如何用视图 四.触发器 为何要用触发器 创建触发器语法 五.存储过程 六.函数 七.流程控制 八.数据库备份(运维方向) 一.存储引擎 1.什么是存储引擎? mysql中建立的库===>文件夹 库中建立的表===>文件 现实生活中我们用来存储数据的文件有不同的类型,每种文件类型对应各自不同的处理机制:比如处理文本用txt类型,处理表格用exce

python-day48--mysql之视图、触发器、事务、存储过程、函数

一.视图(不推荐使用) 1).视图是一个虚拟表(非真实存在) 2).使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql> select * from course; +-----+--------+------------+

视图、触发器、事务、存储过程、函数

阅读目录 视图  view 触发器  trigger 事务  transaction 存储过程   procedure 函数 流程控制 一: 视图  view 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数

mysql七:视图、触发器、事务、存储过程、函数

阅读目录 一 视图 二 触发器 三 事务 四 存储过程 五 函数 六 流程控制 一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,

Mysql(七):视图、触发器、事务、存储过程、函数

一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql>

DAY11-MYSQL视图、触发器、事务、存储过程、函数

一 视图 视图是一个虚拟表(非真实存在),其本质是[根据SQL语句获取动态的数据集,并为其命名],用户使用时只需使用[名称]即可获取结果集,可以将该结果集当做表来使用. 使用视图我们可以把查询过程中的临时表摘出来,用视图去实现,这样以后再想操作该临时表的数据时就无需重写复杂的sql了,直接去视图中查找即可,但视图有明显地效率问题,并且视图是存放在数据库中的,如果我们程序中使用的sql过分依赖数据库中的视图,即强耦合,那就意味着扩展sql极为不便,因此并不推荐使用 #两张有关系的表 mysql>