00:00
排序。这个SQL语句会越来越大啊。来,那这整个这块呢,就是一个条件查询是吧。排序排序啊排序呢,就是升序对吧,或者是降序,比如说我们找案例,各位啊找案例。呃,比如说找抽找抽。找出工作岗位是manager的员工。并且按照工资的升序排。复杂了是吧,那行简单点啊,按照工资升序排。按照工资程序找出员工名和薪资。
01:06
怎么是?Order各位啊,这个词汇啊,叫order或者叫关键字啊,叫order是排序,是通过。BY是通过通过某某某干啥排序,通过谁排salary。默认是升序还是降序,我现在是没有指定升序,也没有指定降序,默认是升序排列。看见了吧?哎,这是不是默认升序啊,按照工资升序找出员工的名字和薪资,结果是这样一个结果。来这里呢,有一个结论就是注意注意什么默认是升序啊,怎么指定升序或者降序呢?记住asc表示升序,DC表示什么降序?
02:21
DC不是DC啊,DC来select name salary from emp order by salary,这是一种方式,对不对?或者说你可以在这写ANC,或者说你可以把这个AC变成什么de,这个定升序排,懂了吗?指定采用它升序排,如果说你写D,那就指定什么降序,看见了吧,这是不是降,或者说你写就是什么。
03:01
这是什么意思啊?序这是什么意思啊,生序这是什么意思啊,降序掌握了吗?哪个语句order order啊表示通过这个这个排序好,那稍微复杂一点,各位看好了啊,咱们要升级难度的啊,升级难度来现在需求有一个新的需求是这样说的。怎么说的呢?按照工资的升序排。这个啊,工资一样的,按照名字的降序排。按照什么工资的升序,降序吧,降序。排列。当工资。
04:00
相同的时候再按照。名字的声序排列就这么定了啊。那就这个案例了,各位什么意思?这是按照工资的降序,你会吗?按照工资降序怎么怎么做,按照工资的一个降序排,就是这样工资降序。对吧。但是后边说了,当工资一样的情况下。再按照名字的升序排列。F应该在上。S应该在下。对吧。F到S是生距吧,但目前来说是。
05:03
这个S和F这块是降区吧,这是。我说要按照名字的声序排列嘛,所以这句话呢,咱们直接拿过来放到这儿之后呢,后边跟上去一个什么呢?逗号各位看清楚了啊,Order先按照这个自动的降序排,然后逗号后边跟上什么A。好,大家看这一次工资如果相同的情况下,是不是按照name这个字段的升序排了福特在前,SC在后吗?是不是好?那么请同学们告诉我多个字段排序的一个原理是什么?多个字段同时排序,要注意越靠前的字段起的主导作用越大。
06:10
后面的这个字段可能压根就用不上,如果说我工资压就不相等,跟你的e name就根本半点关系没有,我可以完全通过我的工资进行升序或者是降序排列。后面这个字段什么时候会启用呢?只有当你前面的这个字段相等的情况下,后面的这个字段才会被启用。听懂了吧,也就是说有可能这个是不是压根就用不上,什么时候后边这个字段才能用得上啊,前面那个字段它相等的时候什么意思,你看3000和3000是不是相等,凭什么这么排。
07:01
凭什么就就就相当于你考的90分,你的同桌考的也是90分,对吧,凭什么你是第二名,我就是第三名啊对不对?所以说这种情况下是不是必须参考的排序规则。是不是别的排序规则呀?啊,然后呢,我们查了一下历史啊,我们发现这个90分和这个90分还是有区别的,这个90分他迟到,这个90分他没有迟到过,对于是乎第二名就是谁,第三名是谁,我只是举个例子啊,举个例子。选择的是地面。别逗了啊,就是咱们先去理解这个意思。主要是这个不是说谁第几第几啊,这意思就是按照工资的降序排,如果工资相同的话,按照名字升序排。
08:00
是不是,哎,你这里需要注意的是什么呢?注意的就是越靠前的字段。越能起到主导作用。只有当什么前面的字段无法字段啊。无法完成什么排序的时候啊,只有当前面的字段无法完成排序的时候,才会启用什么后面的字段。嗯。好了,那接下来呢,再跟大家说一下排序这个东西啊,它可以怎么着呢?它可以用字段的顺序,Select salary from em order by2。
09:04
这个二代表的就是第二列。就表示根据谁排序,根据他。不是,怎么还没有反应过来,咱反应迟钝了吗?这个二代表是第二列呀,那如果说写一是按照谁排排了吗。排序了。名字排了啊,工资乱了。不,这个一二就代表你第几列,但你这种方式有一个问题,你这个列如果顺序发生改变之后,你后边这个。你这个列的顺序只要调换一下,你这个SQL就废了。
10:01
对吧,就是这样吗。哎,这同学你咋啦,不太对啊,你平时挺欢实啊,感觉你这个今天这个好像有点困啊,你这个。123456个段是就是资按照薪资的升序排吧,那我问你这个表的表格当中字段的顺序是这种顺序,如果我把这一列调换到这个位置的话,你想想这个S语句是不是就不行了,所以这个健壮吗?不健壮我们还是建议你写死。字段名。这样会更好一些。也就是说这个情况你可以在下边练练手,自己写的时候可以这样写,你反正你懒得写这个单词啊,这单词好长啊,是不是我懒得写,数数12345,第五个行写个五就行了,理解,但是你绝对不允许在Java程序里边这么做,后边同学帮我关下门。
11:22
对,我刚才说到哪了,就是说这个诶。我这个语法讲一讲。可以不写的啊,可以不写。好了,排序。那咱们得来点稍微有点难度的啊,找出。找出工作岗位是salesman的员工,要求按照这些员工的工资升序排。是sales是吧,问的员工,并且要求按照什么薪资的升序或者降序吧排列,怎么写sla什么某某某,不知道from什么EP,然后呢?
12:15
Where where,条件是啥?Job等于什么?Salesman。Order d、查什么name job和。拿过来。找出工作岗位是sales,并且按照工资的降序排列,达到了吧?所以说这条语句,我希望呢,大家呢,要知道它的执行原理,各位啊,执行原理,先执行where,在先执行from,再执行where。
13:04
在查最后排序输出。Select,某某某,From。Table name。Where?条件,Order by。对吧,好,先执行再执行,再执行,最后执行谁。注意啊,是最后执行的。那雨桐老师你怎么验证啊?
14:12
啊,Order后面写什么。大家看清楚,我这个select语句后面是不是有一个别名,只有我这个代码执行了,这个别名是不是才有。我后边是按照这个别名排序对吗。如果这条语句能执行,这说明什么?这说明在执行的时候,这个别名是不是已经起好了。如果不能用,就代表这个别名现在还没有起名,我们看看能不能用。可以按照这个排序,那就证明select后边的先执行。最后才会执行orderby。
15:02
你要注意这个思后语的执行顺序,帮助你去调试以后的程序,写上表名啊,最先是从这张表里边儿查询记录,经过这个条件一过滤,过滤之后查出来,最后排序输出。最后排序输出要注意顺序各位啊,行了,那这样的话,咱们这个排序已经讲完了啊。
我来说两句