《使用Java实现数据库编程》Lesson5 事务、视图、索引、备份和恢复

事务(Transaction):

是指将一系列数据操作捆绑成为一个整体进行统一管理。

事务是作为单个逻辑工作单元执行的一系列操作。一个逻辑工作单元必须有四个属性:

1.原子性(Atomicity)

事务里的各元素是不可分的,所有元素必须作为一个整体提交或回滚。如果事务中有任何元素失败,则整个事务都将失败。

2.一致性(Consistency)

事务完成的时候数据必须保持一致状态。

3.隔离性(Isolation)

一个事务的操作及使用数据对其它事务是隔离的,事务之间不能互相干扰

4.持久性(Durability)

事务成功提交后,事务对数据库的改变是永久性的。接下来的其它任何操作或者古筝都不会对其结果有任何影响。 
执行事务:

1.执行事务的语法

(1)开始事务

BEGIN;

START TRANSACTION;

(2)提交事务

COMMIT;

(3)回滚(撤销)事务

ROLLBACK;

2.设置自动提交关闭或开启

语法:

SET autocommit = 0|1;

值为0:关闭自动提交

值为1:开启自动提交



视图

另一种查看数据库中一个或多个表中数据的方法。

1.创建和使用视图

(1)使用SQL语句创建视图

CREATE VIEW 视图名
AS
<SELECT 语句>;

(2)使用SQL语句删除视图

DROP VIEW [IF EXISTS] 视图名;

(3)使用SQL语句查看视图数据

SELECT 字段1,字段2,````` FROM view_name;

(4)使用视图注意事项

1)每个视图可以使用多个表。

2)与查询相似,一个试图可以嵌套另一个视图,但最好不要超过三层。

3)对视图数据进行添加,更行和删除操作直接引用表中的数据。

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



索引

索引分类

1.普通索引

允许在定义索引的列中插入重复值和空值。唯一的任务是加快对数据的访问速度。

2.唯一索引

不允许两行具有相同的索引值

3.主键索引

唯一索引的特殊类型。在数据库关系图中为表定义一个主键时会自动创建主键索引。要求主键中的每个值都是非空、唯一的。

4.复合索引

在创建索引时,并不是只能对其中一列创建索引,与创建主键一样,可以将多个列组合作为索引。需要注意:只有在查询中使用了组合索引最左边字段是,索引才会被使用,即第一个字段作为前缀的集合。

5.全文索引

在定义索引的列上支持值的全文查找,允许在这些索引列中插入重复值和空值。

6.空间索引

对空间数据类型的列建立的索引。必须将其声明为NOT NULL。


创建索引

语法:

CREATE [UNIQUE|FULLTEXT|SPQTIAL]INDEX index_name
ON table_name (column_name[length]```);

UNIQUE|FULLTEXT|SPQTIAL:分别表示唯一索引、全文索引和空间索引,为可选参数。

index_name:指定索引名。

table_name:指定创建索引的表名。

column_name:指定需要创建索引的列。

length:指定索引长度,可选参数,只有字符串类型才能指定索引长度。


删除索引

语法:

DROP INDEX index_name ON table_name;


查看索引

语法:

SHOW INDEX FROM table_name;




数据库的备份和恢复

使用mysqldump命令备份数据库

mysqldump命令格式

语法:

mysqldump -u uesrname -h host -p password dbname[tbname[,tbname2```]]>filename.sql

username表示用户名

host表示登录用户的主机名称,如本机为主机可省略

password表示登录密码

dbname为需要备份的数据库

tbname为需要备份的数据表,可指定多张表。为可选项,如备份整个数据库则此项省略

filename.sql表示备份文件的名称


mysqldump提供了许多参数,包括用于调试和压缩的。以下帮助命令可以获得当前版本的完整选项列表

mysqldump --help


使用mysql命令恢复数据库

mysql -u uesrname -p [dbname] < filename.sql

username表示用户名

dbname表示数据库名

filename.sql为数据库备份后的文件


如果已经登录了MySQL服务器,也可以使用source命令恢复数据库。

语法:

source filename;


通过复制文件实现数据备份和恢复

可以直接复制MySQL数据库的存储目录及文件进行备份。


表数据导出到文本文件

通过对表数据的导出和导入,可以实现MySQL数据库服务器与其他数据库服务器间移动数据。

数据导出

语法:

SELECT columnlist FROM tablename
   [WHERE contion]
   INTO OUTFILE 'filename'[OPTION];


文本文件导入到数据表

语法:

LOAD DATA INFILE filename INTO TABLE tablename[POTION];

filename用来指定文本文件的路径和特征

tablename用来指定导入表的名称



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值