【视图】、【视图算法】、【备份】、【数据还原】、【SQL备份、还原数据】、【增量备份】

一、视图

view:是一种有结构,但是没结果的虚拟表

1、创建视图

基本语法:create view 视图名字 as select 语句;

创建单表视图:基表只有一个

创建多表视图:基表来源至少两个

2、查看视图

show tables [like] / desc 视图名 / show create table 视图名;

3、修改视图

alter view 视图名字 as 新的select语句;

4、删除视图

drop view 视图名字;

二、新增数据

多表视图不能新增数据

可以向单表视图插入数据,但是视图中包含的字段必须有基表中所有不能为空、或没有默认值的字段

视图是可以向基表插入数据的

三、删除数据

多表视图不能删除数据

单表视图可以删除数据

四、更新数据

多表视图不能更新数据

更新限制:with check option;

五、视图算法

视图算法:系统对视图以及外部查询视图的select语句的一种解析方式

视图算法分三种

1、undefined:未定义(默认的)

2、temptable:临时表算法

3、merge:合并算法

六、算法指定

算法指定:在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;

七、方式:

1、数据表备份

2、单表数据备份

3、SQL备份

4、增量备份

八、数据表备份

1、存储引擎:innodb、myisam

(1)innodb:只有表结构,数据全部存储到 ibdata1 文件中

(2)myisam:表、数据和索引全部单独分开存储

九、单表数据备份

1、备份:select */字段列表 into outfile 文件所在路径 from 数据源;

2、高级备份:select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;

(1)fields:字段处理,enclosed by(默认'')、terminated by(默认'\t')、escaped by(默认'\\')

(2)lines:行处理,starting by(默认'')、terminated by(默认'\r\n')

3、数据还原:

(1)load data infile 文件所在路径

(2)into table 表名[(字段列表)]

(3)fields 字段处理

(4)lines 行处理;

十、SQL备份

1、备份:mysqldump.exe

mysqldump/mysqldump.exe -hPup 数据库名字 [数据表名字1 [数据表名字2...]] > 外部文件路径

2、整库备份:

mysqldump/mysqldump.exe -hPup 数据库名字 > 外部文件路径

十一、SQL还原数据

1、方案一:使用mysql.exe客户端还原

mysql.exe/mysql -hPup 数据库名字 < 备份文件目录

2、方案二:使用SQL指令还原

source 备份文件所在路径

十二、增量备份

备份的是系统日志文件

代码部分————————————————————————

-- 视图:单表+多表

create view my_v1as select *from my_student;

create view my_v2as select *from my_class;

create view my_v3as select *from my_student

as sleft join my_classas con s.c_id=c.id;-- id重复

-- 多表视图

create view my_v3as select s.*,c.c_name,c.roomfrom my_student

as sleft join my_classas con s.c_id=c.id;

-- 查看视图创建语句

showcreate view my_v3\G

-- 视图使用

select *from my_v1;

select *from my_v2;

select *from my_v3;

-- 修改视图

alter view my_v1as select id,name,sex,age,height,c_idfrom my_student;

-- 删除视图

drop view 视图名;

-- 多表视图插入数据

insert into my_v3

values(null,'bc20190006','张三丰','男',150,180,1,'Python1907','B407');-- 错误的

-- 将学生表的学号字段设置为不允许为空

alter table my_student modify numberchar(10)not null unique;

-- 单表视图出入数据,视图不包含所有不允许为空的字段

insert into my_v1

values(null,'张三丰',150,'男',180,1);-- 失败(学号不允许为空)

-- 单表视图插入数据

insert into my_v2

values(2,'Python1811','B410');

-- 多表视图删除数据

delete from my_v3where id=1;-- 失败(不可更改)

-- 单表视图删除数据

delete from my_v2where id=4;

-- 多表视图更新数据

update my_v3set c_id=3 where id=5;

-- 视图:age字段限制更新

create view my_v4as select *from my_student

where age>30 with check option;-- 表示视图的数据来源都是年龄大于30岁,是由where age >30决定的

-- with check option决定通过视图更新的时候,不能讲已经得到的数据age>30的改成<30的

-- 将视图可以查到的数据改成年龄小于30

update my_v4set age=28 where id =3;

-- 可以修改数据:可以改,但是视图查不到

update my_v4set age=32 where id=2;

-- 获取所有班级中最高的一个学生

create view my_v5as select *from my_studentorder by heightdesc;

select *from my_v5group by c_id;

select *from my_studentgroup by c_idorder by heightdesc;

-- 指定算法为临时表算法

create algorithm=temptableview my_v6as select *from my_studentorder by heightdesc;

select *from my_v6group by c_id;

——————————————————————————

-- 查看MySQL的版本

select @@version;

-- 创建myisam表

create table my_myisam(

idint

)charset utf8 engine=myisam;

-- 向my_myisam表插入几条记录

insert into my_myisamvalues(1),(2),(3);

-- 单表数据备份

select *into outfile

'D:/1907/web/student.txt'

from my_student;

select *into outfile

'D:/1907/web/student.txt'

from my_class;

-- 指定备份处理方式

select *into outfile

'D:/1907/web/student.txt'

-- 字段处理

fields

enclosedby '''' -- 数据使用双引号包括

terminatedby '|'-- 使用竖线分隔字段数据

-- 行处理

lines

startingby 'START:'

from my_class;

-- 删除表

delete from my_class;

-- 还原数据

load data  infile

'D:o1907/web/student.txt'

into table my_class

-- 字段处理

fields

enclosedby '''' -- 数据使用双引号包括

terminatedby '|'-- 使用竖线分隔字段数据

-- 行处理

lines

startingby 'START:'

-- SQL备份

mysqldump -uroot -p123456

mydatabase my_student > D:/1907/web/student.sql

-- 整库备份

mysqldump -uroot -p123456

mydatabase > D:/1907/web/mydatabase.sql

-- 还原数据:mysql客户端还原

mysql -uroot -p123456 mydatabase < D:/1907/web/student.sql

-- SQL指令还原SQL备份

source D:/1907/web/student.sql;

你可能感兴趣的:(【视图】、【视图算法】、【备份】、【数据还原】、【SQL备份、还原数据】、【增量备份】)