00:00
那就是关于内连,也是最重要的一个,我这样去写哈,这个应该是这样去写内连接啊,那好吧,那这个内连接我们完整的语法应该怎么写呀,根据我刚才说的,记住了没有啊,完整的语法哎,这样哈语法啊,好,那么它的完整语法应该是select,后面加是不是查询列表from,我们表一有个别名inner是不是用这个呀,Inner照音,表二是不是也有个别名啊啊后面加连接条件,然后后面是不是可以继续再追加其他的呀?哎,我就不追加了,可以吧,嗯,不追加了啊,当然可以去追加的,哎,这是我们的一个核心的语法,那内联的话呢,我们说过它又分类分为是不是等值连接,非等值连接,还有一。
01:00
这个是四连接,哎,咱们昨天是不是就要通过这几方面说的呀?哎,那咱们就先说第一部分,就是关于等值连接,是不是做几道小题来试一下呀,嗯,好,等值连接我们做一个案例哈,案例一来这样我们把我这个,呃这个案例呢,我全粘过来啊看这是比较典型的案例。好,能看到吧,然后呢,这个是案例一,那么咱们先去做它啊,这个不调换了去啊啊录了让我们去查询员工名还有部门名,哎,这个我们以前是不是有90语法可以做呀,现成现在换成九九语法,那它是员工名一起来说吧,Last name department name from,我们的employees怎么写,Inner join department d e点底帕每台D等于D点底帕每台D是不是做完了,哎,这样去写哈,啊,那这个也是106行,那昨天用九二语法出现的那个等值连接的效果是不是也是106行啊,注意了,它们二者的效果完全一样,那么。
02:23
他们的执行原理也是一样的,也意思是说他是不是去拿着其中一张表去匹配另外一张表呀,那么如果说满足连接条件是不是将会显示出来啊,或者说筛选出来啊,行,这是案例一没问题吧,那么我们假如说把这两个表调换一下顺序能不能行啊?哎,那我们试一下,那这个地方就是departments放这对不对,这个就是D了哈,哎,还有哪啊,这个的话多了个D是不是?那行刚才是106行,现在我们再去试,是不是还是106行啊,哎,这个没问题哈,第一个案例我们就说完了,接下来我们看第二个案例,这个很显然加上了谁筛选对不对?哎,那就是案例二,那这个案例二呢,是添加了筛选,好,我们看一下这道题吧,查询名字中包含一的员工名和工种名。
03:23
怎么写select,我们的last name job title from in clothes inner job,我们的jobs j2e.job ID等于这点job ID有筛选了,我们要加where where名字1.lastnamelike,百分号百分号E能跟上吧?呃,其实跟昨天介绍的一样啊,哎,关键的就是还是是不是找这个连接条件呀,哎,找连接条件刚才呢,有同学问到说这个连接条件的类型这个东西啊,那我在这就提一嘴,你比方对于这道题,Jobs表里边job白D和我们employs里边的job白D,他们两个是不是属于关联列啊啊。
04:23
那么这两个连接条,呃,这两个关联列的类型的话,是不是我们要最好一样啊,也就是这个是你在设计表的时候就要考虑的,这两个表的这个,呃,这两个列的类型要一样,至于括号里面的长度,有的同学说那我写的不一样,是不是它会报错啊,不会啊,它这个长度的话,你要不一样,其实也没事儿,其实呢,就是我说了他俩最好一样,你就算不一样,只要他俩能够隐式的转换过去,它也不报错,能听懂吧,也不报错啊,但是我们是不是一般来讲就不要让人家SQ解析器那么麻烦了呀,还让人家转,你能让他一样是不是就让他一样啊,我这么说能听懂吧啊,就是你在设计的时候,你跟他保持一样,如果说呃,可能有一些意外,你就是没跟他一样,其实一般来讲,只要他饮食能转换,它实际上也不包错的,能听懂吧,啊,它是这个意思啊,行了,这个说到这儿添加筛选啊,那么接下来呢,我们再看第。
05:23
三个问题,我们呢,添加上了是不是分组,还有筛选呀,添加我们的分组外加筛选分组和筛选,比方说我们要查询一下部门个数大于三的城市名和部门个数,什么意思来查询的是城市名是不是C,那么C在这部门个数部门的话是不是在这个表呀,是不是这两个表连接关联条件或者连接条件是对它的location ID是不是来自于这个地方啊好找好了哈,那我们呢,根据需要它应该有一个个数,那我们加上比方说个数部门个数可以吧,再去from什么嘞?啊,我们的departments先写谁是不是都行啊啊D。
06:23
然后在inner join,我们的locations l啊d.location等于l.locationd这个没有where是不是直接可如BY查询哪个,它应该是不明个数大于三的城市名,那意思是说先查询每个城市的部门个数,所以我们应该先去查,呃,按城市分组,好我们看一下这个效果,那这样的话是不是就是每个城市的部门个数都能列出来啊,那么我们算在这个结果基础之上进行筛选having,我们的a count星号对不对,Count星号大于三,好,那这样的话就行了,能跟上吧,啊,它这个意思哈,这是添加了。
07:23
分组和筛选啊,其实像做这种题,你一步做不上来,就可以分情况讨呃分步讨论,第一先去查询是不是每个部门的,呃,错了,每个城市的是不是部门个数啊好,第二步你再去查询啊,也就是筛选满足条件的对不对,那么在什么基础上,应该是在一结果在一是不是这个结果上呀啊筛选哈,对吧?啊这样去做哈,行了,我们再看第四步案例四,每个案例是不是就是相当于一种情况呀,嗯,那么这这个案例呢,我们是添加上了排序啊,添加上排序跟刚才非常类似,查询哪个部门的员工个数大于三的部门名和员工个数,并按个数进行降序,哪个部。
08:23
门的员工个数大于三,我应该先查什么?第一是不是查询每个部门的员工个数,对吧?应该是select count星号啊,然后再去逗号部门编号,然后再去from我们的em clients group by谁嘞,Department ID是不是做完呀,好,我们现在呢,先看一下效果啊,是不是这么多啊,这么多,然后呢,我们再在一的这个结果基础之上,那就是第二步了哈,在我们一的结果上是不是筛选呀,啊筛选员工个数是不是大于三的记录呀啊,然后并排序好,那么在这个基础之上,那我就把这个是不是粘过来。
09:23
然后呢,再进行一个,哎对,你在这个结果上筛选绝对是不是用having呀,那having的话我们再去写count星号大于三,哎那么大于三的呢,有可能有多个,我们去执行,是不是挺多的,再进行一个排序啊,是不是all by,哎,这个好像没有涉及到连接是吧?这个没涉及到连接,我们把那个部门名的啊有有是吧,我这查的是那个department ID部对不对?那那我这是不是写错了,应该是department name,那我这就是改成department name,那你这个地方是不是要改呀?哎,那你这应该是inner join department第二,呃,只要两表连接,绝对需要加连接条件,我说的对吧,这是绝对的啊,这是搭配的,等于D点它对吧?啊,那这个我就粘过来能。
10:23
跟上吧,大家你哪一步跟不上了就直接说啊,就直接说啊,咱们这个学思后可能跟学渣va不是特别一样啊,还差呢,是不是这啊order by我们后面加can't啊行吧,就按它来排序吧,呃,来一个那个让干嘛呀,降序是吧,降序decc好我们再去执行出来了吧,啊这不就行了吗?哎,这个可以加上这个个数哈,好完事,那这个就是关于我们的这道关于添加排序的这个题目,最后一个最后一个的话呢,来看一下他应该是干嘛的嘞,查询员工名,部门名,公主名知道意思吧,是不是三表连接呀?哎,三表连接哈,那我们要查的有员工名,Last name,部门名。
11:23
Department name,公主名job title from employ in draw department,好,这样直接把它的关联条件,连接条件加到这个地方啊,E点它等于D点它没问题吧,再来一个inner join叫做jobs j21.job ID等于这点job ID,好,然后当然它这有一个排序,Order by,我们的de apartment name DEC是不是降一下序啊,好,那么我们再去执行出来了吧,好,我说一下哈,当我们更多个表连接的时候,跟我们前面一样,A表连接。
12:24
至少需要N减一个连接条件,那么我这个连接条件它是跟着我们是不是,就是你比方说呃,Employed和departments去连,是不是跟在它的这个后面呀,直接这样去写的哈,然后另外呢,还有一个关于顺序的要求,一般来讲我们说过两表连接,它没有什么顺序要求,这两个表,那三表的话它有没有顺序呢?三表的话有没有顺序,它其实有这么一点点啊,就是你看啊,它实际上是这样的,给大家说一下,那它执行的时候先看它对不对,看完它了,他要和它连,注意了,它俩一连呀,就相当于形成了一个特别大的这样一个表格,能听懂吧,这个大的表格是不是就包含1PLOS的所有数据和department的所有数据啊,它是这样的,然后你再去join jobs的时候,这个jobs就给你这个大的表格,是不是去连呀,哎。
13:24
这种感觉啊,这种感觉,那意思是说,只要你这两个表里边是不是有一个可以和它连就行啊,但是万一这两个里边都没有和它连的,那就不行,对不对,那就不行,是这个意思,其实说白了也就是你要保证你后面的这个表,呃,也就是保证你要连接的这张表吧,和前面的是不是有连接条件呀,只要有连接条件就行啊,那你比方说我们找一个要不行的应该是谁了,这个好像它跟它能连是吧。呃,对,我要是我要是这么着呢,这样就不行了,我jobs和我jobs和departments连能行吗?看知道我的意思吧,你看我要是先写jobs,然后去连它,这样还能行吗?这样肯定是不是就不行了,我说的对吧,哎,你要这样连肯定就不行了呀,因为啥,因为你这俩这俩条能能有连接条件吗?没有啊,啊也就是说了一堆,就是想告诉你,你最后连接的这个表和前面是不是必须有连接条件呀,你能找到啊,找不到肯定是不行的啊好,只要能找到那顺序就无所谓对不对,只要能找到顺序就无所谓,啥意思,我这个先放的它,再放它,我这俩换一下行不行,Jobs和department可以啊对,但是你这个连接条件是不是要跟着换呀?啊,他这个意思的啊,没问题吧。
14:55
对,那个是固定的啊,固定啊,有的同学说能不能把这个是不是一起放在这啊,啊不能啊,那这个是一个思后标准,呃,当然呢,你要非要放后面,你会发现MY中也不报错,但是它不属于标准,明白吧,嗯,这个试过啊,就是你放后面它也不给你报错,但是咱说了不要认为不报错就对,是不是啊,行了,这是关于我们的,呃内连接里边的等值连接,我们需要注意的事情呢,我们写到这儿来啊,这个是特点啊,呃,这个里边的话,我们会发现它也可以去添加啊,添加像我们说到的排序分组筛选,是不是也可以添加这些呀,好,第二呢,那么它呢也是可以干啥呢?呃,有一个地方啊,就是阴,它可以省略,那么像刚才我们音呢,是不是都没省略呀,其实我们也可以都省掉,我把音呢去掉,这个效果也是一样的,是不是也是。
15:55
这个效果呀,啊,没有问题哈,音着可以省略啊,然后第三第三那么我们发现我们这个相当于筛选条件放在where后面啊,而我们的这个叫做连接条件是不是放在on的后面呀啊,那么这个叫做提高了我们的分离性,提高了分离性啊,然后便于阅读,便于阅读啊,那么这个的这个的话算是我们呃,这个叫做SQ99语法里边的一个比较大的一个好处哈,啊其他的也没啥,然后第四点呢,就是我们发现这个里边的内连接里边的等值,也就是我们这样写吧,Draw语连接和CIRCLE92语法中的九二语法中的等值连接,那最终实验的效果是一样的啊,那么都是啊,查询是不是交几部分呀。
16:55
啊,多表的交际可以这样去说吧,啊,它这个意思哈,行了,那么我们这个填一下啊。
我来说两句