数据库学习--DML(数据管理语言)

插入[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] 变量名=值

猜你喜欢

转载自blog.csdn.net/qq_43320162/article/details/84831333