00:00
好,行了,咱们先看一下第一题说查询一下和这个人呀,相同部门的员工姓名和工资啊这个我录没录啊,啊录了哈,好,那么在这呢,我们就应该是先去第一步哈,这样去写,第一我们应该先去查询是不是就是名字叫这个东西的部门啊哎,那我们应该是一起来说select department ID from,我们的employees表where,我们的last name等于啊是不是叫这个呀,C对吧,好,那么接下来呢,我们再看第二步去查询部门号,等于是不是一这个结果呀的好,那么员工的姓名和工资好,那意思是说select last name salary from employees啊好了,然后在外我们的。
01:00
Department ID对吧?这个应该用等号还是印这些,也就是你看一下我们的这个子查询的结果,它属于标量子查询还是列子查询标量吧?啊那因为名字叫这个的话呢,它只有一个编号对吧?那么现在呢,我们再去执行看一下是80好吧啊,所以这个地方我们应该要等于就行了哈,这是关于第一题,这就完了,诶啥呀,这是哎,CTRLC是吧?哎,这个就完了哈,来看一下这个人是谁呢?啊,是不是好多呀啊这个就出来了哈,行,这是第一题,那么接下来看第二题,查询一下工资比工资平均工资高的这些这些好,那么第一步的话,我们绝对应该先查平均工资啊,Select avg salary啊。
02:00
From我们的employees表,而且它的这个结果是不是绝对是一个值啊,啊,绝对一个值啊,我们看一眼吧,看这个平均工资是多少,六千四对吧?那么接下来第二步我们再去查询工资大于是不是一这个结果呀的是不是这一大堆,哎,要查这个哈,那么就是要让你查的呢,你放在后面last nameme employee ID salary salary,然后再from我们的employees表,Where salary,这个怎么写啊,是不是大于就行啊啊,因为这是标量嘛,那所以说是一个值啊好,那么我们在这儿也是粘回来是不是就完了,哎,这是关于它看一眼效果啊,是不是也是一堆啊,51行,看一下你的结果是不是51行啊行,第三题呢,相对就比较麻烦了,有的同学到现在。
03:00
题都没读懂呢,好,查询各部门中工资比本部门平均工资高的这些信息,那么我们先别管别的,这里边肯定会用到各部门的平均工资吧,所以说我们上来之后呢,就可以先去查询,先去查询谁呢?哎,各部门的平均工资,那就是select avg salary,哎,平均工资哈,然后再去逗号,我们加上department ID,好,From我们的employee资表,然后在group five,是不是departmentd,好,我们来去查一下吧,啊,执行是不是有这些呀?好,那么根据这个表呢,我们再去分析这个题,它意思是说各部门中工资比本部门本部门平均工资高哈啊。
04:00
那么这些员工都有谁?我们随便举一个例子,比方说20号,跟着我来看哈,20号的部门的平均工资是9500,那么我们就看一下20号部门都有哪些员工,他的工资都是多少对吧?好,我们打开表,注意看20号部门的工资哈,20号我们把这个呢往这拉一下,那么department ID的值是不是为20号呀?那么我们把这个看一下,锁定一下20号部门的也就这么两个人,一个人的工资是6000,一个是13000,刚才说了他们两个人的平均工资是9500,那知道人家让你查的是谁了吧?对,他是说让查的是不是就是一万三呀,为什么?他意思说部门号都是20,那平均工资是九千五大于九千五的,那是不是就这么一个呀,这样才能跟上吧,你得要知道让我们查的是谁哦,原来是这样的是吧?
05:00
那意思是说,那么我们需要拿着我这个结果对不对,拿着这个结果和谁去比对呀,和谁去连接呀,是不是和这个大表呀,我说的对吧,和这个大表进行连接,那么连接条件呢,就是部门号一样,我说的对吧,部门号一样,那么有一个条件呢,就是我们的salary大于是不是刚才的平均工资啊就行了,我这样说能跟上吧啊所以说他用到了是咱们相当于刚讲完的是不是from后面的子查询啊啊,或者也称为表级子查询啊,那这个题呢,应该是这样来写的,那第二步,第二步呢,就是相当于去连接我们一这个结果集和我们的los表,好那么连接这两个表,然后再去进行是不是筛选呀,好,那么我们先呢把这两个表。
06:00
连接一下哈,呃,把这个查出来,查出来的话应该是employee ID啊,Last nameme salary,然后FROM2个表,一个是用los起个别名E,然后在inner Joy,哎,第二张表其实就是谁一这个东西好,那么我们把它可以这样摘回来吧,可不可以啊,放这哈啊那这个呢,不一定非要放在这儿,就是只要放在装后面,你一一照照这个地方是不是也行啊啊,然后起上一个别名,这个别名我们就叫AGBP可以吧,那这个avg这个最好也起上别名,因为一会是不是要用得上了啊,一会儿用得上,你要一会儿用的话,直接这么去写的话呢,是不是就容易出现歧义啊啊,他也不知道你这个avg是针对于这个来去说的,还是这个里边对不对啊,所以你起个别名啊,好,我们再去加两个表的关联条件,应该怎么加1.department。
07:00
ID等于AG dep.department ID好连接条件,呃,加上了之后我们加筛选,筛选刚才说过了哈,对了,就是我们的AG下划线第1p.AG啊,说错了,应该是先是前面的对吧,就是salary要大于是不是这个玩意儿啊啊完事我们看一下对不对哈,直行啊直行好,那么一共是38号,我们看一下这个部门号好像没查出来对吧?我们把部门号查出来,这样看比较明显,那我这就再去加一个逗号,比方1.departmentid可以吧,那么现在呢,我们去执行啊,刚才我们发现如果说是20号部门的,是不是一万三的那个工资的员工就查出来了,对吧?啊,你要是不相信呢,我们再去举几个例子,比方30号部门,他查出来的是11000,那刚才我们看30号部门的平均。
08:00
资是多少来着,30是不是四千一百五啊,是四千一百五吧啊,那么现在呢,我们打开我们的员工表,我们找一下30号部门,30号部门,30号部门的这个员工还是挺多的,嗯,是不是这些呀,大于四千一百五的是不是就是一万一能看到吧,所以我们查询的数据是正确的啊,所以说像做这种题啊,建议你先自己要清楚大概要查询哪些数据,对吧,然后你再去做最后验证一下对不对啊好,行了,这是关于第三题啊,说到这儿,接下来我们往下再看一下第四题,呃,第四题第四题呢,让我们去查询一下,呃,和姓名中包含字母U的员工,在相同部门工作的员工号和姓名,这个简单,我们应该先查谁,先查U。
09:00
是不是应该先去查询姓名中包含字母字母U的员工的部门对吧?员工的部门好,这个怎么写,Select department ID from,我们的employees where,我们的last name like,好,包含有,那就是反分号对吧?好,应该这个的话会有很多,是不是会有很多呀?哎,那么我们先跟它去一下重的好,这样的话列表的值是不是就是去重之后的了?哎,要少这么一丢丢,然后呢,我们再看第二步,我们再去查询部门胖等于是不是我们一中的一个呀?呃,一中的任意一个的,呃,是不是员工号和姓名对吧?那应该是select last name。
10:00
ID from我们的employees表,Where where,嗯,Where,对吧,我们的department ID in对了哈,那么in的话呢,再把这个东西粘过来没问题吧?哎,这个应该用in了,因为我们发现此查询的结果集是不是多行了呀,多行的时候选择用in行了,再看一下第五题查询在部门的location ID为一千七的部门工作的这个,这个貌似咱们上课的时候是不是也做过了?好,我们应该先去查询的是对location ID为一千七的部门有哪些,应该是多个,对不对?Select部门department ID from我们的departments表,Where where,我们的location ID。
11:00
应该是等于1700 1700,哎,是一万七是吧?好,那么现在呢,我们再把这个根去一下哈,啊啊有有重复的没有啊,这个还好,没有重,没有重复的是吧?啊啊,那你也去一下,去一下实际上没毛病对不对啊好,那么接下来呢,我们再看第二步,我们再去查询是不是部门号等于我们一中的是不是任意一个呀的员工号,那应该是select employee ID from employees表吧,Where where,什么department ID等于any行不行啊,可不可以啊,可以啊,等于an是不是等价于in,等价于in啊,这个也是可以的啊,我们这样去弄一下好了,再。
12:00
去执行是不是可以出来呀,啊,一共是18行啊,哎,再看第六题查询管理者是K的。员工姓名和工资是不是有点类似,类似于自连接的这种感觉呀,管理者名字叫K的员工的姓名和工资怎么办?先查谁是不是查询我们姓名为K的员工编号,对,很好,而这个员工编号是不是等于某一个员工的那个管理者manager者ID,好,那应该是select if employee any from,我们的employees表where where,我们的last name等于K,好像咱们里边没有叫king的,对吧,画个条线,因为我把数据改过哈,嗯,那就这样吧,然后第二我们再去查询,我们查询谁呢?查询哪个员工的manager ID是不是等于我们一呀。
13:11
啊啊,等于一啊,好,那应该是select last name salary from employee表where吧,Where,什么manager in还是等于啊,不知道,那不知道,我们看一下里边几个是不是有两个呀,也就是管理者,就是姓名为K的有两个对不对啊,所以我们这应该用in啊,这个呢,有的同学可能会问到说呀,有的时候我们搞不清楚它的结果就是子差的结果是多行还是单行对不对啊,其实当你不知道的时候,你就用印是没问题的,因为哪怕你用印里边就一个值也没事。对吧,我这个列表里边放一个值,语法上执行上是不是都没问题啊啊,也没事啊,它这个意思行了,那么现在呢,我们把它弄过来啊,啊,当然一般的其实是能看出来的,尤其是它里边是不是用上了聚合函数啊,那肯定它就一个值啊啊粘错了吗?哎,我怎么粘粘到那去了,我现在感觉刚才行,可能手速太快了吧,嗯,行了,再看一下第七题,查询工资最高的员工的姓名,工资最高的,那我应该先第一步先查谁呢?最高工资那是select max salary吧,然后再from我们的employees,对吧,看一下最高工资是不是两万四啊那。
14:57
这个人是谁呢?我们把它给找出来啊,查询工资是不是等于我们一这个结果呀的啊,是不是姓名呀,啊相当于干一个这个事情哈,哎,那我们是select要求他俩连接吧,Can cut,我们的first name逗号,呃,列名,这个是列名中间是不是挂个点啊啊那么我们知道其实你用什么隔开,他没说是吧,没说我就不管了啊可以吧,哎,然后呢,我们的这个列名的话叫做姓名中间有一个点,是不是这样的去写啊,哎,你可以用双引号,是不是给它引起来啊好,然后呢,From,我们的employees where where,我们的salary,等于用等于就可以吧,因为这个最高工资绝对就一个,绝对就一个,好了,我们看一下是谁。
15:57
是不是就是这个king啊?哎,这是姓和名是不是连在一起了啊?Steven king哈,你听这个名字还是挺好的啊,行。
我来说两句