MySQL数据库应用管理实战-第五

---恢复内容开始---

表中插入数据

1、按指定所有列插入

insert into test(ind,name) values(1,'zhangshuan');

2、由于 ind列为自增,所以可以只在name 列插入值

insert into test(name) values('oldgirl');

3、如果不指定列,就按表结构进行插入,类型要对上,按顺序插入。

insert into values(3,'inca');

4、批量插入。

insert into values(3,'inca'),(4,'whang');

 

 

 

 

 

 退出数据库进行备份

单实例:

[root@agent ~]#  mysqldump -uroot -poldboy123   -B test >/tmp/test_bak.sql

多实例:

 [root@agent ~]#  mysqldump -uroot -poldboy123 -S /data/3308/mysql.sock  -B test >/tmp/test_bak.sql

 

 提示:

1、错误的占是 -A 表示 所有库,后面不能在指定oldboy_gbk库了

2、5.1.68版本:

[root@agent ~]#  mysqldump -uroot -poldboy123  -A  -B test >/tmp/test_bak.sql

 

 

 

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

查询数据

select  from where

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

使用explain查询select 查询 语句执行计划

explain select * from test

可以判断出一个语句是否走索引查询速度提升

索引

 

查询行数

 

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

修改表中数据

修改表中指定条件固定列的数据

语法:

update 表名 set 字段=新值,...where 条件(一定要注意条件)

update test set name='gongli' where id=3;

 

______________________________________________________________

恢复数据库,并且在不登录 情况下看数据表内容

增量恢复,背景,在备份时间间点后,有操作,要恢复。

 

 然后按时间点,进行编辑bin.sql 找出错前 语句。把造成出错的数据语句删除,把数据库进行正常恢复。

 

 

 

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

实例题 :

在mysql 数据库中, 关于binlog日志,下列说法中正确的是: (A)

A、依靠足够长度的binlog日志和定期全备,我们可以任何时间点的单表数据

B、以mysql主从同步为例,binlog中会记录主数据库进行所有 操作

C、以mysql 主从同步为例,binlog中会记录主数据库进行所有 查询操作

D、binlog通过cat 和vi 无法查看,但可以通过 gedit查看。

提示:binlog只记录修改不记录查询

 

 

 

 

 

启动顺序

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

修改表中所有行数据

严重的安全(可能训操作导致 数据对视)

防止数据误操作一例

http://oldboy.blog.51cto.com/2561410/1321061

 

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

删除表中数据

delete from test where id=1;

备注:不加条件是全部删除,也是非常危险操作,delete from test;

 

直接清空

 truncate table test; 

 

 truncate table test; 和delete from test;区别

1、 truncate table test;更快 ,清空物理文件

2、delete from test ;逻辑清除,按行删除

 

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

增删改表的字段

语法:

alter table 表名 add 字段 类型 其他;

 实践案例:

例:在表test中添加 字段 sex ,age ,qq,类型分别为char(4),int(4),varchar(15)

 

 

 

 

 

_____________________________________________________

更改表名

语法:rename table 原表名 to 新表名

alter table oldboy rename to test;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

_______________________________________

数据库优化

1、insert 批量插入

2、不用* 查询列,列出来查询

 

 __________________________________________________________

MYSQL 插入中文数据乱码问题

 

 

 

 

小结:

1、DOQ,DML 语句之前 set names 系统库存表字符集

2、

 

 

 

 mysql中文不乱码5种方法小结

1、登录 mysql 先做"set names latin1;" 这个设置是暂时,下次登录又加再设置。然后再执行更新语句或执行语句文件

 

 

2、在sql  文件中指定set names latin1; 然后登录 mssql  ,通过 以下命令执行

3、在sql 文件中指定set names latin1; 然后通过 mysql 命令导入数据

 

4、通过指定mysql 命令字符集参数实现 --default-character-set=latin1

 

5、在配置文件里设置客户端及服务端相关参数

 

不乱码思想,linux系统 ,客户端和服务端,库,表 ,程序,字符集统一

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

---恢复内容结束---

posted @ 2017-01-26 16:31  杨坚  阅读(80)  评论(0)    收藏  举报