My SQL第五章 事务、视图、索引、备份和恢复

一、事务

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

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

3.如何创建事务
(1).开始事务

BEGIN;
或
START TRANSACTION;

(2).提交和回滚

COMMIT;
ROLLBACK;

(3).使用事务模拟转账过程

BEGIN;
UPDATE bank SET bmoney=bmoney-1000 WHERE bname LIKE '%小白菜%';
UPDATE bank SET bmoney=boney+1000 WHERE bname LIKE '%豪%';
COMMIT;

二、视图

1.什么是视图

视图:虚拟表 只负责展示数据 不负责保存数据
视图分类:
a.单表视图:展示的数据来源于同一张表
b.复合视图:展示的数据来源于多张表
视图的注意事项:
1.单表视图可以进行增删改查操作,而且结果会保存到源表中
2.复合视图只可以进行查询操作,禁止增删改!<

2.使用视图查询学生:学号、姓名、邮箱

CREATE VIEW v_student AS
(SELECT studentno,studentname,email FROM student);

3.查询视图

SELECT * FROM v_student;

4.删除视图的数据

DELETE FROM v_student WHERE studentno=1020;

5.连接查询视图,比如查询教师里面的学号、姓名、家庭住址、成绩

CREATE VIEW v_teacher AS
(SELECT s.studentname,s.studentno,s.address,r.studentresult
 FROM student s
INNER JOIN result r ON s.studentno=r.studentno);

6.创建视图显示学生姓名和平均成绩

CREATE VIEW v_test  AS 
(SELECT s.studentname,AVG(studentresult)
FROM student s
INNER JOIN result r ON s.studentno=r.studentno
GROUP BY s.studentname);
SELECT * FROM v_cj;

三、索引

1.什么是索引

1…索引是一种有效组合数据的方式,为快速查找到指定记录
2.索引的创建标准? 经常查询/操作队列
3.作用
大大提高数据库的检查速度
改善数据库性能

2.给学生姓名添加索引

CREATE INDEX index_name ON student(studentname);

3.删除索引

DROP INDEX index_name ON student;

4.查看表中的索引

SHOW INDEX FROM student;

四、备份和恢复

1.创建数据库

CREATE DATABASE schooldbtest;

2.使用DOS命令备份数据库

mysqldump -u root -p myschool> d:\myschool.sql

3.使用DOS命令恢复数据库

mysql -u root -p schoolDB<d:\myschool.sql

4.使用dos命令恢复数据库

source d:\myschool.sql

5.使用将表中的数据导出成文本文件

SELECT * FROM student INTO OUTFILE'd:\student.txt';

6.将文本数据导入表格

LOAD DATA INFILE 'd:\student.txt'INTO TABLE student;

7.创建无密码账户

CREATE USER yq @`localhost`;

8.创建带密码账户

CREATE USER admin @`localhost` IDENTIFIED BY 'bdqn';

9.查看系统的所有用户

SELECT * FROM USER;

10.创建用户并且授权

GRANT SELECT ON woschool.`result` TO xw @`localhost` IDENTIFIED BY 'xuewei';

11.给已经存在的账户授权

GRANT ALL ON woschool.* TO admin@`localhost`;

12.修改当前登录的账户的密码

SET PASSWORD=PASSWORD('123456');

13.修改其他账户的密码

SET PASSWORD FOR admin @`localhost`=PASSWORD('it');

14.删除用户

DROP USER yq @`localhost`;
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值