插入[insert]
字段值和字段名一一对应
单行插入
insert into 表名 (字段名) values (字段值)
多行插入
insert into 表名 (字段名) values (字段值1),(字段值2),....
保障性语句:不阻塞程序
insert into 表名 (字段名) values (字段值1),(字段值2),... on duplicate key update 表名.字段名=表名.字段值【定义错误干什么】
即什么也不操作
带有select子句的insert
快速复制/拷贝表结构:create table 表名 like 表名2
insert into aaa select * from stu on duplicate key update aaa.sid=aaa.sid+1[自定义干啥]; => 快速拷贝一个表
替换更新
删除以前的在增加
replace into 表名 (字段名) values (字段值1);
更新
update [low_priority] [ignore] 表名 set 字段名=字段值,.... where 条件
ignore:忽略键引发的冲突
带有select子句的更新
从表中拿出一个数据放到另一个表
update 表名 set 字段名=(select 字段 from 表名 order by rand() limit 1) where 条件
关联更新
方法一
update table1,table2 set table1.字段=值1,table2.字段=值1 where 条件
方法二
update t1 inner join t2 on t2.id=t1.id set t1.字段名=值1,t2.字段名=值1 where 条件
删除
简单
delete from 表名 where 条件
排序删除
delete from 表名 order by id desc limit 1
关联删除
delete table1,table2 from table1,table2 where 条件
清空数据
方式一:
delete from 表;保留自增的id
方式二:
truncate [table] 表名 ; 不保留自增的id
日志管理
日志种类
- 错误日志(log_error’):记录启动,运行,或者停止出现的问题;
- 一般查询日志(general_log):记录建立客户端连接和执行的语句
- 慢查询(slow_query_log):记录所有执行时间超过一定值
- 二进制日志:引起数据库变化的操作
- 中继日志:主从服务器的二进制日志文件复制而来
- 事务日志:
mysql查询全局/局部的变量
show [global] variables [like '%log%']
设置全局/局部变量
set [global] 变量名=值