00:00
呃,咱们上次课的话呢,就把DKL语言里边连接查询的SQ99语法给说完了,然后子查询扉页查询是不是介绍了这些呀?嗯,好吧,我们先去看一下SQ99语法,呃,SQ99语法它支持的连接比较多,内联外联交叉连都可以支持,我们首先看内连接,先去看内连接是不是整体的语法呀,嗯,写这哈,这个整体的语法呃,怎么写的来着呢?Select的后面是不是还是加我们查询列表from我们表一啊,当然一般也要起个别名对不对?哎,然后后面的话是加是不是那个连接的类型啊对吧?呃,连接类型哈,呃,那么这个连接类型的话我呃,我就这么写吧,呃,因对这是个内联对吧,内联呢,我就直接这么写了,是不是inner Joy呃,然后是表二再起一个别名,二是不是加我们的连接条件呀。
01:00
啊,那当然我们也可以在这个基础上加where筛选条件啊,一般来讲是不是就这样来写啊,啊,当然根据我们的需要,我们说了是不是可以继续写分组可不可以可以是吧,分组列表,然后还可以再去写是不是having啊等等啊这些都可以我加上吧,这是分组后的筛选,哎,然后我们还可以去加order back排序列表啊嗯,好,其实现在我们学的limit了,是不是也可以加limit子句啊啊好,那这些都可以啊,这是关于我们内联的一个语法,其中啊,这个音呢,它是可以省略的,就是你写不写音呢,都代表的是内联好语法我们要知道了呢,我们再去说一下,就是关于内联的几个小特点哈,第一个小特点要注意的就是啊,我们的这个表还是不分主次,也就是表的顺序。我们可以。
02:00
啊,可以调换吧,哎,可以调换,也就是它们不分主从表啊,谁在前谁在后都可以啊好,这是第一,然后第二,那么我们要注注意了,我们内连接的这样的一个结果哈,那么它类似于或者说它等于是不是多表的一个交集啊啊对吧?啊,多表的这样的一个交集部分,第三要注要注意的是N表连接,那么同样也是至少需要N减一个连接条件,是不是这些,哎,这个要注意哈,这就没了对吧?哎,这就没了哈,哎,你要注意的就是我们这个内连接最终实现的效果,那就是多表的交际部分,当然这个内连接它也可以去实现,那我这写个分类就行了,可不可以实现等值连接可以是吧?还有谁非等值连接,还有一个是四连接,也就是九二语法。
03:00
它里边的那三部分是不是它也都可以实现呀?哎,这个要注意啊,我就不举例子了吧,哎,这个咱们做过很多了哈,哎,这是关于它,接下来呢,我们再去说外连接,外连接同样呢,我们先把整个的语法给弄过来,这个整个的语法跟它基本上一样吧,哎,基本一样,就哪边了呢?对,把这个音呢,它换成了哦,它应该是这样,Left或者是right,或者是咱们说过像其他的语言,它支持for对吧,然后其中这儿可以省略,哎,这个叫al对吧,人家这个是省略的是al,可不是省略left这些对不对,你看left也省略了,那就不知道是什么联了,对不对,他这样来写的哈,这是外联,哎,那外连接的特点是什么来着,这个分不分数从表了,这个绝对是分了是吧?哎,我们这样去。
04:00
写这个标题哈,第一那么要注意这个是分组总表的,那么查询的这个结果呀,它等于我们主表中是不是所有的好呀啊,然后其中,那么其中是不是从表有有和它匹配的对不对?其中呃,怎么写呢?其中我们从表是不是这样去写啊,从表和它匹配的啊,我们将显示匹配行,那么如果我们从表是不是没有匹配的呀啊,没有匹配的则显示now哎,它这样的一个意思,然后当然这个地方咱们就要说到谁是主表,谁是从表对不对,这个写成如果哈,那么谁是主表呢?如果说对了,如果说是左联,那就是left draw,哎,那左边的就是主表,那么如果说是draw,那么右边的就是主主表。
05:00
对吧,那如果说是全外连接嘞,全外连接其实它不分了对不对?哎,那如果说是for al,也就是for joining吧,Al省略了哈,For join是不是两边都可以作为主表啊哎,两边都是主表,可以这样说吧,嗯,好了,那这个就完事哈啊哎,第三点我们再加一个说呀,一般用于查询啊,一般用于查询是不是除了交集部分的那一部分呀啊,除了交集部分的剩余的啊剩余的呃,不匹配的不匹配的哈,是不是一般用于查询内个呀,如果说你匹配的那部分我们用谁都可以做呀,内联啊,尤其是等值联对不对,用它就可以做了啊行吧,这是外联,最后呢,咱们说一下交叉连,交叉连的话呢,这个比较简单哈,那就是select我们家查询列表。
06:00
From我们表一起个别名叫做cross cross draw,表二是不是起个别名啊,这个不要加on条件了,明白吧,这个不要加on条件了,然后特点的话呢,就是啊就直接写吧,这个是不是类似于或者说生成一个是吧,都行哈,嗯,这个是叫做低开二乘积啊,也就是说我们这个如果说使用九二语法低开二乘积就是表一逗号表二是不就完事了,那你九九语法怎么着变成那种低开二级呢?啊就可以用照啊,它这个是不是没什么意义啊啊没什么意义啊,知道有这么一个东西就行,好整个的连接查询我们就说完了,好,接下来呢,我们来看一下子查询子查询它就稍微有一点偏难了哈,就是逻辑上啊来咱们一起看一下吧,呃,咱们先去来说一下子查询的含义啊。
07:00
什么叫做子查询?哎,嵌套在其他语句内部的select语句,我们称为此查询或者说内查询啊,那么当然外面的语句对不对?外面的语句注意哈,我这样去写,外面的语句可以是,其实可以是insert,这个咱们虽然还没学对吧,但人家是可以是这些的,Insert update delete,还有谁select对不对等啊,可以是这些,但一般的一般的谁比较多呢?哎,是不是一般slack的呃,作为外面语句较多,所以咱们重点是不是讲的它呀?啊,外面语句较多啊,好,那么咱们重点的是重点讲的是它,我把它描起来。嗯,好,那么行了,然后接下来我们再去说,那外面如果为select语句,则我们可以称为是不是外查询或者说是不是主查询呀啊,那就是外面如果为select语句,则词语句成为这样去写啊,词语句词语句啊成为这样去写没问题吧?啊好了,然后呢,我们再继续往下,第二我们是不是说了一下分类啊,这个分类咱们写的还是比较全的哈,嗯,还是比较全的,咱们看一下怎么去分的,首先咱们可以哎是不是出现位置进行分类啊呃,出现位置,那出现位置它可以出现在是不是black的后面啊,那么也可以出现在from后面啊,那么也可以出现在是不是作为条件呀,Where或者说开后面啊,那么也可以出现。
08:55
看加什么一个six是不是也可以出现在这个后面呀,啊,这是出现的位置,然后再看我们是不是按它的这个子查询的这个结果集啊,按结果集的这个行列不同,我们又可以进行细分,比方说我们称为是不是叫做标量子查询,当然标量子查询我们也可以称为单行子查询,对,就是一行一列,对我跟大家去写上哈,这个就是结果即为一行一列啊,另外我们还有一种叫做列子查询,那么我们也把它称为多行子查询,为什么这么叫呢?因为对,因为这个结果即为呃,一列多行,那也就是多行一列对不对啊好,那这两个是用的比较多的,画上红色,也就是你重点是不是记得这两个呀?啊,然后呢,我们还可以再去说有。
09:55
行次查询,这个行次查询就是结果即为多行,呃多列对吧,多行多列啊,其实多行多列也行,或者说反正就是多列了,能明白吧,主要点就是多列了啊好,我把这个描成黑色,这个用的就很较少了啊,因为大家也发现了,当时我们举的那个案例是不是它的这个应用场景来讲,特别偶然啊,特别偶然啊好另外还有一种查询,我们称为叫做是不是表子查询呀啊表子查询当然这个叫法不一定啊,我们可以称为表子查询,有的呢,也可以把它称为叫做什么嵌套,嵌套子查询,有的书上哈,啊,那我们就叫表子查询吧,因为这个比较形象,结果即为是不是这个就是任意啊,其实其实是任意对不对,你想想表子查询意思是说最终的结果集是不是就是只要是个结果集就行了吧,你一行一列也行,你多行。
10:55
创多列是不是也行啊啊,就这个意思啊好吧,那么这个的话呢,我们就要写到这儿了哈,嗯,那么我们再去说一下,假如说出现在slack的后面,那么它里边可以放谁,也就让他们可以组合一下是吧?嗯,对了,那么我们在这写一下哈,这个的话,它仅仅支持标量子查询,你放别的还不行,会报错啊,然后F后面其实重点放的就是什么查询啊,标子查询,那where或者heavy后面这个放的较多对吧?那像标量子查询,呃,列子查询还有谁呀?行子查询,行子查询其实都可以在这放啊,当然我们重点是不是讲的这这两个对不对?哎,重点讲的这两个哈,然后再看一个this后面,哎,一个this后面这个的话,其。
11:55
值也是你放谁都行,明白吧,这个你放谁都行,那么我们这儿怎么写呢?我就都写上吧,有要量子查询,列子查询,还有一个谁呃行子查询,还有一个是表子查询,为什么放谁都行啊,因为大家去想一个第四次后面它的结果不重要,主要的是说一个第,你只要一写它最终的结果是不是就出个false了,就看你有没有值,能听懂吧,也就是看有没有值,有值返回处没值返回false对吧?啊,所以你至于你子拆结果是谁是不是不重要啊啊,他只看有没有啊,所以你放谁其实都行,也就是我说的都行,就是语法上是不是没错呀,啊,语法上没什么问题啊行,那咱们重点说的是这俩对不对,重点说的是这个,我们平时做题用的较多的也是这个哈,所以咱们重点把这两个给说一下,每个举个例子就行,其他的我就不举例子了。咱们这。
12:55
今天的笔记上是不是写的很清晰了呀,就是那个扣子上啊,呃,等会咱们再把那个作业题说一下就行了,呃,那就是第三哈失例啊,重点呢,你就记住我说的这个啊,那么我们放在的是where或者是have后面哈,啊,这个是呃,这个是这一个这一个知识点啊,然后呢,我们再去看,呃,假如说我们放标量子查询,举个例子,再看一个放是不是列子查询,也就是多行子查询,对不对?好,我们随便举一个例子吧,标量子查询,比方说咱们举一个什么例子呢?我们想去查询一下。
13:39
呃,查询一下最低工资的,最低工资的员工姓名和工资可以吧?啊,我做一个这样的案例,这个应该怎么去做呀,先查谁,先查谁,是不是先查询最低工资呀?嗯,那最低工资是指公司的所有员工的最低工资,对吧?那应该是mean salary from我们的employees没问题,对不对?好,你这个只是得到了一个最低工资,是不是不知道员工姓名这些啊,所以他还得有第二步,嗯,然后我们再查询员工的姓名啊和工资,那么要求呢,这个工资等于是不是一这个结果呀,因为一这个结果它绝对是一行一列的,对不对?哎,所以我们用的是标量字查形,没毛病吧?好,那我这应该是select我们的性。
14:40
注名在salary工资from我们的employees where,把salary等于好,然后是不是再把这个一给粘过来呀?哎,这样去写哈,你看这就是一个标量子查询的使用就说完了对吧?嗯,然后我们再看列子查询,举一个案例,比如说我想查询出所有是反正是个头头的都算哈,所有市领导的员工的姓名能搞明白题意吧?嗯,就是在员工表里边不是有一列manager ID吗?嗯,那只要是他出现在manager ID这个里边了,对不对,这都算是一个小领导,哎,那么这些领导的名字我想查出来怎么写呀?先查谁是不是应该去。
15:40
去查询所有的员工的manager ID啊,呃,也就是他的领导编号嘛,对不对,呃,那应该是select manager from我们的employees,好,然后呢,我们第二步再去查询查询,哎,查询姓名是吧,那么要求是不是我们的employee ID,哎,是不是属于一列表中的一个呀?呃,属于我们一列表的一个是这样吧,呃,因为我们这个这个执行完这条S口语句,它的结果期肯定是多行的,对不对?嗯,所以说用到的是列子查询嘛,那就是select last name from我们的employees where,我们的employee I in对吧,嗯,In,然后呢下把。
16:40
这个粘过来用到的是印吧,嗯,好,这不就完事了吗?这样弄啊,好,这是比较常见的几个字查询的题啊好,就说到这儿了,行了,然后我们再去看一下分页查询,呃,分页查询的话,我们是这样来说的,首先你得知道分页查询它是不是应用场景啊啊应用场景什么时候会用到当当什么当我们要查询的这个条目数是吧?呃,太多是不是可以这样说哈,太多啊,是不是一页显示不全呀啊,一页显示不全,这个时候我们就会用到分页查询,那么它的这个语法的话呢,是这样来写的,Select我们的查询列表,From我们的表啊,当然你也可以加where这些是吧,我就不写了啊,那limit后面加的是opposite outside opposite。
17:40
Side就是一个起始的索引对不对?逗号是不是一个size,其中谁可以省略opposite outside如果省略它默认为零,是零还是一来着?啊,对,默认是零啊好注意啊,首先oppositeet它代表的是起始的条目,所以吧啊,默认从对零开始啊,S是不是代表显示的条目数啊,代表的是显示的条目数对吧?啊,有一个公式还有没有印象?对了,那这个写一下哈,那么假如说我们要显示的页数为配置对吧?啊,那每一页的条木数为全部数为size,那么我们。
18:40
可以写一个公式,这个公式就是把这个粘回来哈,好,然后把这改一下,这个应该是怎么写嘞,应该是配置减一乘以S,然后逗号size是这样吧,嗯,这个记一下哈,行了,那么这个。
我来说两句