00:00
呃,上次课呢,咱们进阶了这么几波排序查询,常见函数分组查询,还有连接查询,连接查询是不是说了一部分呀?啊,那我们先去说排序查询,我们首先呢,把排序查询的语法呢在这罗列一下,呃,这个开了哈,啊那么它的这个语法的话是select的,后面是不是加我们的查询列表啊,一起来看哈,From我们再去加表明诶有可能是不是加外筛选呀啊,我要筛选条件,那后面再去加order by,后面是不是加排序的?呃,你可以认为排序列表对不对,排序列表啊,行,这是它的语法,那么我们需要注意的呢,有这么几点,第一,那么我们这个排序的话,后面可以追加是不是两个关键字啊,一个是asc,还有一个是DSC,那其中asc代表的是升序啊,那么这。
01:00
这个是默认的对不对啊,就是如果不写,如果不写默认是不是也是升序啊啊还有一个呢,叫做DC,这个代表的是降序,好,这是第一点,第二点呢,给大家说的是我们的排序列表,它支持什么对不对啊,那这个可以去支持是不是单个字段呀,我按单个字段排序没问题吧,也可以支持多个字段对吧?啊那么我们也可以支持像说到的函数表达式别名支不支持,支不支持支持别名啊,是不是支持这些呀?哎,这个要注意了哈,这就没了,这就是一个排序啊嗯哦,如果说你要再去加,可以再加第三点,那就是order bed位置吧,Order bed位置一般放在呃,放在我们查询语句的最后啊,当然呢,我们可以给大家去加一个除谁之外啊,哎,是不是limit语句啊?
02:00
除limit语句之外啊,好了,这就是关于我们的排序查询就说到这里了哈,啊,那行,那么接下来呢,咱们再看下面一步,关于常见函数,首先呢,咱们来说一下函数,它本身代表的功能函数嘛,它就类似于我们Java中的方法啊,那么所以说它的这个好处呢,就是它可以提高我们的是不是宠用性呀,呃,提高重性。第二个好处的话呢,还有一个什么好处来着,是不是隐藏了我们这个实现细节呀,我们不需要关心说某一个函数,它具体它里边是怎么实现的对不对,我们只要拿来调用就行,这是关于它的一个好处哈,好,然后实际上呢,从一定层面上来讲,我们的这个函数的使用也提高了效率,因为它是不是把一组逻辑语句已经封装好了呀,那么下次我再调用的时候呢,实际上我就减少了编译啊,那么只是做执行啊,那么它就无。
03:00
程中也提高了效率,当然咱们再去讲自定义函数的时候,还会跟大家重点强调这一步啊好,我们继续往下,那么我们接下来呢,就又说到了如何调用一个函数,使用的语法是select吧,后面再去加函数名,然后再去加深,呃,是不是时态列表呀?呃,那你的13列表它是支持可变长度的对不对?哎,怎么说呢,可变长度也不对,就是支持要么零个,要么多个,是不是都行啊哎,这个根据你定义的函数的参数列表来的啊呃,大家呢,学到现在的话,你一定要注意一点,不管是Java中的方法,还是咱们MYSO中的函数,永远我们的这个参数列表的个数啊,类型是不是必须食参和形参一致啊,哎,这个是死的啊,这个是死的啊,你不管是学多少了之后,它都是这个样子的啊,时刻要保证这一点行吧,那么接下来呢,我们再去说这个咱们常见的这些函数都有哪些啊呃。
04:00
这个我找同学来说啊,咱们找一个组的啊,来张乃欣字博涵数说一个速度一点啊,倒计时了,你无形中占用了我们的时间,什么说啥呢,这你们都能听得懂啊,你们你们是这个其实没听懂,就自己说的吧,看看看他的意思是是连接呀,啊你站一会儿啊,想了半天,前面同学啊,站一会之后五分钟自动坐下啊马杨涛,哎,你是叫马杨涛吗?郑广深,嗯,Sre这个意思是截取子串好前面同学对,哎,啊金建华。
05:00
是吧?嗯,对,After和lower,请坐哈,这个的话是变大写,然后是lower事变小写,前面同学自己说就行了,前面同学,对,就是你啊,什么replace,意思是替换,对,很好。前面同学,嗯,张凯南是吧?刚才那个叫做刘苗苗是吧?嗯,诶,这名也挺好听,嗯,Length是吧?Length的话是获取字节长度,好前面同学就你tri是去前后空格,好,请坐前面同学l pad,这个是左填充,还有一个是rpad右填充,还有没有呀?对,In s tr,这个是来获取。
06:00
字是子串对不对?子串第一次出现的,所以没了吧,啊,就这些哈,数学还数我们再找一组同学哈,嗯,何星星有向上曲好C有向上,题主好,请坐后面同学啊,前面同学吧,什么round代表的意思是四舍五入好后面同学Mo Mo代表的是取魔好在后面,嗯,就是你最帅的那个支康乐是吧的话代表的是向下曲着对吧,还有没有呀?对,还有一个是后面同学什么是吧,说过了你站的。
07:00
是不是你们组员坑你了呀,后面同学啊,对了,穿K的是吧,截段对吧,嗯,行吧,你们两个坐下吧,啊,你们两个坐下,那个张乃馨也坐下了啊后面同学,哎,主要是看着滕英达同学很老实,让人家站着感觉这么别扭呢,张乃馨其实站会就站会吧,在后面的同学有还有没有呀?啊,咱们说的就这些了,对吧?啊好,你坐下啊来我补充几个,还有一个的话就是我经常是不是随机啊乱的,这个是来获取随机数啊来不知道的呢,可以记一下这个默认的返回的呢,也是零到一之间的,呃,小数啊,然后它无限接近于一,到不了一无。
08:00
间接距一到不了一,所以经常是不是和我们的这个前面讲的曲整去搭配啊啊,它经常是这样啊乱的啊啊这是关于它啊,跟那个Java里边的那个random啊,跟那个非常像啊行了,然后再看一下日期函数,日期函数的话呢,咱们有哪些来再找一组吧,嗯,姜丽雪,那这个代表的是是不是返回当前日期外加时间,好请坐前面同学燕,这个代表的是返回您啊好,请坐前面同学month能不能来几个就是比较有创意的呢,前面来。
09:00
行,再往前非常宝贝的,你看看人家,你看你们这个用于去返,这个应应该是用于将我们的日期转换成字符,好前面同学啊,这个应该是current date对吧,那么这个用于返回当前日期是不发案时间,前面date啊ST to date,这个是将字符是不是按照格式解析成日期啊,那就转换吧,转换成日期好前面同学好,Current time,这个用于去返回当前时间,好前面同学还有吧什么是吧,代表的是小时好剩下的。
10:00
几个复杂的呢,我来说得了哈,有什么minute是不是分钟,还有一个是second,还有什么,这个是秒对吧?哎,秒啊啊,当然了,其实还有一个咱们咱们练习的时候用到的date deep,这个是返回两个日期相差的天数啊这个呢也要知道哈,先上天数,还有一个吧,Man's name,这个用于以什么形式嘞,英文形式对吧?啊英文形式返回是不是月呀啊返回月好了,其他函数是不是也聊了几个呀?呃,比方说来这个王诗玉王诗月方世王诗玉啊你来说啊,那么有这个select是不是wash呀?哎,你加他干啥?是不是wash呀,这个就是代表的当前数据。
11:00
做服务器的版本,好请坐后面同学database,呃,叫什么database对吧?好请坐这个代表的是,呃,我们当前打开的数据库,好后面同学user user,这个代表的是当前用户,好请坐啊,好,其实还有几个我给你在这写一下哈,呃,比方说password password,对那括号里面它需要去加一个字符的,呃,这个实际上就是交我们的这个字符是不是相当于返回吧,返回该字符的密码形式就是自动加密,能听懂意思吧,就是自动加密啊,那么我们来去试一下,我们去试一下感受一下,嗯,这打开呃,我们得先去,是不是得那个什么呀,开服务呀,嗯,我貌似是开没开呀,嗯,没开0815是吧。
12:00
啊好,来看一下哈,那么我们说呀,有一个这个函数passord,哎,然后这个里边这不是放一个字符吗?咱比方说把谁给加一下密呢?把这个刚才说的是王诗玉是吧,我们看能不能跟他去加一下密啊,就这么写吧,嗯,好,然后也就是你给它的字符,它自动的加密是我数序变成这样了,看到了吧,就这个意思哈,啊对,随机的,其实说是随机的,那人家函数的底层是不是人家有一个自己的处理啊,跟我们的感觉它是随机的,能听懂吧,给我们的感觉是随机的,也就是它自动的是不是有一个这个这这叫密纹对不对,哎,自动有个密纹啊,它这个意思啊好,还有一个跟这个类似的,比方说MD5啊,这个的话有人听说过吧,MD5加密对吧?啊啊,那么也是相当于加密的一种形式啊啊,这个可以的哈,行吧,在这了解一下。
13:00
那么我们这儿的话就是再来一个MD5,然后这个里边我们也可以加字符,它会给我们去返回是不是MD5的加密形式啊啊,返回该字符的啊,MD5加密形式啊,行吧,这是其他函数,我们聊到这儿,那接下来呢,再看流程控制函数,流程控制函数的话,我们介绍了有呃两大种对吧?第一个的话代表的是if啊,那这个的写法呢,咱们写一下,第一个代表的是条件表达式,然后这个代表的是什么嘞?是表表达式二,这么写吧,这个代表的是表达表达式一吧,这个表达式一,下面这个叫表达式二,那么它的意思是说,如果条件表达式成立,那返回表达式表达式一,否则。
14:00
返回表达式二没了吧,好,另外case的语法哈,Case语法我找同学来说一下,呃,这是一,然后这个是二,那么kiss的这个语法有两种情况,我们先说kiss情况一,那这个语法是怎么写的,找一个长得帅的哈,张飞面有一个有个敞亮,那不叫常量,你要常量的话,意思说这直接写个照是吧,那还有什么可判断的呀,它就是照,对不对啊,我们这应该叫做case,后面加变量是变量吧啊或者是表达式或者是字段对不对啊,表达式或字段好再往下,嗯,对,这个是常量,然后是S,后面是对。
15:00
你要显示的值,那我就是值一行吧啊啊,那语句咱们就先别写了啊,然后问常量二,然后是Z值二,好,最后的话是N的,假如说有默认的情况,对,我们这就写一个else是不是值N啊啊,非常好哈,呃,这是关于case的一个情况一,如果说是呃,我们类似于多重衣服实现区间判断的话,那我们这道叫做case是不是情况二啊嗯,那么我们这道就是case情况二,这个应该怎么去写嘞,直接把这个东西给删掉,这样的话我们改成的是条件一条件二是这样吧,哎,我们直接这样改一下就行了哈,好,说完然后再看分组函数,分组函数一共有呃,就是常见的啊,我们说的常见的其实也有其他分组函数啊,但是我们常见的一般说的呢,就是这五个。
16:00
这五个的话分别是ma代表的是最大值,M代表的是最小值,还有sum代表的是求和,Avg代表的是平均值,还有一个吧,Count代表的是计算个数计数哈,哎,那实际上这五个的话,跟咱们Excel里边是不是常见的那五个是一样的呀,哎,一样一样的啊说不是用的比较多,好了,那么接下来我们再说使用分组函数时需要注意的几个小特点,第一个小特点啊,咱们说到了哈,呃,对,我们首先来去说一下它的这个,呃,就是使用的一个语法吧,这个语法的话我们是这样来写的,直接must或者说面哈,那小括号里边我们就放上是不是单个字段呀,哎,这样去这样去放的哈,然后再去加什么from表明这些哈,这是它的一个语法,能看明。
17:00
好吧,嗯,它这样去放,嗯,那么接下来呢,我们再去看这个,第二咱们说到了,就是关于它支持的类型是不太一样的,呃,咱们说谁和谁,它只能支数直型来着,对sum和avg,那么仅仅是或者说一般吧,一般我们用于支持啊,啊或者说处理啊,叫做是不是数值型啊,哎,其他的类型虽然不报错,但是已然没有异义,我们认为呢,就是不正确的对吧?好,那么像其他的那几个marks呀,Mean呀,Count呀,是不是可以去处理任何数据类型对吧?好第三,那么关于这个对是否这个now参与运算这个事情,我们来说一下哈,哎,怎么说的?哎,是不是以上分组函数啊,都忽略now值,也就是在去判断呀,或者处理的时候啊,呃,他们这个now都不参运算。第四是不是都。
18:00
不可以搭配一个关键字,第一次PI的是不是使用啊啊,那么来实现是不是去虫的统计啊,嗯,好了,那你比方说我们来一个哈,呃,我们来一个写法,比方说我们来一个must must这个里边就是第一次think的后面是不是加字段呀,哎,这样去写的,再加from表明啊啊,那math可以这样去使,像count呀,还有说像什么呃,叫做some啊,这些是不是都可以使啊,哎,这个要注意哈,哎,我把这个划一下先好了,然后呢,我们最后有单独的去说了一下,就是count函数,是不是又单独说了一下它呀,那这个count函数呢,我们支持这么几种参数,哎,首先呢,就是这个里边是不是放单个字段名啊,那就是字段,哎,可以支持这个哈,那这个意思就是筛选或者说统计,统计该字段值,或者说该字段非空值。
19:00
的是不是个数啊,他就是做这个事情的,那么它这个里边也可以支持放一个星号,那么这个就是用于统计什么呢?行数啊,其实就是统计我们结果集的行数,那么一般我们用这个是不是比较多呀?啊,那这个呢,昨天也有同学问到了,那它这个怎么就是我们正好想统计的呢?比方说我们举个案例,注意看哈,作为一个什么案例呢?我们想去查询每个部门的员工个数,是不是经常做这种题啊,每个部门的员工个数哈,那么这个的这个的话呢,就是嗯,这个的话涉及到一个表就行了,其实对不对,一个表哈,我们用到了我们的员工表,这样我跟大家呢,在这大概去画一下,呃,大概去画一下,呃,就在这儿画吧,好,你比方说我的员工表里边,我故意呢给他弄的精简一点,一共呢是五个员工能看到吧,一共是五个员工,然后当然会有一些其他的信息。
20:00
啊,比方说这个是名字啊DD,然后再来一个MM,再来一个AA,再来一个哈哈,行,然后呢,对应的这一列的话,我比方说整一个部门编号,这个部门编号是十,能看明白吧,这个部门编号是20,这个部门编号呢也是20,这个部门编号呢,是啊,比方40可以吧,这个部门编号是40,好做完,那么这个就是我们的员工表的精简版,可以这样去理解吧,好那么我们知道像这种题的话,它就需要是不按部门分组啊,你按部门分组啊,那么我把这个打开哈,呃,我的桌面工具来好来看,那么我按部门分组就是将我的这个字段的值是不是一样的放在一起啊,那所以说呢,就是这个是一组没问题吧,我们换一个颜色,红色是不是这个是一组啊,那再换一个颜色紫色啊,那么这。
21:00
那又是一组没毛采好,那么分成了三小组,那三小组他问每个部门的员工过事实际上是不是就是代表的是什么呢?哎,就是这个小表格,或者这一组里边是不是这个员工出现的这个个数啊,也就是有几行可以这样去理解吧,哎,这个前面这个是不是代表的员工编号对吧?啊,那么这个员工编号有几个值,是不是就是代表有几个员工啊,那自己其实也能看出来这是一个员工对不对,哎,这是一个员工,那么而这个正好是不是就是我这个组的一个行数啊,所以说这个就用count星号其实就行啊,就用count型号就行啊,他这样的一个意思,有的说老师看的型号怎么就正好是我们想要的呢?因为根据我们后面from y加格group by或者Y加Y,经过这一系列的统计和筛选之后,你这个分完组之后,或者是筛选之后的这个小结果集,正好就是对应的我们想要的那个数据了,已然是了啊,已然是了。
22:00
啊,所以你直接用个count的星号就正好代表它本身的意思了啊,它这样的,你看我这样一分组,很明显每个组这个行数是不是正好就是圆工个数啊,它这样的,不光是这道题是这样,其他的题你可以像我一样,是不是自己划一下呀,啊就很快就明白了啊,你这个得需要试一下啊,行吧,这个呢,先说到这儿,然后你要是还是不特别明白的话,就需要你呢,怎么办呢?就关于这种个数的题,是不是多试几个呀,其实不用太多三个,你每一道题的话呢,都像我这样给他画一下,数一数这个行数自己数,别用人家SQ解析器对不对,自己去数,然后你就知道意思了啊行了,再往下说,这是count的星号,我们还说了一个,是不是就count的括号里边加一呀,这个也会见到哈,那咱们说了这个CTRL加一啊,CT括号里边放个一,相当于是说我这个表里边添加了一列值,这一列的。
23:00
的值是不是都是一啊,哎,那么最终来实现是不是一的个数的统计,对不对,所以说它实际上也是用于统计我们结果集的行数和抗的星号是不是非常类似啊,非常类似,那从效率上来讲的话,那么咱们昨天也对比了一下,从效率上咱们说如果用我们以前的那种存储引擎,MYM存储引擎啊,那这毫无疑问count星号效率最高,这个效率最高啊,它比COUNT1,比count字段效率都高啊,比这个都高啊,好,那么如果说用我们的阴楼DB in楼DB这个存储引擎啊,你像我们现在5.5版本使用的就是音楼DB存储引擎,那么在这个存储引擎的话,那么康德信号和count德一差不多了,呃,其实也就是咱们康德信号是不是不具备优势了呀?呃,从效率上不具备什么优势了啊,哎,这写错了。
24:00
型号是吧?啊,然后它这个效率,但是要大于谁啊,呃,就是count字段啊,要大于这个啊,这个是经过那个数据的统计的哈,啊当然你们在后面不是要讲那个,呃,就是关于优化呀,或者索引这这这些内容的那个时候呢,会跟大家去添加,就是上万行数据,或者是几百万行,或者是几千万行,因为那个的时候是不是效率统计才比较明显呀,你说我们就100行,说实话你会没任何感觉对不对啊,那那个时候再去统计的时候,估计还会跟大家去试啊,会跟大家去试,就是这个效率的这个问题啊,行了,这是关于他就说到这儿,呃,还有一个,还有一个地方,那我写到这儿了哈,这个是第六点,其实写这儿也行,或者说写到我们那个分组查询也行,什么呢?就是我们和分组函数一同查询的字段,嗯,那么它要求是什么?
25:00
了,要求是我们group by后出现的字段能看明白吧,呃,要求是这样的哈,嗯,因为只有如出现后出现的这个字段和我们当前的分组函数,它俩是不是才能实现一一对应啊啊,那么最终的结果集才是一个比较规则的结果啊行了,那么这个说到这儿,接下来我们看分组查询,嗯,分组查询的话,我们也是先把这个语法给写一下,嗯,这个语法我找个同学来说一下哈,留一嗯,对,这个查询列表在分组查询这呢,实际上就基本上可以固定下来了,它里边一般放的就是分组函数逗号,还有谁呢?是不是分组后的字段我可以这样写的,因为他想放别的是不是也放不了呀?啊,一般就是这些啊,一般就是这些,当然你要是有。
26:00
其他的表达式函数也可以放,但是就很少了啊行,继续往下from后面加表,有where加对,有where加where,那我们就是这样去写一下,是不是where筛选条件对吧?好,再往下group对group后面是不是加我们分组的字标呀,好,如果再有对,如果再有条件我们叫having是不是可以这样写啊哎,这个叫分组后的筛选哈,还可以加谁对半是不是排序的字段呀啊或者说排序列表啊啊好吧,这是关于这个语法就说到这儿了,这个语法一说完了之后,呃,也没啥了,对是不是啊呃,这是一个完整的这个我们分组查询的一个语法,它的执行顺序呢,跟大跟大家去聊一下,你看我们每次查询进阶,我们把执行顺序呢都可以再说一遍啊。
27:00
From还是先走,然后是谁,Where,然后是group by,然后是heavy,然后是不对,On是最后啊,然后是谁?哎,Select的记住了,Order by不管是从书写上还是从执行上都是在最后,都是在最后,它就是肯定是已经有个结果集了,就是马上要显示了,这个时候是不是去排序啊,它这样的哈,也就是单拿出这一段来去说执行它的顺序是这样的啊好了,呃,另外呢,说一下这个事情就是呃,我们发现就是我们再去做的时候,很有可能是不是为这个东西起别名啊呃,注意听了哈,那我们起别名的时候,我的order是支持的,这个是绝对没问题,呃,但是呢,经过经过这个验证啊,我们在MYSQ里边,Group b和heavy它也支持别名,但是我们很少这样用,为什么呢?
28:00
特别像Oracle这些,它是不支持这样去用的,能听懂吧啊,或者说要是写的话呢,就比较麻烦,支持的不够好,能听懂吧啊所以说为了一个通用性,我们往往呢,就没有在having和group group group班后面用别名了,这样说能理解吧啊好吧,这是关于它哈,那么接下来我们这个里边比较重点的一个呢,就是关于筛选,这就容易弄混啊,我跟大家去分了一下类,分组前筛选,分组后筛选,我找同学来说一下哈,来冲使用的关键字,分组前筛选使用的关键字是啊筛选分组是不是采用group呀,筛选应该是对了,是where,这个针对的是什么表来原始表这个是放在什么位置呢?给如大的前面对了,那非总后筛选。
29:00
Heavy,好,筛选的表示是不是分组后的结果呀,分组后的结果这个位置是给如何办的,后面这个一定要记住哈,这个一定要记住,那这个就是经常用的常见的面试题,昨天你看有的学生群里边就发了一套面试题,然后就是考这个的啊,你不要小看这个东西啊,就是你现在在学,所以你觉得很简单对吧?啊,那面试的时候你可能就忘了啊,那你为了到时候不忘,你是不是要把它记得非常清楚啊,就这个意思啊,回头呢,我把一些传的面试体关数据库这一这一部分呢,也给大家发一下在群里边啊,你会发现都是咱们平时讲到的啊好,行了,然后再去看连接查询,连接查询呃,首先说它的含义,含义的话呢,是说当我们查询中是不是涉及到了,哎,我们多个表的字段,多个表的字段。
30:00
你看我没有说是一定是那个slack的后面哈,有可能我slack的后面的字段呢,就来自于一个表,但是我where条件用到了其他表,是不是也有可能这种情况呀?啊,总之你整个的查询用到了多个表的字段,这个时候呢,我们就需要使用是不是多表连接查询呀啊,多表连接啊,或者叫连接查询啊,那么我们基础的语法很简单,就是你要查什么,那料的后面是不是就放什么呀,永远记住这一点,你要查的东西就往select的后面扔就行了,叭方字段一逗号字段二,From后面就跟你的查询语句涉及到了哪些表啊,表一表二或者甚至更多对不对,根号第二点,那如果单纯的这样去一写,就出现了什么现象,笛卡尔乘积啊,笛卡尔乘积啊,那咱们说了笛卡尔乘积现象。它就是指当我们去查询多。
31:00
四个表时啊,没有添加有效的连接条件,那最终导致我们多个表所有行是不是实现完全连接呀?啊实现完全连接这种叫做笛卡尔承接,我们应该尽量避免,因为这个数据呢,它是有问题的,对不对,那如何去避免或者如何解决,那很显然就是添加有效的连接条件,这也是说我们整个的连接查询里边最最重要的一步,就是你怎么着去添加连接条件,怎么着去找到这个连接条件,这个比较重要,这个东西不是说我们说一下你就会了的,是不是你得通过多做题自己去分析啊,对吧?啊,这个需要你通过多做题自己去分析这个表里边的这个字段意思啊好吧,这是关于它,接下来呢,咱们来说了一下,我们连接查询的分类,一共呢,我们是这样来分的,可以按年代进行一个分类,对吧。
32:00
啊,然后有这个CIRCLE92,还有CIRCLE99啊,这个是按年份不同我们分了两大类,而九二呢,相对比较老了,它支持的连接也比较少,对,它其实就是支持内连接,而内连接里边又分为等值非等值,还有一个是四连接,对吧?啊,我这个简单去写啊,啊那么其实的话呢,在90语法中也支持一部分,也支持我这么写啊,也支持一部分外联啊,也也支持一部分外连接,但是它是适合于或者说用于像Oracle呀,Circle server啊这些啊,那么这个里边的话,它可以用Y连接,但是不太稳定,支持的不太好,明白吧,也很少用,所以咱们就不说它了,能听懂吧就不说它了,说也没法说,My circle中根本不支持,能听懂吧,My circleq是不支持的啊。啊,那我这这么去写my circle不支持啊,好,那么接下来呢,我们再去说这个,嗯,叫做CIRCLE99 circle99语法的话,它支持的比较多,对吧?啊,那么它分为内连接,还有一个是外连接,还有一个是交叉连接,那内连接的话就是咱们刚才说的这三种啊,这三种啊好诶跑了怎么好,然后这是关于它,而外联的话呢,它又进行分类,左外右外,还有一个是圈外,没有说中外了,对不对啊,全外,其中全外的话,我们MY也不支持啊,语法上都报错,也不支持,但是呢,我到时候也给大家简单的提一下啊,简单提一下它的意思明白吧,啊,咱们就不试了,但是给大家提一下意思啊好,这个是交叉连接啊,那这就完了那。
33:58
所以说呢,我们不管怎么说啊,不管是说它的功能多,还是说它版本比较新,我们是不是推荐使用的都是它呀,啊这个是推荐使用啊,推荐使用好了,那么接下来呢,我们就是不是昨天的话介绍了这这个SQ9日语法里边的全部啊,这个就说完了哈,嗯,那行,咱们把等值连接的这个语法呢,跟大家去总结一下,这个应该是怎么写的来着,这个语法这连接就是把整个的这个连接的语法啊都写五遍,手写啊写五遍,放学前交给我啊。
34:34
你来做一下吧,那这个语法应该怎么写呢?Select的后面是不是加上我们的查询列表对不对?然后是from,后面我们再去加表,表一,哎,我们可以起别名吧,别名逗号,表二是不是也可以取起别名呀?呃,然后是where,后面再去加是不是等值连接条件呀,这个等值连接条件是表一点是不是那个关联列啊,我们比方说叫K,这个K不,不一定是指它的键啊,就是指是不是一个列啊啊,一个比较关键的比较重要的列对不对啊,这个列等于我们表2.k,哎,可以这样写吧,哎,这是等值连接啊。呃,当然如果说我们要加筛选条件,怎么去加嘞,怎么去加就可以继续,对了,我们继续,这是and后面加筛选条件,然后我。
35:34
我们也可以继续往下加如半非常好,我们也可以继续加格如半是不是加分组字段呀?啊,然后我们还可以去加order by,哎,然后这个叫排序字段对吧,还可以加having吧,嗯,那这个应该是having,是不是加我们分组后的筛选呀?嗯,好吧,这是关于这个语法哈,那么我们说一下几个注意的事项特点,那么首先第一点我们一般是不是位表起别名呀啊,位表起别名当然不只是说等值连接是这样,所有的多表连接是不是都是这样的啊,都是这样的,那么用于去去区分开来我们多个表中出现的同名字段,所以一般为表起别名,第二的话也是为了缩短是不是表明的这样的一个程度啊啊好,这是关于它第二,那咱们说了。
36:34
啊,等值连接我们多表的这个顺序哈,可以调换是不是没有主从表之分呀啊可以调换第三,那我们也可以实现更多个表连接,那N表连接的话,至少需要N减一个是不是连接条件呀?啊对吧?哎,这是它哈,其他的好像没啥了吧,还有没有哦,还有一个第四,那么我们呃多表连接也就这种等值链接吧,等值连接的结果是多表的是不是交几部分呀?哎,交集部分哈,这个不就完了吗?啊那么接下来看非等值连接,非等值连接我们看一下它的语法哈,哎,把这个其实可以粘过来吧啊粘过来老师是因为懒才粘过来的吗?老师可不是因为懒呀,老师是因为是不是这个想告诉你大家都一样啊,仅仅是把。
37:34
啊,Where这个条件是不是变一下呀?哎,这个就不再是一个等于了,而是放一个啊是不是就是什么不等于是吧,也就是放一个啊非非等值的是不是一个连接条件呀?啊连接条件可以这样去写哈,其他的这些其实它也都支持,也都支持啊,只不过是说我们很少在非等值连接上是不是写这么多呀?啊写了这是关于它四连接,四连接的话呢,其实跟我们前面讲的那个等值也差不了太多,是不是啊,仅仅是说我们表一表二,它其实都是一个表啊,表一表二都是表一是不是啊,那我们这个就是怎么写了叫表啊,然后这个是不是也是表呀,这个就是别名一啊别名二啊,当然根据实际的需求,他哎这这么写对吧,根实际需求是不是也有可能是多个表,呃,这个把它。
38:34
三分成,或者说想象成多个表啊,更多个表,三个表四个表也有可能啊,但一般逻辑上的话就不用那么麻烦了啊好,那你记住两个表的就行了,那我这个Y2的话,实际上是不是也就是一个,一般来讲我们做的是不是一个等值的链接条件呀,哎,这样去写哈,好吧,这是我们关于上课的主要内容,就说到这儿了。
我来说两句