数据库基础知识之运算符操作

运算符锦集

一、数值/字符比较:

数值比较可以比大小,字符比较只能比是否相同,一般都会用在where的条件当中,

举例如下:

1、查攻击力大于150的英雄的名字和攻击值

写SQL语句的时候有一个技巧,可以先查看他的开头,然后再查看他的结尾,最后再看限定条件。查找的话肯定会用到select_from语句,后面就是查询的内容,中间就是where的限定条件。

查找的是名字和攻击值,所以不写*号:SELECT name,attack FROM hero WHERE attack>150;这里的attack>150就是数值比较。

 表名这里是hero,运行结果如下:

2、将赵云的攻击力设置为360,防御值设置为68

这是一个修改指令,所以会用到UPDATE语句, UPDATE hero SET attack=360,defence=68 WHERE name="赵云";这里的name=赵云就是字符比较,

这是运行结果,然后再查看一下是否运行成功

SELECT * FROM hero WHERE name="赵云";

可以看到修改成功 

 二、逻辑比较运算符

1、查找攻击力高于200的魏国英雄名字和攻击值:

SELECT name,attack FROM hero WHERE attack>200 AND country="魏国"; 因为两个条件都要满足,所以中间用and。运行结果如下:

 2:查找所有魏国和蜀国的英雄信息:

SELECT * FROM hero WHERE  country="魏国" OR country="蜀国";查询的人可以是蜀国,也可以是魏国,所以用OR,运行结果如下:

三、范围内比较 

1、WHERE 字段名 BETWEEN 值1 AND 值2;  值为数字

例1:查找攻击力介于100-200之间蜀国英雄的信息

SELECT * FROM hero WHERE attack BETWEEN 100 AND 200 AND  country="蜀国";因为还有一个限定条件是蜀国,所以多了一个AND ,运行结果如下:

 

 2、WHERE 字段名 IN (值1 , 值2....);        值为数字或字符

例2:查找id为1、3、或5的蜀国英雄和貂蝉的信息

这里要注意的是查找的是2快内容,一块是id为什么的蜀国影响,一块是貂蝉的信息:

SELECT * FROM hero WHERE id IN (1,3,5) AND country="蜀国" OR name="貂蝉" ; 中间用OR是因为我们查的这两部分的内容,第一部分如果满足我也需要,第二部分如果满足我也需要。

结果就展现出了我们需要的信息 。

id=5的美展现出来,因为5的国家是吴国,不属于蜀国,所以被过滤了

3、WHERE 字段名 NOT IN  (值1 , 值2....);

例3:查找蜀国和吴国以外的女英雄信息

SELECT * FROM hero WHERE country NOT IN (“蜀国”,“魏国”) AND sex="女";运行结果如下: 

 需要强调的是,如果再where当中,使用了多个运算符的时候,运算符是存在一个优先级的,如果不清楚优先级可以用括号来明确,比如上面的id条件和国家的条件要先运行,就加括号:

表示先运算Id 和country ,然后再运行OR 的条件 

四、匹配空/非空的运算符

1、空: WHERE 字段名 IS NULL ;

例:查找姓名为空的英雄信息,SELECT * FROM hero WHERE name IS NULL;运行结果如下:

2、非空: WHERE 字段名 IS NOT NULL ;

例:查找姓名为非空的英雄信息,SELECT * FROM hero WHERE name IS ONT NULL;

第8条记录为空,是因为他的名字是空的字符串,也就是无,并不是空,并不是说是NULL值,需要区分一下 ,可以对照文章开头的那个表格去区分以下

3、空字符串:SELECT * FROM 表名 WHERE 字段名="";

例:查找姓名为”“的英雄信息(这里的“” 代表是空的字符串)SELECT * FROM hero WHERE name="";结果如下:

表示这个名字的字符串里是0个字符 

需要注意的是NULL表示的是空值,只能用 IS 或者 IS NOT 去匹配双引号里面的这个什么东西都没有的值;" " 表示空字符串,用 = 或者!= 去匹配

五、模糊比较

比如再查询某一些信息时,只记得它的一部分信息,这个时候就可以用模糊比较,或者说要查的信息当中有共同的一部分内容,也可以用模糊比较查询

格式:WHERE 字段名 LIKE 表达式(LIKE时MYSQL的一个关键词)

表达式:’ _ ’ :下划线匹配一个字符
               ‘%’ :百分号匹配零个或者多个字符。即 _匹配单个字符;%匹配0到多个字符

1、SELECT name FROM hero WHERE name LIKE '_%_'           #name至少两个字符

展示结果为至少是2个字符的名字
2、SELECT name FROM hero WHERE name LIKE '%'               #name至少有零个字符

0字符的名字叶展现出来了,
3、SELECT name FROM hero WHERE name LIKE '___'            #name至少有三个字符

这里是三个下划线,选出名字至少有三个字符的
4、SELECT name FROM hero WHERE name LIKE '赵%'           #name第一个字符是'赵'

表示想查询的是姓是赵的这英雄的信息

匹配到了赵云这个人
5、SHOW TABLES LIKE 't%'                                                        # 首字母为't'的表

 假如数据库里有多个表,我们想查询出首字母为t的表

这就查出来了

 

 

 

 

 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值