mysql 外建扩展 回滚

1外建扩展
1 级联动作
1cascade 
数据级联更新
on delete cascade on update cascade 当主表删除记录 或更改参照字段的值时 从表会级联更新 
2 restrict 
on delete restrict on update restrict 
1当主表 删除记录时,如果 从表中有相关联 记录 则 不允许 主表删除
2 当主表 更改主键字段值时,如果 从表 有相关记录 则不允许更改


3 set null
on delete set null on update set null
1主表 删除记录时,从表外键字段值变为null 
2当 主表 更改主键字段值时,从表外键字段值变为 null 




4 no action 
同 restrict,都是立即检查 外键限制 
2 数据备份与恢复 linux 终端操作
1数据 备份
1语法
mysqldump -u用户名 -p 源库名 > 路径/xxx.sql
2 示例
1 备份 db4库 mysqldump -uroot -p db4> /home/tarena/aid1711/db.sql



ctrl+shift+t 加 终端




3 源库名的表示方式
all-databases 备份所有库
mysqldump -uroot -p alldatabases > /home/tarena/mydata/mysql.sql
库名       指定单个库
b 库1 库2 ..  备份多个库
mysqldump -uroot -p db1 ord > /home/tarena/mydata/db1_ord.aql
mysqldump -uroot -p -B db1 bd2 > /home/tarena/mydata/db1_db2.sql
库名 表名    备份指定库 的指定表



2 数据恢复
1语法
mysql -u用户名 -p 目标库名 < 路径/xxx.sql
示例
1 恢复 db4库
mysql -uroot -p db4 < /home/tarena/mydata/db4.sql
注意:
在数据恢复时 如果要恢复的库 不存在,则先要 创建 空库




2 恢复所有 的库
mysql -uroot -p < /home/tarena/mydata/mysql.sql
3 从mysql.sql 中恢复db4 mysql -uroot -p db4 --one-database < /home/tarena/mydata/mysql.sql
注意
在数据恢复时 如果要恢复的库不存在,则先要创建空库
3 索引 index
1 定义
对数据库中 的一列 或者 多列的值 进行排序的一种结构
以 二叉树的结构 btree 方式 索引
2 优点
可以加快数据的检索速度
  缺点
1当对表中的数据进行增加,删除和修改的时候,索引可以动态维护,降低了数据的维护速度
2 索引需要占用物理空间




4索引类型
1普通索引 index
4 索引的使用规则 
1 一个表中可以有多个index字段
2 字段的值可以有重复,且可以为 null值
3 经常把做查询条件的字段设置为index 字段
4 index 字段的key 标志是 mul
key 标志 总结
‘啥也没有‘ pri 主键 uni 唯一 mul 普通索引
1创建 
1创建时创建 index(字段名1),index(字段名2)
create table t1(id int, name char(20) ,index(id),index(name)); mul  索引 key
2 在已有表中 创建 index
 语法
create index 索引名 on 表名(字段名);
alter table t1 add age tinyint unsigned;
create index age on t1(age);
注意:
索引名 一般和字段名一样 
3 查看普通索引
1 desc 表名  查看key标志 为mul
2 show index from 表名;


4 删除索引
drop index 索引名 on 表名;
注意:
删除 普通索引 只能一个一个删除
drop index id on t1;
drop index name on t1;
2 唯一索引


3主键索引
4 外键索引
4 事务和事务回滚 
1 事务定义
一件事从开始发生到结束的整个过程
2 作用
确保数据的一致性
3 属性
1原子性 :一个事务是不可分割的工作单位,事务中的各个操作 要么都做,要么都不做
2一致性:事务必须一个一致性状态到另一个一致性状态
3隔离性:一个事务的执行不能被其他并发的事务干扰
4 持久性:一个事务一旦提交,它对数据库中数据的改变 就是永久性的
注意:
1mysql 中默认sql 语句的结果 会自动commit 到数据库
2 开始写start transaction,自动 commit 会被禁用 ,直到 我们用 commit ;或者 rollback; 终止这个 transaction 
格式:
mysql>start transaction;
mysql>sql 语句1
mysql>sql 语句2
mysql>commit ;或者 rollback;
注意 :
rollback 回滚只针对于对表记录的操作,增,删,改对库和表的操作 无效  
示例 :
ccb 建设银行
create table ccb(name char(20),money int); insert into ccb
values('zhangsan',10000);
icbc 
create table icbc(name char(20),money int); insert into icbc values('lisi',4000);




start transaction;#开始转账
update ccb set money=5000 where name='zhangsan';# 赚钱
update icbc set money=9000 where 工行断电了;#宕机
rollback;#回滚
commit;# 转账成功








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值