标签:数据库 not 数值 效果 条件 情况 简单 rom 安全
#使用between and 查询员工编号在100-120之间的员工信息
select * from employees where employee_id BETWEEN 100 and 120;
#查询没有奖金的员工
select * from employees where commission_pct is null;
#安全等于
#查询没有奖金的员工 和上面的效果是相同的
select * from employees where commission_pct <=> null;
#查询工资是12000的员工信息
select * from employees where salary <=>12000;
#接下来做一个简单的对比
is null:只能判断是否是null值,可读性较高。推荐使用
<=>:既能判断null值,又能判断普通的数值,可读性较低,不推荐使用
#查询员工表中job_id不为IT,或者工资为12000的员工的信息
#注意:不能使用is not,只能使用<>
select * from employees where job_id <>‘IT‘ or salary =‘12000‘;
#经典面试题
select * from employees;
和
select * from employees where comission_pct like ‘%%‘ and last_name like ‘%%‘;
试问,这聊条sql语句执行出来的结果是否一样?
答案:分情况讨,如果表中where条件后面的字段在数据库表中没有null值的话,则两条sql语句执行出来的结果是一样的,如果有null值的情况,则执行出来的结果是不一样的。
老师补充:
对第二条sql进行如下改造
select * from employees where comission_pct like ‘%%‘ or last_name like ‘%%‘ or salary like ‘%%‘ ....把数据表中所有的字段都加上;
现在这两条sql执行的结果应该就是一样的。
标签:数据库 not 数值 效果 条件 情况 简单 rom 安全
原文地址:https://www.cnblogs.com/dongyaotou/p/12297773.html