标签:
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
标签:
原文地址:http://www.cnblogs.com/techroad4ca/p/5731214.html