【SQL】第8章 使用操作符对数据进行分类

8.1 什么是SQL里的操作符

操作符包括:

  1. 比较操作符
  2. 逻辑操作符
  3. 求反操作符
  4. 算术操作符

8.2 比较操作符

8.2.1 相等

操作符说明

使用场景

等号(=)表示相等

Select * from aircraft where seating = 400

此语句会返回座位数等于400的全部数据;

8.2.2 不等于

操作符说明

使用场景

不等于(<>)表示一个小于号一个大于号,另一种表示不相等的方式是!=

Select *from aircraft where freightonly <> 0;

此语句表示freightonly返回不等于0的值;

8.2.3 小于和大于

操作符说明

使用场景

<小于, >大于

Select * from aircraft where seating > 400;

Select * from aircraft where seating < 100;

8.2.4 比较操作符的组合

操作符说明

使用场景

<=小于等于,>=大于等于

Select * from aircraft where seating <= 400;

Select * from aircraft where seating >= 100;

8.3 逻辑操作符

8.3.1 IS NULL

操作符说明

使用场景

Is null,找空值

Select passengerid、lastname、firstname、birthdate

From passengers

Where birthdate is null;

以上这一列会找到birthdate为空的这列值;

8.3.2 BETWEEN

操作符说明

使用场景

1.between的返回值包含边界值;

2.between后面接数值、文本、日期;

Select * from aircraft where seating between 200 and 300;

8.3.3 IN

操作符说明

使用场景

当被比较的值至少与列表中的一个值相匹配时,它会返回对应值;

Select * from aircraft where seating in (200,300,400);

系统返回seating为200,300,400的数据;

8.3.4 LINKE

操作符说明

使用场景

1.百分号%,百分号代表零个、一个或多个字符;

2.下划线_下划线代表一个数字或字符;

3.这些符号可以组合使用;

1.Where aircrafttype like ‘B%’;

该示例匹配任何以B开头的值

2.Where aircrafttype like ‘%B%’;

该示例匹配任何包含B的值

3.Where aircrafttype like ‘_B%’;

该示例匹配第2个字符为B的值

4.Where aircrafttype like ‘%B’;

该示例匹配以B为结尾的值

5.Where aircrafttype like ‘A__B’;

该示例匹配第一个字母为A,最后一个字母为B的值;

8.3.5 EXISTS

8.3.6 ALL、SOME和ANY操作符

操作符说明

使用场景

操作符ALL用于把一个值与另一个集合中的全部值进行比较

下面的示例用来测试座位数大于Boing 777机型的机型

Select * from aircraft where seating > all (select seating from aircraft where aircrafttype=’boeing 777 ‘ );

操作符ANY根据条件将一个值与另一个列表中的任何值进行比较。somes是ANY的别名,他们可以互相使用

Select * form aircraft where seating > any (select seating from aircraft where seating > 375);

8.4 连接操作符

8.4.1 AND

操作符说明

使用场景

and操作符允许在where语句中同时使用多个条件,取交集

Select * from aircraft where seating > 300 and seating < 400;

结果输出seating > 300 且 seating < 400的数据;

8.4.2 OR

操作符说明

使用场景

or操作符允许在where语句中同时使用多个条件,取并集

Select passengerid,firstname,lastname

From passengers where passengerid = 20 or passengerid = 134991;

结果输出passengerid = 20 或 passengerid = 134991的数据;

8.5 求反操作符

8.5.1 不相等

操作符说明

使用场景

不相等

Where seating <> 200

Where seating != 200

8.5.2 NOT BETWEEN

操作符说明

使用场景

Not between为 between的反值

Where seating not between 100 and 400

8.5.3 NOT IN

操作符说明

使用场景

Not in 为in的反值

Where seating not in (100、150、200、250、300、375)

8.5.4 NOT LIKE

操作符说明

使用场景

Not like 为like的反值

Select aircrafttype from aircraft where aircrafttype not linke ‘B%’;

以上输出非B%的值;

8.5.5 IS NOT NULL

操作符说明

使用场景

is not null 的反值为is null

Select * from aircraft_tmp where seating is not null;

8.5.6 NOT EXISTS

操作符说明

使用场景

8.6 算术操作符

8.6.1 加法

操作符说明

使用场景

加法

Select * from routes where (traveltime + 30)> 1080;

以上结果返回 (traveltime + 30)> 1080的值;

8.6.2 减法

操作符说明

使用场景

减法

1.Select salary - 1000 from employees;

2.Select salary from empleyees where salary - 10000 > ‘4000’;

8.6.3 乘法

操作符说明

使用场景

乘法

Select traveltime * fuelcostperminute as total_fuel_cost from routes;

8.6.4 除法

操作符说明

使用场景

除法(/)

Select traveltime / 60 as travel_hours from routes;

8.6.5 算术操作符的组合

操作符说明

使用场景

优先级算法顺序()、乘法、除法、加法、减法

1+1*5=6

(1+1)*5=10

10-4/2+1=9

8.7 小结

8.8 问与答

问:Where 子句中可以包含多个AND操作符吗?

答:可以,任何操作符都可以多次使用。

Select * from aircraft

Where seating < 300

And freightonly = 0

And aircrafttype like ‘B%’

问:在where子句中使用单引号包围一个number类型的数据会产生什么效果?

答:查询仍然会执行,对于number类型的字段来说,单引号是没有必要的。

8.9 实践

8.9.1 检测

8.9.2 练习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值