快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

mysql怎么插入语句 mysql怎么添加字段

MySQL中insert into语句的6种写法

insert into是mysql中最常用的插入语句,它有6种写法。

公司主营业务:成都网站设计、网站制作、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出安徽免费做网站回馈大家。

如果插入的记录是数字的话要在数字的逗号后面加n:

通过以上实例我们可以看到insert into语句只能向原表中插入于其字段对应的数据,那么能不能通过insert into语句来把其他表的数据插入到原表中呢:

在MySQL中set方法:

ModifyStatement.Set Method 修改语句 set方法

Sets key and value. 设置键和值。

由于insert into语句是一个插入性的语句,所以它的功能要么向指定的表插入数据

也许你看到这个SQL语句是正确的,就觉得这样应该也可以:

mysql mysql insert into 4a set sname=4ainall.sname;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql insert into 4a set sname=4ainall.sname' at line 1

或者这样也可以:

mysql mysql insert into 4a set sname="赵六";

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'mysql insert into 4a set sname="赵六"' at line 1

然后这样也是不可用:

mysql insert into 4a select * from 4ainall set sname=4ainall.sname;

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from 4ainall set sname=4ainall.sname' at line 1

可以看出由于select是作用于4inall这个表的,而set方法也只能在select语句中,这就直接导致set方法只能作用于4inall这个表,而无法作用于4a这个表。

但是如果我们不用select语句的话编译器又怎么会知道4inall表中的数据在哪里?

显然select是用于查的而set则是一个用于改的方法,两者无法结合在一起——insert into set语句当然也不能用于将其他表的数据插入到原表中了。

mysql添加语句

mysql中常用的三种插入数据的语句:

1、insert into表示插入数据,数据库会检查主键(PrimaryKey),如果出现重复会报错;

2、replace into表示插入替换数据,需求表中有PrimaryKey,或者unique索引的话,如果数据库已经存在数据,则用新数据替换,如果没有数据效果则和insert into一样;

3、REPLACE语句会返回一个数,来指示受影响的行的数目。该数是被删除和被插入的行数的和。如果对于一个单行REPLACE该数为1,则一行被插入,同时没有行被删除。如果该数大于1,则在新行被插入前,有一个或多个旧行被删除。如果表包含多个唯一索引,并且新行复制了在不同的唯一索引中的不同旧行的值,则有可能是一个单一行替换了多个旧行。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。

MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。

MySQL 常用插入语法总结

当MySQL表字段设置 unique key 或者 primary key 时,被约束的字段就必须是唯一的。新插入数据直接使用 insert into ,如果出现唯一性冲突,就会抛出异常。我们应该根据需求选择合适的插入语句。

为了演示,我们先新建一张user表,SQL语句如下:

当插入数据时,如果唯一性校验出现重复问题,则报错;

如果没有重复性问题,则执行插入操作。

简单总结:重复则直接报错,sql 语句不执行,不重复则插入。

示例

执行结果

当插入数据时,如果唯一性校验出现重复问题,则忽略错误,只以警告形式返回,不执行此SQL语句;

如果没有重复性问题,则执行插入操作。

简单总结:重复则忽略,sql 语句不执行,不重复则插入。

示例

执行结果

当插入数据时,如果唯一性校验出现重复问题,则在原有记录基础上,更新指定字段内容,其它字段内容保留;

如果没有重复性问题,则执行插入操作。

简单总结:重复则更新指定字段,不重复则插入。

示例

执行结果

表记录, mobile_phone_number 从 '13800000077' 更新为 '13800000088' 了, update_time 也从 NULL 更新为有值了,但是 id 没有变:

replace into表示插入替换数据,当插入数据时,如果唯一性校验出现重复问题,删除旧记录,插入新记录;

如果没有重复性问题,则执行插入操作,效果和insert into是一样的。

简单总结:重复则先删除再插入新记录,不重复则插入

示例

执行结果

表记录, id 和 mobile_phone_number 变了, update_time 变为了字段默认值 NULL :

replace into 执行的逻辑:

示例一

示例一 insert into ... on deplicate key update 操作在 binlog 中记录为:

示例二

示例二 replace into 操作在binlog中记录为:

从示例可以看出,使用 replace into 会有以下问题:

执行结果

因为全部列都是指定的值,所以,相当于所有字段全部更新了一次。

binlog 中的记录:

如果出现重复异常,希望捕获异常,则使用 insert into ;

如果出现重复异常,希望保存旧纪录,忽略新纪录,则使用 insert ignore into ;

如果出现重复异常,希望更新指定字段,则使用 insert into … on duplicate key update ;

如果出现重复异常,希望删除旧记录,插入新记录,则使用 replace into 。


当前文章:mysql怎么插入语句 mysql怎么添加字段
网页网址:http://6mz.cn/article/dopjodg.html

其他资讯