前面我们学习了一些列属性和范式,接下来介绍一些数据的高级操作,主要是数据的增删改查。本篇来看看数据的新增操作。
数据新增操作
基本语法: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