美文网首页
MySQL-运算符操作

MySQL-运算符操作

作者: 遇明不散 | 来源:发表于2019-05-28 14:21 被阅读0次

    MySQL运算符操作

    // 以下均已此表为示例 sanguo
    /*
    +------+-----------+--------+--------+------+---------+
    | id   | name      | gongji | fangyu | sex  | country |
    +------+-----------+--------+--------+------+---------+
    |    1 | 诸葛亮    |    120 |     20 | 男   | 蜀国    |
    |    2 | 司马懿    |    119 |     25 | 男   | 魏国    |
    |    3 | 关羽      |    188 |     60 | 男   | 蜀国    |
    |    4 | 赵云      |    200 |     55 | 男   | 魏国    |
    |    5 | 孙权      |    110 |     20 | 男   | 吴国    |
    |    6 | 貂蝉      |    666 |     10 | 女   | 魏国    |
    |    7 | NULL      |   1000 |     99 | 男   | 蜀国    |
    |    8 |           |   1005 |     88 | 女   | 蜀国    |
    +------+-----------+--------+--------+------+---------+
    */
    
    数值比较/字符比较
    • 数值比较:=,!=,>,>=,<,<=
    • 字符比较:=,!=
    # 查找攻击力高于150的英雄的名字和攻击值
    select name,gongji from sanguo where gongji > 150;
    # 将赵云的攻击力设置为360,防御力设置为68
    update sanguo set gongji = 360,fangyu = 68 where name = "赵云";
    
    逻辑比较
    • and (两个或多个条件同时成立)
    • or (任意一个条件成立即可)
    # 找出攻击值高于200的蜀国英雄的名字、攻击力
    select name,gongji from sanguo where gongji > 200 and country = "蜀国";
    # 将吴国英雄中攻击值为110的英雄的攻击值改为100,防御力改为60
    update sanguo set gongji = 10,fangyu = 60 where gongji = 110 and country = "吴国";
    # 查找蜀国和魏国的英雄信息
    select * from sanguo where country = "蜀国" or country = "魏国";
    
    范围内比较
    • between 值1 and 值2
    • where 字段名 in(值1,值2,...)
    • where 字段名 not in(值1,值2,...)
    # 查找攻击值100-200的蜀国英雄信息
    select * from sanguo where country = "蜀国" and gongji between 100 and 200;
    # 找到蜀国和吴国以外的国家的女英雄信息
    select * from sanguo where country not in("蜀国","吴国") and sex = "女";
    # 找到id为1、3或5的蜀国英雄 和 貂蝉的信息
    select * from sanguo where name = "貂蝉" or (id in(1,3,5) and country = "蜀国");
    
    空、非空
    • 空:where 字段名 is null
    • 非空:where 字段名 is not null
    • 空值,只能用 is 或者 is not 去匹配
    • 空字符串,用 = 或者 != 去匹配
    # 姓名为NULL值的蜀国女英雄信息
    select * from sanguo where name is null and country = "蜀国" and sex = "女";
    # 姓名为 "" 的英雄信息
    select * from sanguo where name = "";
    
    模糊比较
    • where 字段名 like 表达式
    • _ : 匹配单个字符
    • % : 匹配0到多个字符
    # 查询名字为三个字的
    select * from sanguo where name like "___";
    # 查询所有姓赵的英雄
    select * from sanguo where name like "赵%";
    # NULL不会被统计,只能用is、is not去匹配
    # 空字符串可以被匹配
    

    相关文章

      网友评论

          本文标题:MySQL-运算符操作

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