美文网首页
mysql实用语句

mysql实用语句

作者: 遇酒无缘 | 来源:发表于2019-04-04 12:11 被阅读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使用的表结构完全一致。

    相关文章

      网友评论

          本文标题:mysql实用语句

          本文链接:https://www.haomeiwen.com/subject/jklfiqtx.html