zoukankan      html  css  js  c++  java
  • MySQL插入语句解析

    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

  • 相关阅读:
    js设置与获取Cookie
    js,正则应用
    Ajax支持跨域之Web API实现
    RSA加密解密在jsencrypt+c#的实现-博客园加密登录
    转:sqlserver无法创建索引,超时时间已到解决办法
    【转】asp.net 项目在 IE 11 下出现 “__doPostBack”未定义 的解决办法
    c#连接SFTP上传文件
    mac 修改mysql root密码
    Vue学习手记09-mock与axios拦截的使用
    Vue学习手记08-vue-cli的启动过程
  • 原文地址:https://www.cnblogs.com/techroad4ca/p/5731214.html
Copyright © 2011-2022 走看看