zoukankan      html  css  js  c++  java
  • MySQL技巧(一)

    NOT IN 与 IN

      假设我们又一张score表如下

      

      我们需要查询所有不是性别代号为"0"的学生数据

    SELECT * FROM score WHERE id NOT IN(SELECT id FROM score WHERE gender = 0 );

    很明显,not in 就是排除的意思。

    exists 与 not exists

      exists:有结果集返回则返回true,相反返回false。

      not exists:与exists相反。

    使用INSERT INTO.... SELECT 插入数据(将查询出的结果集插入到表中)

     我们有一张student表如下:

    select * from score where id > 3;

    我们想把上面查询的结果中的name值插入到student表中,可以用多条insert values语句,当然也可以通过insert select的形式

    INSERT INTO student(name) select name from score where id > 3;
    SELECT *FROM student;

     

    很明显,确实已经将查询的结果集插入到了student表中

    多表更新

       假设我们有这样的一张表:

      

      不管今后从性能上还是别的考虑,当想把性别中的男用0来代替,女用1来代替的话,可以用update set 的方式进行多表更新,具体如下:

      

      现在要做的是把score表中的性别男,女用上表中的对应id来表示:

      更新score表,score表中的gender字段与gender表中的g_name 绑定,然后修改,gender的值等于 gender表中的g_id,这样就完成了多表更新

    UPDATE score INNER JOIN gender ON gender = g_name SET gender = g_id;
    SELECT * FROM score;

      

      

  • 相关阅读:
    osu合集(期望dp)
    P1640 [SCOI2010]连续攻击游戏
    P2155 [SDOI2008]沙拉公主的困惑
    P3419 [POI2005]SAMToy Cars / SP688 SAM Toy Cars
    P3586 [POI2015]LOG
    P4147 玉蟾宫
    P4454 [CQOI2018]破解DH协议
    射击小游戏一02(玩家和怪物添加)
    ASCII,Unicode和UTF8
    Android中MenuInflater实例
  • 原文地址:https://www.cnblogs.com/deepSleeping/p/9932636.html
Copyright © 2011-2022 走看看