mysql中事务、视图、索引、备份和恢复

本文介绍了数据库事务的ACID属性及其操作方法,并详细讲解了视图的创建、使用及注意事项,还包括索引管理和数据库备份等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.事务的四个属性,简称ACID属性

    原子性:事务是一个完整的操作,事务的各部操作是不可分的(原子性的),要么都执行,要么都不执行

    一致性:当事务完成时,数据必须处于一致状态

    隔离性:并发事务之间彼此隔离、独立,它不应该以任何方式依赖于或影响其他事务

    持久性:事务完成之后,它对数据库的修改被永久保持


2.如何创建事务

开始事务
BING;
或
start transaction;

提交事务
commit;

回滚(撤销)事务
rollback;
从张三的账户转出500元,存入李四的账户中
 BEGIN;
Update bank set currentmoney=currentmoney-500 where customername='张三';

Update bank set currentmoney=currentmoney+500 where customername='李四';
commit;


3.自动关闭和开启事务

    关闭/开启自动提交状态

set autocommit=0/1;

    值为0:关闭自动提交;

    值为1:开启自动提交;

4. 视图的用途

       筛选表中的行

       防止未经许可的用户访问敏感数据

       降低数据库的复杂程度

       将多个物理数据库抽象为一个逻辑数据库


5.如何创建视图

    

创建视图
create view view_name AS
<select 语句>;

删除视图
Drop view [if exists] view_name;

查看视图
select 字段1,字段2 ...from view_name;


6.视图注意事项

    视图中可以使用多个表

    一个视图可以嵌套另一个视图

    对视图数据进行添加、更新和删除操作直接影响所引用表中的数据

    当视图数据来自多个表时,不允许添加和删除数据

查看所有视图

use information_schema;
select * from view\G;

使用视图修改数据会有许多限制,一般在实际开发中视图仅用作查询


、.索引

    索引是一种有效组合数据的方式,为快速查找指定记录

    作用:大大提高数据库的检索速度  改善数据库性能


如何创建索引/删除索引

    创建索引

create index index_name on table_name(column_name[length]);

    删除索引

drop index index_name on table_name;

删除表时,该表的索引同时会被删除

  

在student表的studentname列创建普通索引
use myschool;
create index index_student_student_name on student(studentname);


 查看索引

show index from table_name;

Table:创建索引的表
Non_unique:索引是否非唯一
Key_name:索引的名称
Column_name:定义索引的列字段
Seq_in_index:该列在索引中的位置
Null:该列是否能为空值
Index_type:索引类型


8.数据库的备份

    mysqldump命令——一个常用备份工具

mysqldump -uroot -p >filename.sql

恢复数据库

   方法一:使用MySQL命令恢复数据库

mysql -u usename(用户名) -p[dbname](数据库名)<filename.sql(备份文件名)

注意:1.MySQL 为DOS命令
      2.在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在恢复数据库过程将会出错
使用备份文件将myschool数据库中student表信息恢复到schoolDB数据库中

mysql -u root -p schoolIDB<d:.....

    方法二:使用source命令恢复数据库

source filename;

注意:登陆MySQL服务器后使用
      执行该命令前,先创建并选择恢复后的目标数据库

例: 
create database myschoolIDB2; #创建数据库
USE myschoolIDB2 #选择数据库
source d:\.... #恢复数据库


9.表数据导出到文本文件

    

select * from tablename[where contion] into outfile filename [option]

例:select * from result where subjectno=(select subjectno from subject where subjectname='Logic java')
into outfile d:/.....;

LOAD data infile filename into table tablename[option] #文本文件导入数据表

LODA DATA infile d:/..... INTO TABLE result;  #将数据从文本文件导入到myschoolIDB的result表



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值