00:00
行,那咱们接下来看一看什么呢?就是这个and和or。这个案的呢,之前写过案例,这个案例呢,就是比如说薪资大于这个,呃,这个这个3000,并且小于多少啊5000,那你就用and呗,是不是,但是现在呢,我们来看下这个奥奥呢,就是诶比如举个例子啊。还是以案例的方式去去学习这个东西啊?呃,找出工作岗位,是manager和salesman的员工。同学,老师,这是什么东西?我们来看看,工作岗位是job。对吧,那job当中大家看salesman,这应该是销售员吧。
01:02
Manager应该是经理吧,或者是什么什么主管之类的啊,总之对吧。这个是king是什么意思,首席。主席。是不是就是老大CEO啊,就这意思。就是我要你写一条SQL,找出工作岗位是这个这个还有这个的员工怎么找。Select name job from EP。Where,条件是job等于什么?Manager and job等于什么?Sales和吗?这不河河不是暗的吗?没蒙是吧?哎,我骗你呢啊,这个和呢,其实是什么意思,就是工作岗位是manager和sales的这个员工,他的意思你不能用and,你要用and,就是工作岗位既是这个又是这个,哪有说这样的一个人既干这个岗位又干那个岗位,那肯定不是不不能这样不能用暗的啊,这个位置必须得用什么呀or?
02:25
这样的话,你找出工作岗位等于manager的这波员工,还有工作岗位等于salesman这波员工,是不是等于是这两两两拨结果全部加起来。就这意思嘛。咱们班行啊,上个班我学生帮我,我给他蒙住了,你知道吗?对,我在写个案子下面就说,哎,对对,我还我还故意我在写这句话的时候,和迈和这有什么样的员工和啊,同学们和来写写写写,这会写成and。然后反应半天才反应出来,咱们班同学反应很快啊,这块呢,咱们这个是or啊不能用and。
03:08
或者。那这样的话,找出工作岗位是salesman和工作岗位等于manager的员工就找出来了,And和or各位啊。要分清楚and永远被翻译成并且哦,永远被翻译成或者,好,下一个我再给大家一个陷阱啊。嗯。And和or联合起来用,就是既有and又有二。导出。呃。
04:02
薪资大于。3000的啊,并且部门编号是20或30部门的员工。找出新增大于3000的,并且部门编号是20或30部门的员工。哎呀,别大于3000了,数据没没这么多是吧,1000找出薪资大于1000的,就史密斯是低于1000的啊,找出薪资大于1000的,并且部门编号是20或30,部门员工来我写一下这搜一你看看对不对啊,Select e,然后是员工的名字,Sary的薪资,然后部门编号是不是这个这个这个字段叫DEP number是不是就是。
05:04
部门,并且是不是and and部门编号等于22,部门编号等于30。厉厉害啊厉害对。这个按对应的是,并且这个or对应的是,或者表面看没啥问题对吧。但是查完之后。也没啥问题啊对。
06:01
是吧,九百五就有问题了,为什么九百五会出来呀?所以and和all碰到一块之后,优先级比较高的是and,也就是说这俩条件会自动组队。也就是说,这两个条件先合在一起执行。明白或部门编号等于30,也就是30部门的所有员工都查出来。你如果这样写的话,是不是代表你30部门的员工都查出来我们要的不是这个,我们要的这个大前提是什么?工资必须大于1000,这是前提是吧?然后基于这个大前提条件之下,我们要的是20和30的员工。要的是部门编号是20和30的员工,对吧,所以说注意优先级。
07:03
把这两个一块儿。也是大前提是公司大于多少1000,并且部门等于他或他这个是不是就拼到一块了,这样的话,首先它是满足大前提的,会先把大于多少1000的全找出来,筛出来大于1000的之外之后他再看一看这个部门编号是不是20和30,这样的话,这个九百五是不是就出来了。就是优先级的问题,这个是错误的啊,这个是正确的。就是我想说一句话啊,总结一下。或者写个注意,注意什么呢?以后运算符优先级不确定的时候。加小括号。啊,当。
08:00
运算符的优先级不确定的时候加小括号,添加有小括号的一定的优先级较高,听懂了吗?因为我们不可能天天去记这些东西啊,我们不是小学生,你看小学的时候老师教诶背这个什么啊,运算符的优先级啊,加减乘除,先算乘除再算加减,完事是不是叫一一顿背诶在咱们计算机编程当中,这招不好使,为啥我们没有这个脑力去背这个东西,对吧?所以说我们所有的编程人员一般建议就是大家如果说你不确定这两个运算符优先级哪个高哪个低,你想让谁先执行加小括号就好了。加有小括号的一定是先执行。能记住不就这么干就这么干啊,就当我没讲这个二和二的1000期啊,懂吧,哎,你不确定你就加小括号。
09:03
就就妥了啊,不用去记行了,这是关于这个按括号的优先级的一个问题啊。
我来说两句