mysql实用语句

2019-04-04  本文已影响0人  遇酒无缘

开始学SQL的时候学的是MSSQL,后来由于项目需要转到了MySQL。两者语法大体上是一样的,只是个别有些差异。具体不详述,相关文章很多,可以自己搜索查看。只是在开发项目时看到别人写的插入语句有些陌生,用的是Replace into,而不是Insert into,为了探个究竟,看了几篇文章,总结下。

替换

当插入一条记录时,希望如果记录已经存在,就需要先删除再插入,如果不存在就直接插入。这种情况用REPLACE就很合适,它自己做查询判断,然后插入记录。

REPLACE INTO idol(id, name, gender, job) VALUES(1, 'Denzel', 'male', 'movie star');

如果id=1的记录不存在,REPLACE会直接插入记录,否则就删出已有记录再插入

更新

当插入一条记录时,希望如果记录已经存在,就更新,如果不存在就直接插入。这种情况用INSERT INTO ... ON DUPLICATE KEY UPDATE ...就很合适,由UPDATE指定需要更新的字段

INSERT INTO  idol(id, name, gender, job) VALUES(1, 'Denzel', 'male', 'movie star') ON DUPLICATE KEY UPDATE name='Denzel.Washington';

如果id=1的记录不存在,INSERT就直接插入记录,否则就按照UPDATE更新指定字段

忽略

当插入一条记录时,希望如果记录已经存在,就忽略,如果不存在就直接插入。这种情况用INSERT IGNORE INTO ...就很合适。

INSERT IGNORE INTO idol(id, name, gender, job) VALUES(1, 'Denzel', 'male', 'movie star');

如果id=1的记录不存在,INSERT就直接插入记录,否则就忽略,不执行任何操作

快照

有时候我们希望对一个表进行快照,可以用下面的语句

CREATE TABLE my_idol SELECT * FROM idol WHERE id=1;

新创建的表结构和SELECT使用的表结构完全一致。

上一篇 下一篇

猜你喜欢

热点阅读