mysql.exe -h localhost -P 3306 -u root -p
use mydb; —— 进入数据库
查看:show index from 表名\G
desc:查看表结构
select * from 表名:查询所有数据
视图算法:系统对视图以及外部查询视图的select语句的一种解析方式
一、视图算法分三种
1)undefined:未定义(默认的)
2)temptable:临时表算法
3)merge:合并算法
– 获取所有班级中最高的一个学生
create view my_v5 as
– temptable:临时表算法
select * from my_student order by height desc;
select * from my_v5 group by c_id;
– merge:合并算法
select * from my_student group by c_id order by height desc;
二、算法指定:在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;
算法指定:
– 在创建视图的时候create algorithm=指定算法 view 视图名字 as select语句;
– 指定算法为临时表算法
create algorithm=temptable view my_v6 as select * from my_student order by height desc;
select * from my_v6 group by c_id;
数据备份与还原
1、方式:
1)数据表备份(不推荐、有限制)-存储引擎对比
2)单表数据备份
3)SQL备份
4)增量备份
– 查看当前MySQL版本
select @@version;
1)数据表备份-存储引擎对比
存储引擎:innodb、myisam
innodb:只有表结构,数据全部存储到 ibdata1 文件中(InnoDB:免费)
myisam:表、数据和索引全部单独分开存储
– 创建myisam表
create table my_myisam(
id int
)charset utf8 engine=myisam;
– 向my_myisam表插入几条记录
insert into my_myisam values(1),(2),(3);
create database test charset utf8;
2)单表数据备份-删除-还原
1.备份:select */字段列表 into outfile 文件所在路径 from 数据源;
– 单表数据备份(路径必须存在但文件名不能存在,路径复制过来换成"/")
select * into outfile ‘D:/1908/Q2/web/student.txt’ from my_student;
select * into outfile ‘D:/1908/Q2/web/class.txt’ from my_class;
2.高级备份:select */字段列表 into outfile 文件所在路径 fields 字段处理 lines 行处理 from 数据源;
1>fields:字段处理,enclosed by — 字段使用什么内容包裹(默认'')、terminated by — 字段以什么结束(默认'\t')、escaped by — 特殊符号用什么处理(默认'\\')
2>lines:行处理,starting by(默认'')、terminated by(默认'\r\n')
– 指定备份处理方式
select * into outfile ‘D:/1908/Q2/web/class1.txt’
– 字段处理
fields
enclosed by ‘"’ – 数据使用双引号包裹
terminated by ‘|’-- 使用竖线分隔字段数据
– 行处理
lines
starting by ‘START:’
from my_class;
3.单表删除
– 不小心删除班级表的数据
delete from my_class;
select * from my_class;
4.单表还原
数据还原:
load data infile 文件所在路径
into table 表名[(字段列表)]
fields 字段处理
lines 行处理;
– 还原数据
load data infile ‘D:/1908/Q2/web/class1.txt’
into table my_class
– 字段处理
fields
enclosed by ‘"’ – 数据使用双引号包裹
terminated by ‘|’-- 使用竖线分隔字段数据
– 行处理
lines
starting by ‘START:’;
select * from my_class;
3)SQL备份(备份>,还原<,会先把原来的"干掉")
备份:mysqldump.exe
mysqldump/mysqldump.exe -hPup 数据库名字 [数据表名字1 [数据表名字2…]] > 外部文件路径
整库备份:
mysqldump/mysqldump.exe -hPup 数据库名字 > 外部文件路径
–必须先退出才能执行
\q – 退出
– SQL备份(不能换行,必须一行写完,运行的时候不能复制注释行)
mysqldump -uroot -p2361559775 mydb my_student > D:/1908/Q2/web/student.sql
– 整库备份
mysqldump -uroot -p2361559775 mydb > D:/1908/Q2/web/mydb.sql
– 再删除
drop table my_student;
show tables;-- 查询所有的表
–再次退出执行
\q – 退出
SQL还原数据
方案一:使用mysql.exe客户端还原
mysql.exe/mysql -hPup 数据库名字 < 备份文件目录
– 方法一:还原数据:mysql客户端还原
mysql -uroot -p2361559775 mydb my_student < D:/1908/Q2/web/student.sql
select * from my_student; – 查看
– 再删除删除
drop table my_student;
方案二:使用SQL指令还原
source 备份文件所在路径
– 方法二:SQL指令还原SQL备份(可以备份结构)
source D:/1908/Q2/web/student.sql;
select * from my_student;-- 查看
4)增量备份
备份的是系统日志文件(删除或修改都可以还原)