MySQL-8复杂操作

1.新增数据

insert into 表名 [(字段列表)] values (值列表)

--1.主键冲突

主键冲突

当主键存在冲突的时候(Duplicate key),可以选择性的进行处理 ,更新和替换

更新操作(duplicate)

insert into 表名 [(字段列表(包含主键))] values(值列表)on duplicate key update 字段=新值;

主键冲突更新操作

替换操作

replace into king_class [(字段列表(包含主键))]  values (值列表 );

直接替换 (2行受影响,先删除再插入)

2.蠕虫复制

从已有数据中去获取数据,将数据进行新增操作 数据成倍增加

表创建高级操作,从已有表创建新表(复制表结构)

create table 表名 like [数据库名称] 表名

 若两张表在同一个数据库,则数据库名称可被忽略

结构复制

蠕虫复制,先查出数据,然后将查出的数据新增一遍

insert into 表名 [(字段列表)] select 字段列表/* from 数据表名;

蠕虫复制

从当前表中蠕虫复制到当前表 

更直观展示蠕虫复制 之蠕虫的提现

蠕虫复制的意义

1.从已有表中copy数据到新表中

2.可以迅速的让表中的数据膨胀到一定的数量级,测试表的压力以及效率

3.数据更新

数据更新基本语法 

update 表名 set 字段 = 值 [where 条件]; 详见 MySQL 3 -6 更新操作

高级更新语法(限制更新数量)

update 表名 set 字段 = 值 [where 条件] [limit 更新数量];

4.删除数据

与更新类似 可以通过limit 限制数量 

delete from 表名 where 条件 limit x 数量被限制为x

如果表中存在主键自增长 自增长不会在删除字段后还原 详见自增长 字段 描述

而自增涨字段已经上升进表结构,不会随着数据的删除而进行改变 

删除表后重建表是一个更好的思路(清空表,重置子增长)

Truncate 表名 -----先删除该表,后新增该表(任何一个表的创建语句都会保存一个结构文件,文件中保存该表的创建语句

你可能感兴趣的:(MySQL-8复杂操作)