MySQL操作总结插入和替换
插入和替换
插入和替换语句的功能是将新数据插入表中,这两个语句的语法相似,它们之间的主要区别是如何处理重复的数据。
General usage of 1. 插入
MySQL中的INSERT语句与标准插入符不一样。在标准SQL语句中,每次插入记录时只有一种INSERT语句形式。
插入字段(列名称…)值(列值);
MySQL中还有另一种形式。
插入字段集column_name1 = value1,value2 column_name2 =,…;
第一种方法将列名与列值分隔开,使用时列名必须与列值相同:
插入用户(ID,姓名,年龄)值(123,姚明,25);
第二种方法允许列名称和列值出现并成对使用,如以下语句将产生介质的效果。
插入用户设置id = 123,名称=姚明,年龄= 25;
如果使用set方法,则必须至少分配一个列。如果字段使用默认值(如默认值或自添加值),则这两种方法可以省略这些字段:
插入用户(姓名,年龄)值('yao明,25);
插入到使用集名称=姚明,年龄= 25;
MySQL对值也做了一些更改。如果没有写入值,那么MySQL将使用表中每个列的默认值插入新记录。
插入用户()值();
如果没有表名后写的,它是用来指定一个值,表中的所有领域。这样,不仅在价值观和列数相同,但顺序不可reversed.insert到用户的值(123,姚明,25);
如果插入语句按以下格式编写,MySQL将被错误报告。
用户插入('yao明,25);
2。插入多个记录并插入
看到这个标题你可能会问,说什么,你不能调用多个插入语句到多个记录!但是使用这种方法来增加服务器上的负载,因为每个SQL服务器的执行也被分析和优化SQL操作。幸运的是,MySQL提供了另一种使用INSERT语句插入多个记录的解决方案。这不是标准的SQL语法,所以只能在MySQL中使用。
插入用户(姓名,年龄)值('yao明,25),(比尔。盖茨,50岁,(火星人,600岁);
上述INSERT语句插入到用户连续3记录表。值得注意的是,在上述INSERT语句的值必须被放置在每个记录的一对值。在中间,中间是由假设有一个表表1
创建表的表(N型);
如果你想插入记录到表5,以下是错误的:
插入表(I)值(1,2,3,4,5);
MySQL将抛出以下错误
错误1136:列计数与第1行的值计数不匹配
正确的写作方式就是这样做:
插入表(I)值(1)、(2)、(3)、(4)、(5);
当然,这种方法也可以省略名称,这样每个括号中的值的数量必须是一致的,并且数字必须与列的数量一致:
插入表的值(1)、(2)、(3)、(4)、(5);
三.替换语句
我们经常会遇到这种情况的时候,我们使用一个数据库。如果表建立一个领域一个独特的指标,当我们插入一条记录到表中现有的核心价值观,它将抛出一个主键冲突错误。当然,我们可能要盖新记录的价值的原始记录值如果您使用的是传统的方法,你必须先使用DELETE语句删除原来的记录,然后用插入以插入新的记录,在MySQL数据库中,一个新的解决方案提供给我们的,这是取代声明。当插入记录的更换,如果更换不重复,插入功能:插入相同。如果有重复记录,则新记录值将被新记录值替换。
使用替换的最大优点是将删除和插入相结合形成一个原子操作,这不需要考虑复杂的操作,例如在使用删除和插入同时添加事务。
当使用替换时,表中必须有唯一的索引,而索引所在的字段不能为空。否则,替换与插入完全相同。
在实施更换,系统返回受影响的行数,如果返回1,显示在表中没有重复的记录,如果返回2,这是一个描述重复记录,系统自动调用Delete删除该记录,然后记录的插入插入记录。如果返回值大于2,表明有多个唯一索引,和多个记录的删除和插入。
替换的语法非常类似于INSERT,例如插入或更新记录如下替换语句。
替换为用户(ID,姓名,年龄)值(123,赵本山,50);
插入多个记录:
替换为用户(ID,姓名,年龄)的值(123,赵本山,50),(134,玛丽,15);
替换也可以使用set语句。
替换为用户设置id = 123,名称=赵本山,年龄= 50;
前面已经提到,取代可能影响超过3的记录,因为表中有一个以上的指标。在这种情况下,更换将考虑每唯一索引和删除重复记录对应的指数,然后插入新的记录。假设有3个字段,表表A、B,和他们都有一个唯一索引。
创建表的表(一个int是否独特,b int不为空);
假设有3记录表
A B C
一百一十一
二百二十二
三百三十三
接下来我们使用替换语句插入一条记录到表。
替换表(A,B,C)值(1,2,3);
返回的结果如下
查询OK,4行受影响(0秒)
在表记录如下
A B C
一百二十三
如您所见,替换删除原来的3个记录,然后插入(1, 2, 3)。