27、MySQL 教程 - MySQL 数据高级操作-新增

前面我们学习了一些列属性和范式,接下来介绍一些数据的高级操作,主要是数据的增删改查。本篇来看看数据的新增操作。

数据新增操作

基本语法:insert into 表名 [(字段列表)] values(值列表);

场景:在数据插入的时候,假设主键对应的值已经存在,如果插入一定会失败,因为主键是不允许冲突的。这种主键冲突问题如何解决呢?

主键冲突

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

主键冲突:更新操作

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

举例:教室表

我们先创建一个教室表my_class,字段name是主键。

 

当前这个表是空表,我们来插入两条数据。

 

假如,我们发现Java02这个班级的教室不是A102,真实的是B102,那么我们继续下面这样插入数据会提示主键冲突。

 

下面就是我们来解决主键冲突报错的办法,直接在原有基础上进行数据修改。

 

通过上面,可以看到数据从A102改成了B102.

主键冲突:替换操作

语法:replace into 表名 [(字段列表:包含主键)] values(值列表);

举例:把上面表中Java01的class的值A101替换成A105