视图,索引,事务,备份与还原

视图,索引,事务,备份与还原视图视图就是一张虚拟表表示一张表的部分或多找表的综合数据它的结构和数据是建立在对表的查询的基础上视图不存放数据数据存放在视图所引用的原始表一个原

大家好,欢迎来到IT知识分享网。

视图,索引,事务,备份与还原

视图

  • 视图就是一张虚拟表表示一张表的部分或多找表的综合数据它的结构和数据是建立在对表的查询的基础上
  • 视图不存放数据数据存放在视图所引用的原始表
  • 一个原始表根据不同的用户需求可以创建不同的视图

好处

  • 筛选表中的数据
  • 防止未经许可的用户访问敏感数据
  • 降低数据库的复杂程度
  • 将多个物理的数据库抽象成一个逻辑的数据

语法

创建

create view 视图名 as select语句 

使用:作为表使用

删除

drop view 视图名 

视图使用的注意事项

– 视图中可以使用多个表 – 一个视图可以嵌套另一个视图 – 对视图数据进行添加、更新和删除操作直接影响所引用表中的数据 – 当视图数据来自多个表时,不允许添加和删除数据 – 使用视图修改数据会有许多限制,一般在实际开发中视图仅用作查询

索引

– 索引是一种有效组合数据的方式,为快速查找到指定记录 – 作用 – 大大提高数据库的检索速度 – 改善数据库性能 – MySQL索引按存储类型分类 – B-树索引:InnoDB、MyISAM均支持 – 哈希索引

常用索引类型

– 普通索引 – 基本索引类型 – 允许在定义索引的列中插入重复值和空值 – 唯一索引 – 索引列数据不重复 – 允许有空值 – 主键索引 – 主键列中的每个值是非空、唯一的 – 一个主键将自动创建主键索引 – 复合索引 – 将多个列组合作为索引 – 全文索引 – 支持值的全文查找 – 允许重复值和空值 – 空间索引 – 对空间数据类型的列建立的索引

索引的使用

– 创建索引

 CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name ON table_name (column_name[length]…); 

– 删除所有

 DROP INDEX index_name ON table_name; -- 删除表时,该表的所有索引同时会被删除 

建索引的指导原则

– 按照下列标准选择建立索引的列 – 频繁搜索的列 – 经常用作查询选择的列 – 经常排序、分组的列 – 经常用作连接的列(主键/外键) – 请不要使用下面的列创建索引 – 仅包含几个不同值的列 – 表中仅包含几行

事务

– 为什么需要事务?转账问题

什么是事务

– 事务(TRANSACTION)是作为单个逻辑工作单元执行的一系列操作 – 多个操作作为一个整体向系统提交,要么都执行、要么都不执行 – 事务是一个不可分割的工作逻辑单元

事务的特性

– 原子性(Atomicity):事务是一个完整的操作,事务的各步操作是不可分的(原子的),要么都执行,要么都不执行 – 一致性(Consistency):当事务完成时,数据必须处于一致状态 – 隔离性(Isolation):并发事务之间彼此隔离、独立,它不应以任何方式依赖于或影响其他事务 – 持久性(Durability):事务完成后,它对数据库的修改被永久保持

事务的策略

– 默认情况下,每条单独的SQL语句视为一个事务 – 关闭默认提交状态后,可手动开启、关闭事务 – 关闭/开启自动提交状态

 SET autocommit = 0|1; -- 值为0:关闭自动提交 -- 值为1:开启自动提交 

– 关闭自动提交后,从下一条SQL语句开始则开启新事务,需使用COMMIT或ROLLBACK语句结束该事务

事务的使用

– 开始事务:

 BEGIN ; 或 START TRANSACTION; 

– 提交事务:

 COMMIT ; 

– 回滚事务:

 ROLLBACK ; 
数据库的备份

– 使用mysqldump命令备份数据

 mysqldump [options] –u username –h host –ppassword dbname[tbname1[,tbname2……]]>filename.sql 

– 使用mysql命令恢复数据库

 mysql –u username –p [dbname] < filename.sql 

– 1. mysql为DOS命令 – 2.在执行该语句之前,必须在MySQL服务器中创建新数据库,如果不存在恢复数据库过程将会出错 – 使用source命令恢复数据库 – 通过复制文件实现数据备份和恢复 – 优点:操作简单 – 缺点: – 复制数据前停止服务 – 不适合InnoDB数据库 – MySQL版本不同不兼容

– 表数据导出到文本文件,语法:

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

– 将文本文件中的数据导入到表中,语法:

 LOAD DATA INFILE filename INTO TABLE tablename [OPTION] 

– 导入数据前应确保目标表已存在!

– 使用工具navicat备份与导入 – 对着数据库,右键转储 – 对着数据库,右键运行

课后练习

– 创建一个银行账户表 – uid 主键自增 – uname 用户名 – upsw 密码 – yue 余额 – 创建一个日志表 – lid 主键自增 – fromuid 外键,从哪个账户转出去 – touid 外键, 转到哪个账户 – qian 转账钱数 – 为账户表增加两行数据 – 执行正常转账操作,并增加一条日志记录,注意使用事务保证逻辑的正确,结束前提交事务 – 执行错误的逻辑,然后回滚事务 – 使用mysqldump备份数据 – 使用mysql恢复数据 – 使用select方式备份数据

有任何问题私信小编!

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/56684.html

(0)

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信