1.INSERT INTO

  最常用简单的插入语句,可以有以下两种用法

  1>  INSERT INTO tb_user(id, name, age) VALUES (100022, 'Tom', 25); // 只给指定的列赋值

  2>  INSERT INTO tb_user VALUES (100022, 'Tom', 25);  // 必须 给所有列赋值

  注: INTO关键字可以省略

2. INSERT INTO  ... SELECT

  可以将查询结果插入表中

  insert into t2same(name,age) select name, age from t2;

  insert into t2same select id, name, age from t2;

  注:1> 查询不能包含一个ORDER BY子句

    2> INSERT语句的目的表不能出现在SELECT查询部分的FROM子句

3. INSERT IGNORE INTO

  当插入数据时,如出现错误时(如重复数据)将不返回错误,只以警告形式返回。通常这也是我们使用IGNORE的目的,避免插入重复数据。

但是当有SQL语句语法错误时也不返回错误,所以使用ignore请确保语句本身没有问题,否则也会被忽略掉。

  重复数据的判断依据:主键列相同或者唯一索引列相同。

  例: 

CREATE TABLE tb_user (
id int(10) NOT NULL PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
id_no VARCHAR(20) NOT NULL UNIQUE,
age int(3)
)
INSERT INTO tb_user VALUES(1, 'Tom', 25);
-- 下方两句既不会插入数据也不会报错
INSERT IGNORE INTO tb_user VALUES(1, 'Lucy', 18);
INSERT IGNORE INTO tb_user VALUES(2, 'Tom', 18);

4. REPLACE INTO

  表示插入替换数据,目的表中有Primary Key,或者UNIQUE索引,如果表中已经存在数据,则用新数据替换,如果没有数据则效果同INSERT INTO.

  在表中已存在和要插入相同数据时,REPLACE INTO 和 INSERT IGNORE INTO 二者作用正好相反。

5. ON DUPLICATE KEY UPDATE

  当PRIMARY或者UNIQUE重复时,则执行UPDATE语句,在原有记录基础上,更新指定字段内容,其它字段内容保留。如UPDATE后为无用语句,如id=id,则同3功能相同。

  例如,为了实现name重复的数据插入不报错,可使用一下语句:

  INSERT INTO tb_user (name) VALUES ('Tom') ON DUPLICATE KEY UPDATE id = id

MySQL插入语句解析的更多相关文章

  1. mysql 插入语句

    mysql 插入语句 什么时候用单引号,什么时候不用? 1.先创建一个表 create table user(username varchar(255),age int,marry boolean,b ...

  2. Springboot接口简单实现生成MySQL插入语句

    Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...

  3. mysql select语句解析

    select语句用于从一个或多个数据表选出特定行.特定列的交集 最简单的select语句的语法格式如下: select column1,column2 ........      (列) from 数 ...

  4. Mysql join语句解析

    1. 右连接(right join, right outer join) 解释:以右表(Sys_Employee)为准,而左表(Sys_Department)中的记录只有当其DepartmentId在 ...

  5. Mysql插入语句.txt

    INSERT INTO 目标表 SELECT * FROM 来源表;比如要将 articles 表插入到 newArticles 表中,则是:INSERT INTO newArticles SELEC ...

  6. Android之网络编程利用PHP操作MySql插入数据(四)

    因为最近在更新我的项目,就想着把自己在项目中用到的一些的简单的与网络交互的方法总结一下,所以最近Android网络编程方面的博文会比较多一些,我尽量以最简单的方法给大家分享,让大家明白易懂.如果有什么 ...

  7. Java 实现对Sql语句解析

    原文地址:http://www.cnblogs.com/zcftech/archive/2013/06/10/3131286.html 最近要实现一个简易的数据库系统,除了要考虑如何高效的存储和访问数 ...

  8. mysql 数据库插入语句之insert into,replace into ,insert ignore

    近期才发现mysql的插入语句竟然有如此多的使用方法,这里拿来分享一下. ①关于insert into : insert into table_name values(); insert into t ...

  9. mysql批量插入语句执行失败的话,是部分失败还是全部失败

    项目开发中,正好遇到这个问题. 将一批从外部第三方接口获取到的数据存储到本地mysql数据库,假设接口返回的数据类型为A,经过A到B的转换规则转换后, 要插入数据库的数据类型为B.那么在A获取到100 ...

随机推荐

  1. HTML5 视频(一)

    HTML5 提供了展示视频的标准 今天,大多数视频是通过插件(比如 Flash)来显示的.然而,并非所有浏览器都拥有同样的插件. HTML5 规定了一种通过 video 元素来包含视频的标准方法. 一 ...

  2. Spark计算均值

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 用spark来快速计算分组的平均值,写法很便捷,话不多说上代码 object ColumnVal ...

  3. 在Python应用中使用MongoDB

    Python是开发社区中用于许多不同类型应用的强大编程语言.很多人都知道它是可以处理几乎任何任务的灵活语言.因此,在Python应用中需要一个什么样的与语言本身一样灵活的数据库呢?那就是NoSQL,比 ...

  4. Linux-网络连接-(VMware与CentOS)

    VMware虚拟机中安装CentOS,进行网络连接,分为两步,内网连接,与外网连接. 前提: 当你正确安装VMware后,网络适配器会增加2个新的网卡:(可在设备管理器->网络适配器中查看) 第 ...

  5. PHP中new static()与new self()的比较

    今天在coding的时候,发现了 new static(),觉得实例化的地方不是应该是 new self()吗?查询了一下才知道两者的区别: 1)在有子类集成的时候,两者的表现不一样 2)php 5. ...

  6. ABP 初探 之User、Role、Permission数据库设计 (EntityFramework 继承的另一种使用方法)

    最近群里(134710707)的朋友都在讨论ABP源码,我把最近学习的内容记录下来,同时也分享给大家,希望正在研究ABP源码的朋友有一定帮助. 上篇介绍ABP的多语言,本篇主要介绍权限的数据库设计,用 ...

  7. IE8,IE10下载的临时文件到哪里去了???

    操作攻略: 打开IE浏览器=>工具=>Internet选项=>常规选项卡中,找到"浏览历史记录"=>设置,然后就可看到"当前位置"所列出 ...

  8. jQuery AutoComplete 自动补全

    jQuery.AutoComplete是一个基于jQuery的自动补全插件.借助于jQuery优秀的跨浏览器特性,可以兼容Chrome/IE/Firefox/Opera/Safari等多种浏览器. 特 ...

  9. 小记max-with与 max-device-width

    max-with是浏览器的宽度,max-device-width是设备显示器的宽度 浏览器宽度不等于显示器宽度 浏览器可以缩小 1.max-device-width是设备整个显示区域的宽度,例如,真实 ...

  10. Sap SE16n 修改表数据

    SAP中直接修改表.视图的Tcode有SE16N和SM30. 其中使用SE16N修改表需要先输入命令&SAP_EDIT, 回车左下角显示激活SAP编辑功能后,就可以对相应的表进行新增.删除.修 ...