00:01
行了,那咱们接下来看看三张表怎么连。三张表怎么连接查询?我们来一个案例的找出每一个员工的,找出每一个员工的什么。部门名称以及工资等级。找出每个员工的员工,咱们先能拿出来吧,EP number e dp number,这是员工from。
01:01
我觉得啊,大家下页之后写so啊,千万别着急说自己一下全写出来,我也没有这个能力,我告诉大家啊,一般我们这个题目是什么,我们要对它进行拆解,就是我们第一步要干啥,第二步要干啥,第三步干啥,这是我们的一种正常的一种方式,你别老想着一下就能写出来。还有一个题目必须用文字的形式给它表述出来,千万别没有文字,脑子里边想这个东西。这个你需要一点一点的给他弄出来,演P表每一个员工的部门名称。有员工还有哪个表,部门表,所以你要把部门表的数据也给他干什呀,查出来你看着点,我觉得有数据最后就好写,没有数据凭空想象,这个circle就很难去写。
02:01
啊,然后呢,还有一个工资的什么到级,这个工资的等级,咱们也可以把这个表拿过来放到这啊,我们最好呢,把这些表的别名先记好,E表这是什么,D表这是什么呀?叫salary。Grade s表对吧,那么接下来呢,就是说找出每一个员工的部门名称,我可以让我的表和你D表做表连接,我的部门编号可以和你的部门编号相等,通过这个来找出什么每个员工他的部门名称吧,那工资等级怎么找啊?工资等级好像还少一个,这个表里边得有一个工资对吧,工资这块呢,咱们就可以加一个salary。这是他的工资。
03:05
找出每个员工的部门名称。我通过这个字段连接。找出每个员工的工资等级,或需要这个员工,他的工资在这个和这个区间。对吧,所以就意味着我这张表和这张表进行连接,同时我这张表还需要和什么这张表进行连接,对吧?那这个SQL语句怎么写啊。我来解释一下啊,注意解释一下,你把握不住好一个规则啊,AB joinb在join c。某某表示什么意思?表示什么表示A表和B表先进行什么表连接,连接之后A表。
04:15
继续和谁C表进行连接,当然你也可以认为什么呀,A和B连接之后有个结果。明白吧,连接之后的结果再继续和C连接。明白啊,但你也可以说A和B连接,然后A呢,再和C连接,这都是说得通的啊,都是说得通的。好了,那么接下来咱们就把这个circle写一下吧,各位怎么写?Select这个地方是显示什么东西,最重要看人家提议,人家这个提议是找出每个员工的部门名称,那员工名是不是得有对吧?那部门名称我问你是谁,是不是就是d.D内嘛,然后还有一个叫什么工资等级,那是不是就是S这张表的呀?叫S的什么grade吗?From谁就行了。
05:16
我说了A先和B连接,然后A再和C连接,你现在是不是正好有EPE表要和这个先连接,然后呢,EPE表再和这张表连接,是不是就可以了?那你一个一个来,别着急,别慌啊,你一表先和这张表连接的条件是啥?是你E表的这个部分编号等于D表的部分编号吧,你先写一步呗,写多少算多少,谁em PE,赵谁谁。DEPTD。啊,条件是啥?E的什么部编号等于D的什么部分编号,这是肯定了,这是不是两张表连接了,我们再拿这个E表继续和谁连接?赵宇赵宇能看懂吧,赵应谁?
06:06
Grade s。E的员工的工资在S的最低工资和S的什么最高工资之间。诶能看懂不EPE和这个连接条件是它们都E呢,再和这个S连接,连接条件是他。分开看,虽然是多张表,你还是看成几张表两张表去连就行了。啊,来,我们拿过来,拿过来啊,放哪儿啊,放这儿走。十十四条记录吧,每一个员工所对应的部门名字以及公司等级是不是都有了啊,就查出来了,好,我再升级一下难度啊。还是这个案例,我再加一个条件。
07:06
找出每个员工的部门名称、公司等级以及上级领导。你这个时候就必须得用外连接了,King是不是员工,King有没有部门名称,King有没有工资等级,都有吧,所以king是不是必须得查出来?商代着查谁每个员工的商业领导吧,你要用内连接,是不是就导致king丢失了你整个一个活生生的员工king就没了,人家要找的是这个员工的部门名、工资等级,你这这个信息很重要啊。是吧,Q的薪资是5000,公司等级最高五级啊,你是不是Q是不是必须得出来呀?所以这个就得用外连接了,外连接那这条SQL语句我们直接在上面改就行,各位你告诉我这个怎么改,别慌啊,接着往下找就行了,各位我能不能继续再往后再招引招引谁E这个E,那我这个就叫E1得了,反正一张表看成几张表,两张表,但是重点查的是这张表还是这张表。
08:18
看到没有,上面这张表在左边,所以这个音前面加什么left。你有在注意听课吗?重点啊,这个left能到。不行,你写到这表示你这张表和这张表的关系吧,所以这个left写的位置有讲究,指的是life,写到这指的是我这张表和这张表进行表连接,左边这张表是它,它作为主导表明白。E1ON条件是什么?的什么领导编号等于E1的什么员工编号,上边你把谁查出来E的e name就是谁员工吧,是不是?哎,EE的是谁领导?
09:19
你这个不是举一一这张表的一吗?好,你把这个拿过来,贴过来,14条记录。King的部门名称是accounting,工资等级为五,上级领导为空。对吧,哎,这条语句啊,够你用了,以后的开发也基本上就是这样。听懂了吧,但你得注意啊,你得注意什么呢?就是表连接查询的时候,我这个到底用不用外连接,你得好好考虑清楚。你该用内连接用内连接,该用外连接用外连接,各位不能也不能乱用啊,也不能乱用,你看有的地方用内连,内连你看有的地方用什么呀,外连。
10:06
具体用不用外联,你得看你当时你的你的业务啊,就是你这个项目是是做哪方面业务的。对,这是很重要很重要的啊,你得根据这个业务分析一下。我这个数据对应的那个有没有可能没空。你具体看那个业务。好了,那这样的话,咱们就相当于啊,咱们这个今天上午啊,咱们正诶整个一上午这个时间我们都讲,就讲了一个知识点,就是什么表的连接查询,一共就三天课,半天时间都在讲连接查询,你通过这个也能知道这个的重要性。重要性各位啊,就是说咱们程序员增删改查我告诉你啊,增删改查,增删改查我告诉你上面这三个都是什么固定的。
11:01
听懂了吧?写法非常固定。没有,不会写的。大部分成员都是在这个位置上出问题。因为查询语句这种东西太不固定了,它会根据你实际的业务进行检索,进行查询,那你这个查询你的搜狗语句,你三张表四张表,五张表进行表连接,你要是弄不明白,那以后你开发就很痛苦了,那就很痛苦了,所以这个你是天天用天天写,天天用天天写的东西,咱们最好就是说咱们今天啊,你下课下再加上你的这个复习练习,这个一定要把这个掌握了啊,不的练接插距太重要了啊,太重要了,那今天上午呢,我就不再往下讲新东西了,各位啊,然后呢,剩下这几分钟,你最起码也可以挑两个例子,你把这个表的连接查询,你自己想例子啊,自己想想例子,你敲一敲这个表连接上去,看会不会敲行吧,哎,动手写一下。
我来说两句