00:00
问大家一个问题,就是我这不是涉及到两个表吗?我这两个表的顺序能不能调换,两个表的顺序是否可以调换,可不可以我们试一下,不敢说了,好,这个是可以的哈,我刚才是不是特地反复的给你介绍了一下他们的执行原理啊,他是拿着其中一个表去匹配,是不是另外一张表啊,你拿着谁去匹配谁,它都是说连接条件的值一样的,相等的,是不是才筛选出来啊,那肯定是你这个换了这个位置也没关系的哈,啊,当然我这儿应该改了,这是不是一呀E,然后这儿是A,错了,这个是G对吧?好,我们看一下效果哈,这是多少行,是不是107行啊,这个是107行,当然前面的话我们也改了,这个是一,这个是这,哎,这个是不是一在前呀,啊,这个肯定也是,是不是107行啊。
01:00
这个效果是一样的,没问题吧,啊,它这样的哈,而且从这个角度上来讲,我们会发现我们使用这种等值连接呀,其实就是连接条件,它为它使用的是一个等于号,对不对,最终呢,显示的结果就是两个表的交际部分,可以这样去理解吧,交际部分啊好,这是这一点,好我们再继续往下看第四点,第四点的话呢,我们这个里边它可不可以加筛选呀,可以加筛选吧,好,可以的话怎么去加,比方说我们现在呢,做一个案例,案例我们要去查询有奖金的,注意哈,有奖金的员工名,还有一个是部门名吧,这个简单对吧,我们要查出一个这个,这个怎么写select。
02:00
员工名是不是还是last name呀,部门名department name要查什么,你slide后面就往后加就行了吗?From后面涉及到了是不是两张表呀,Employees和departments嘛,哎,然后逗号department d对不对?先把连接条件加上,这是固定的啊,然后再D点,比它的面它还低诶,这个时候是不是有筛选了,那这个筛选的话怎么写嘞?对,你不能再加Y2了吧,因为有了一个Y,用的是and,用的是and and,我们的E里边的是不是奖金呀,Is not no,对,这样去加筛选条件哈,这样去加,对,它是加的and,但然我这个奖金也没查出来,是不是也不知道呀啊,那你可以查一下,可TCT对不对?好,我们看一下是不是都是有奖金的。
03:00
好,没问题吧,你看是不是都是有奖金的,它这样的一个意思哈,这是加筛选,好我们再试一个案例,案例二,假如说我想查询出呃,我们的这个城市啊,咱们换一个表了,我这个地方是不是有城市啊,好,我看一下城市名都有哪些CT城市里边是不是这些呀,城市中第二个字符为O的,第二个字符为O的有没有啊,一个它一个它是吧?啊好,那么就这样了哈,查询我们城市名中第二个字符为O的啊,我们的这个叫做嗯,嗯,应该是这样哈,相当于我加了一个筛选对不对?呃,查询城市名中第二个字符为O的,呃,对应的部门名和城市名啊,查询这个,哎,这个应该涉及到了。
04:00
哪些表是不是有个部门名啊?部门名是department name,怎么还ID呀?是name吧,好,城市名的话是city。对了,把这两个表我们给加上就行了,Departs表是不是不是起个别名呀?D在逗号city locations跟上哈,别走神,L先去加连接条件,Where,连接条件应该是d.location ID等于l.location ID没问题吧,这个连接条件能找出来吧?能哈,你根据它的意义来and,哎,City city like对不对?应该是下划线O100分号好是不是就行了?当然这个城市不一定有。
05:00
部门啊啊,他这个是正好有,是不是能够做出能够参与出来呀,他这个意思哈,能看明白吧?哎,好,这一步是关于我们家筛选了,好所以说是否可以加筛选呢?这个是可以的啊好继继续我们来看一下第五点,我们可不可以加分组呀,分组来做几个比较好玩的案例哈,看一下你到哪一步就摔摔摔倒起不来了啊案例一,假如说我像上次呢,我就来呃,想让大家做这样的一个题,查询一下每个城市的部门个数,还记得这道题吧,查询啊,有的同学就没记住是吧,查询每个城市的部门个数,是不是涉及到分组了,嗯,这个也是可以的,看我们的这个搜狗语句。
06:00
来越厉害了哈,怎么写这个是绝对有的,你就应该闭着眼睛不用动脑子,是不是就应该想啊,不信你试一下,你闭着眼睛去想这个事啊,然后呢,除了查不明个数,我们实际上是不是可以把对应的城市名给查出来呀,好涉及到了哪些表,还有一个是locations l,然后是啊,先别Y2了,是不是我们先去分组,好注意哈,你到这一步之后,它就好比是是locations里边所有字段和department所有字段是不是你都能看到了,这是一个大的表,对不对,所有字段你都能看到啊,然后你所以你按。
07:00
谁分组是不是都行啊啊按这两个表的谁分组都行,那这一次让我们按谁分组的城市是不是就是CT啊啊而且呢,我们验证一下正好和分组函数一同查询的字段啊,就是它是不是也来自于可如何半后面呀,哎,这个条件也满足哈,这个要求也满足是没问题的,这不就行了吗?然后现在呢,我们再去执行啊来看一下啊,我写错了,这个location写错了,是不是少个C呀,哎,好啊,行了,再去执行哈,好大家看是不是出来了呀啊它这样的一个意思没问题吧,23号是吧,说明有咋了。啥了个数嘛,个数个数,他说怎么都是27啊,那那人家就是27咋了对吧?啊啊,没有加那个连接条件是吧?那那那不对,是不是你连接条件必须得加,加在哪啊,你这是where后面的条件,你是不是还是得加在group group by前面呀?啊这个应该是where d.location ID等于l.location ID,哎,你加上这个哈,这个效果才对,我们都选上,然后再去执行好诶这样的这个数据看着就像回事了是吧?哎哎,这个后来又分了一下组,说明刚才是不是又是自由组合D卡尔乘积了呀,啊说明用了一个那个啊行吧,那这个是关于它,但是假如说我刚才想说的事情是什么,假如说你这个确定你的语法是没问题的,它的数据都一样,这个是不是也有可能啊,那这个不用管它啊,这也有可能啊,行了,这是关于案例一,接下来再来一个吧。
08:43
案例二,假如说我想去查询出,呃,我们也是来一个分组哈,哎,我们来一个什么分组呢?啊,试一下是不是这个里边有个员工表呀,我们想去查询出有奖金的每个部门的部门名和部门的领导编号啊,以及和我们该部门的最低工资,能看懂题吧?嗯,这个应该让查谁不明名,不明名是不是department name,领导编号是不是这样呢?嗯,最低工资mean salary非常好啊,From是不是两个表扬。
09:43
啊,Department d,逗号lo e,好,先把连接条件加上,哎,然后等于一点叫什么来着,Department ID,然后呢,它这个里边是不是也有个筛选条件呀,有奖金的是不是也得加上commission pack is not no,还得有一个分组,你要查的是部门名,是不是就是要把这个给你加上呀,Group by department name,哎,然后你这是不是还有一个managerd呀,是不是有个这个,那你把这个也怎么样加上对号,你要不的话咱们怎么说的来着,除非是你认为这两个是一一对应啊,要不一一对应,你是不是这样加上比较靠谱啊?嗯,好了,那么现在我们再去执行,大家看一下哦,因为这个里边有manager ID,这个里边也有manager ID。
10:43
而我用的是departments里边的这个麦地,所以用D是不是打个点限定一下呀,那大那限定了,你这是不是最好也限定一下啊,那行了,然后我们再去执行啊,它这样的,其实呀,这个major ID我们用不用加呀,那看一下啊,看一下这个数据,呃,其实你要找谁,也就是找有没有部门的领导者编号一样,有没有部门的领导编号一样,好像有是吧?呃,你像这几个部门说明他的manager ID是不是都是no啊,嗯,都是闹,那如果是这样的话,就认为你像他们的话是不是就是你看我们肯定要是按我刚才去写的,是不是只有部门编号和manager ID完全一样的,是不是分成一个组了呀?啊分成一个组了,呃,我们这个这样来去写吧,把这个manager ID照的话呢,我们就别分了,我们看一下效果啊啊,这样的话呢,就是得。
11:43
到了我们的是不是一个不文明啊,那这个manager ID的话,我们就可以先不去加,我们看一下效果哈,这样来去试啊执行一下啊,还是这样的一个意思,那跟刚才一样不一样了,嗯,忘了已经是吗?好,这个这个跟鱼的记忆是一样的哈,来再试一下,这个记住了吧,这个啊这次记住了哈,我们再试一下,要是一样的话,就证明咱们刚才说的是没问题的啊哎,不是他是谁来着,难找ID是吧?啊好,因为A根据我们刚才的描述呢,就是嗯,一样吧啊是不是一样啊,有说不一样多了一个字段,那肯定的呀,不对啊啊那这个就没问题了哈,那意思是说我们因为要查询的有这么两个列,我们不能确定这两这两个列的话是不是一个一一对应,所以说你分组的时候,是不是把这两个列给加上呀,都啊都加上,这样是好使的哈,好吧,这是案例二,呃,那么这就。
12:44
说明我们可以去添加分组,当然你也可以,是不是继续加heavy也没问题啊啊也没问题,我就不加了哈,最后的话,咱们来一个第六可不可以加排序,可不可以加排序肯定可以吧啊那比方说我们做一个案例,我们现在想去查询出每个工种的啊,我故意也加入分组啊,每个工种的工种名啊和我们员工的个数,那么并且按谁进行排序呢?比方说按员工个数降序降序,好想一想这个怎么去写,怎么写select,公主名的话是top cattle,员工个数是count星号。
13:44
好,非常好,然后在FROM2个表employees e,然后是jobs j,首先先去加连接条件where e.job ID等于这1.dropid对吧?好,然后再去个如果BY按谁进行分组嘞,Job开头是不是按它进行分组呀?啊,分完组之后排下序order by啊,那么我们是个数,那就是count星教学日升序教序是不是DS再非常好能顺下来对不对?哎,再去执行,这不就好使了吗?哎,你看我们把前面所有的讲过的是不是都能够连接在一起了呀?啊,它这样的哈,好了,最后一个第七了,我们这个刚才都是用的两表连接是。
14:44
都可以实现三表连接呢?当然可以了,对不对?好,那假如说我们做一个案例,我们想去查询比较简单的哈,想去查询我们的这个员工名、部门名和所在的城市,可以吧?哎,怎么写?员工名是last name,部门名是department name,所在城市是city from,三个表employ e,逗号departments d,再来一个locations l非常好,WHERE3个ID点是吧?啊,Where这个应该是e.department ID等于D,点它and吧?哎,你光写一个连接条件是不够的。
15:44
啊哎,继续按的,我们d.location ID等于l.location ID是不是就出来了,哎,对他是这样写的啊,然后再去执行,然后一共是106个啊就出来了啊好吧,那当然在这个基础之上,是不是也可以继续加筛选呀,比方说and,我们的C啊,Like啊什么什么是不是也可以这样去加呀,比方S100分号,S100分号是不是以S开头的呀,好,我们去执行啊,你看我们看一下CT是不是都是S开头的是不是,是不是这个也好使啊,也就你可以继续加筛选,也可以继续加排序分组都可以,比方我加order好不好使啊,是不是也好使啊,其他的那name降一下吧,DSSC啊,我就在这个基础上直接说了哈,是不是都没问题啊,嗯。
16:44
这个是降学吧,是不是A在最下面呀?嗯,好了,这就是关于三表连接,哎,最后呢,咱们总结一下,咱们关于这个九二语法里边的等值连接就已然说完了哈,总结一下它里边的几个小特点啊,第一个小特点的话呢,我们发现我们多表连接,最终的多表应该叫等值连接哈,多表等值连接的结果为多表的交集部分,这样说没问题吧,哎,因为它只有这个连接条件值一样是是不是才产生出来呀,肯定是交集部分。第二,假如说我们N表连接,那么它需要几个连接条件?对了,至少需要N减一个连接条件,没问题吧?好,第三,那么我们多表的顺序是不是没有要求啊,没有要求啊,就是你你先放谁都可以。
17:44
啊,你也就是这个from后面这个顺序无所谓的,第四一般的在多表连接这呢,一般需要为表起别名,哎,你看我基本上是不是都是起了个别名啊,哎,这个要注意哈啊,起别名的手法呢,跟我们当时为字段起别名是一样一样的,好了,然后第五,那么我们的这个连接的话呢,它可以搭配我们前面介绍的所有是不是查询词句来去用啊,所有词句使用啊,比如排序分组筛选是不是它都可以支持啊,搭配着用都可以啊,其实不光是等值连接是这样的哈,呃,等会我们讲过的所有的链接,它都可以搭配这些来使用都可以啊行了,那么这个呢,我就说到这儿了哈,怎么。
我来说两句