00:00
那这个说完之后的话呢,我们再来看一下这个课件呢,我这儿呢,放了一个叫做综合案例。那这个综合案例呢,就把咱们前面讲的,应该说这几章的内容呢,咱们就都融合在一起了,咱们你看咱们是不是讲了这个叫DDL,就是创建数据库,创建表啊这块呢,我们都讲了是吧,然后呢,我们又讲了叫DML,增删改查询呢,咱们之前也讲了,那这里边呢,咱们就主要呢,把这个DDL和DML这里边儿的这些操作呢,融合在一起,哎,练一下我们这个综合练习。哎,来练一下咱们这个综合练习,下边呢,你看有好多这个题目啊,后边这块呢,其实还是跟这个查询呢是相关的啊行,那这块呢,我们就来做一下这道题目,大家呢再去熟悉熟悉啊。那这呢,我们形成一个五叫做综合案例。好,那么我们过来这里边儿呢,涉及到了我们这个库和表的创建啊,咱们先把整个这里边儿这个需求呢,咱们都粘过来。那这样啊,CTRLC。
01:02
嗯,然后这个呢,456这块呢,对应的实际上是我们这个增删改的操作。然后再往下的话呢,从这个七一直到这个23啊,其实对应的是我们这个查询的操作。或者是。没粘上是吧。再复制一下。CTRLV啊这就粘上了行,那有同学说呢,哎呀,又是查询啊,一看这个查询呢,就头大是吧?哎,这个呢,是因为你还不太熟啊,就越不熟的话呢,你就越去熟练练去它哎去练它啊练着练着你这个劣势呢,是不是就变成你的优势了。它就这样子的行,那么我们回过来看一下。看一下首先的话呢,我们去创建这样的一个数据库,对吧?啊,这个呢,大家相对来说应该都比较熟悉了,Create一个database说if not exists。哎,叫什么呀,叫TEST01下线啊library。
02:00
Every没问题是吧,然后后面我们通常再去指定一下叫character。嗯,然后UTF8。没问题,好,那此时呢,我们选中了做一个执行。成功了,成功以后的话呢,我们这种这时候呢,就是use一下叫做TEST01下划线啊library你看这块呢,给我们提示了啊,一旦提示呢,那就说明你这个库呢是创建成功了的。行这块呢,我们就做了一个切换。啊,可以了是吧,诶诶这个我又多余的又点了一下,那你这还得再去执行一下。那这时候在我们这个数据库下行,在这个数据库下呢,我们去创建一个表,叫做box表,表的话呢,我们看一眼。嗯,就在这儿呢。相应的这个字段和这个类型啊,都标识出来了,我们就按照他给定的这个说明呢,我们去做这个创建。嗯,稍微小一点,那放在这儿。好,这块呢,我们就写了create一个table,那我们叫这个books。当然了,你也可以呢,在这块去加上一下叫if not exist啊,这都可以。
03:04
这样是不是就行了,好,那我们下边呢,就来写这个字段了,第一个呢是ID啊,是一个int类型的,它表示的叫书的一个编号啊,下边这个叫name,那表示的叫这个书名。哎,我差一下这个呢是50啊,像这个呢,咱们前面也稍微提到过哈,这个位置的话呢,你看它的这个颜色呢,像是一个保留字了,哎,所以推荐大家你加上这样一对周众号啊,只不过呢,这个呢,其实你要没加呢,发现诶倒也没事儿啊,也可以的。那这个呢,叫others。你看others,然后呢,是WHAT100啊。这样这个呢,你看它也是变成这个像保留字这样的一个符号了啊,这个大写了,然后你也可以给它加上这个着重号。然后再接着呢,叫做price,就是这个呃,书的这个价格啊,这呢用的是这个float啊。然后再接着呢,是这个pub date,嗯,就是出版的这样的一个日期,这个呢,我们用的是叫year。
04:03
来是这个印,就只是有这个年啊。嗯,再者呢,叫这个node啊,Node呢是一个说明,比如说你这个书呢,是什么类型的啊,在我们这里边儿呢,就是放到说明里了,然后这个number呢,叫库存啊,Int类型。没问题吧?好的,那你在在这块呢,去搂一眼,看看这个是不是有定义错的啊,这个稍微的小心一点,定义完以后的话呢,我们把它选中呢,做一个执行。好,这就相当于我们这个表呢,就创建成功了,然后接着呢,你可以de我们这个哎,Box。看一眼。哎,选中啊执行诶OK,那没有问题是吧,然后呢,此时呢,这个表里边当然呢,就没有数据了,Select from我们这个A。哎,选中。才执行,哎,这就没有数据是吧,好,那这呢是我们这个第二步,然后第三步的话呢,我们就向这个表中呢去添加数据,这呢一共列了叫七本书。那七本书。
05:01
来,回过来。像这里边添加数据的话呢,这呢又列出来了三种情况,实际上就对应了咱们上课给大家讲的,咱们引射的时候呢,这三种这个情况。就是咱们第一种方式呢,就一条一条加数去的话呢,是不是也对应的有三种情况是吧,这是那个的三种情况啊行,那这里边儿我们就开始来写,首先呢叫ER into,我们这个books这块呢,说不指定字段名称,就是后边呢,你不要写这个字段名称了,直接呢后边写这个叫value。这样子对吧,然后这时候呢,我们要是添加的话呢,你得需要考虑诶books呢,它的字段的声明的先后顺序。啊,那你这块呢,稍微看一眼,实际上呢,跟我们这个表里边给我们的这个顺序啊,你看一下实际上是一致的是吧?啊那这块呢,你就按照这个先后顺序呢去写就没问题了,行,第一个呢,我们是一,然后呢是这个书名,这都是一个字符串类型的。空格让你该跟人家写上就写上。没问题,好,第二个呢,是这个作者。
06:00
嗯,对吧,小心一点,别写错了,第三呢,是这个价格23。然后呢是呃1995这呢是一个日期类型,用单引号引起来,后边呢是它的这个我们说就说明了,实际上呢,就是我们这个书它的一个类型。Now。给他,然后呢,是他的这个库存量啊,这个是11,嗯,这是小说的意思,行,那这样的话呢,我们就把这个数据呢,就能够添加成功了,来走一下。可以了,这块你去select清一下看看就进去了,没问题,好下边第二个说呢,指定字段名称,插入第二条记录,那这呢用的是这样的inser into,我们叫books,这是咱们推荐的一种方式,然后呢就是诶。Y64里边呢,去写那个具体的字段的值,这个呢就写那个字段的字段的名,对吧?嗯,在咱们这道题目当中,每个字段因为都复制了,所以咱们也没有刻意非得是我写了ID呢,我就去写price,我再写一个number也没必要了,所以这块呢,我写的话呢,就按照咱们声明这个顺序填得了啊,ID name。
07:03
Other。然后呢,这个叫price,然后呢,A pub date。Node是吧,然后还有这个number行,咱们就按照这个顺序来去填了,行这块呢,我们是第二个啊,这是它的作者。啊,这个名字怪怪的。嗯,行,嗯,哎,不是这是这个书名啊,哎,下边是一个作者。啊,这。嗯,这个小心一点写,然后呢,这是35是它的价格,1993年这个出版的。啊,然后呢,叫joke,这是它的这个类型啊,就是一个笑话书。22是吧,没问题,行,这样的话呢,我们再选中啊执行啊又可以了,然后再去select清一下。那这块就强添加成功了,行没问题,第三个说同时添加多条记录,这个呢,就是insert into啊,我们叫这个books啊,建议大家呢,我们选择的是后边指明这个。
08:00
相应添加的这个字段了,对吧。好,再接着呢,我们叫values,哎,咱们呢就可以呢,就是哎,比如说这是一个,然后再接下来呢,这是一个啊,这是一个啊,是不是就这样的方式呢,这就是一个insert into呢,我们里边包含了多个这个,哎。多条的这个记录的一个情况。行,嗯,这块的话呢,没什么难度吧。咱们呢,前面也都讲过了是吧,那你就一个一个的往这里边儿去填就行了啊,这个呢,我就不写了啊,这个稍微是一个体力活了。嗯,这块呢,我找一下咱们这个,哎,就把这块呢CTRLC哎粘过来,哎,往这放一下。这个应该能理解对吧,就是我们卖六次的话呢,这就第三本书第四本书啊,以此类推,然后呢,之间都是用逗号,最后一个呢是分号结束行,那我们这块呢,选中做一个执行。可以了,然后呢,再去拉的星,我们看一眼,好,这呢七本书呢,我们就添价成功。添加成功了,那么接下来的话呢,我们这个456啊这块的话呢,相当于就是DM里边这个增删改这块的这个操作了。
09:06
来我们这块来看一下,首先这块提到说将小说类型叫诶novel的书的价格呢增加五块钱,呃,Novel呢,是不是就我们这里边的,这算是三个吧,哎,把这三个数的价格呢增加五块钱,那比较简单啊,这个我们就update一下。嗯,咱们叫这个books是吧,然后set一下它的这个price呢,等于原有的price呢,加上一个五块钱,说where什么呢,咱们这个node呢,它等于叫novel。那就打。啊,就是把这个小说呢增加,比如我们这个啊,把23是不是就改成叫28了呀。选中执行。那然后这块我们再去做一个select。嗯,看这个呢,就改了是吧,哎,剩下这两个其实也会做这个修改,没问题。这我们说这个第四题,然后再接着说将名称为哎,这个的这个书名就它呗。嗯,价格呢改为40,那把这改成40,呃,并将说明呢改成它啊说明呢就是我们这个。
10:05
No啊,改成一个它行,那我们就改一下这个呢,还是一个修改update呢,叫books啊,然后呢,Set一下provide呢,等于40逗号是吧,然后这个no呢,我们改成叫这个。CTRLC。这么着是吧,然后哎,Where一下,我们改的是谁呢?改的是我们这个name呢,等于叫这个名的。哎,这本书。嗯,没毛病,行,那这个35呢,就改成40了,这个呢也会改来我们看一下。啊执行啊,然后我们这块呢,再去做一个select。查询。好,你看这块呢,40这个是不是也修改了,诶这样啊行,那这块的话呢,其实还有一个小的细节啊,就是在实际开发当中啊,咱们推荐大家你在做这个增删改操作的时候呢,前期先去做一个查询。就是我们在增删改之前,呃,这个增还好一点,主要呢,是这个修改和删除这个之前,大家呢,尽量呢,先去做一个查询,先看一看,然后再去做这个操作,操作完以后呢,你也可以再去看一下,确保这个操作呢,是不是执行成功了。
11:11
啊,是可以这样子的。好,那接着我们看这个说删除库存为零的这个记录,删除库存为零的记录,你看这个number呢,是不是有这个是零的呀,哎,把这个干掉就行,那我们就是叫delete。那from一下,哎,我们这个叫books是吧,然后呢,怎么办?哎,Where一下啊,这个number呢等于零。啊,这点是不是就删除库存为零的这个记录了。清楚吧,啊,就是这样的方式啊。嗯,行,那咱们就执行一下啊,上完了,上完以后呢,我们这时候再去做一个这个查询。来做一个这个select是吧。来查询,你看这时候就没有了。啊,这就这个删除的操作行,嗯,这个呢,我删完以后的话呢,其实不是特别好,为啥呢,就是咱们这个表中,我下边做这样一些操作的话呢,可能会影响到我们这个数据的一个显示。
12:03
啊,可能会影响到这个数据的显示,那这块呢,建议大家你把这两本书呢,还给他补上啊,这个就是只是我们演示一下能够进行删除啊补上的话呢,我们少的是ID是三的那个和呃五的那个是吧。嗯,三的那个和五那个,那我就这么着一下吧。三的和五的这个。我就把这俩呢,我在。再给咱们加上吧。这是三的,这个是五的,那这个位置呢,我们改成一个这个根号啊,临时呢,这样我们去做一个insert。能理解的意思是吧,好,那这时候我们再去做一个select。那这时候我们就加上了,当然这个ID的话呢,注意ID呢,就不能够按照我们说的这个,呃12345这样的顺序来了,哎,这个呢,默认的话呢,就是按照我们添加的一个顺序啊显示的。行,这块我们再把人家再再打开啊,然后这个位置呢,再改成是个逗号啊,这就还原回去了。没问题是吧,啊没问题啊,那或者有的同学呢,希望说这个ID我就按照这个顺序来,你怎么办呢?那你就把这个表中呢,比如说这个大于三的这个数据呢,你就全部给删掉,然后呢,你再把这个语句呢,再执行一下也行啊也行好这个我们就这样吧。
13:14
这呢还是这个七条记录,然后接下来的话呢,我们看一看下边从这个七一直到我们这个23呢,都是做查询操作的,咱们再来熟悉一下啊。首先呢,这块说统计书名中包含A字母的书啊,这个相对比较简单。啊,A字母这个书我们找的是这个name from一下这个这个books是吧,哎,Where。啊,为什么呢?我们说呃,这个书名当中包含A的啊,Name呢,相当于叫like啊,然后呢,两个百分号中间一个小A。讲是吧,哎,我们统计书名中包含A字母的书啊,这个书的话呢,不就是这个吗,走一下。那包含字母A的,哎哟,这个还挺多的。啊,一共是有六本书啊,都包含这个字母A行,这就过了啊,然后看下一个。
14:02
统计书名中包含A字母的书的数量和其库存的总量。啊,这个书的数量和其库存总量,主要呢,就是我们看这个select了。哎,然后后边这块呢,Where这块呢,其实是一样的是吧,我们要统计这个书的这个数量,那其实对应的就是count一个星,然后呢,库存总量呢,是一个sum,然后库存呢是这个number是吧?哎,就是这样子的,哎,Books,然后where呢。后边这个呢,跟咱们刚才这个写法呢,你看这块是一样的。这样子的是吧,好这样我们就做一个执行,嗯,大家看一下,呃,这个包含A的这个书的这个数量啊,刚才咱们那块也看到是不是就六本书啊,然后这呢,我把这六本书的这个number呢,就全都加一起了,Number呢表示的是库存量啊,这就总共有103本啊好过了。下边说找出呢,叫now,呃,这个。Double是吧,这个书类型的这个书,并且按照价格呢降序去排列,哎,那这块呢,我们去select一下。
15:01
找出这个书,那我们就写个内嘛,然后咱们再把这个嗯叫node呢也列到这儿,然后from一下,这个叫a books是吧,说where什么呢。哎,找出这个数,那就相当于这个node呢,恰好它就等于叫哎,Novel。嗯,按照价格啊,我们再来一个这个order by,按照这个price的一个降序排列,DEC这意思吧。有问题吧,没有问题吧,好,那这块我们选中啊做一个执行。诶,这时候呢,我们查到的都是这个小说的,然后呢,按照它的这个价格呢,降于排列,此时你可能看不出来,然后把这个price呢给它再加上。哎,走一下,你看这个呢,是不是就降序排列了,好没有问题,然后接着查询图书的信息,嗯,然后呢,按照这个select特殊信息,那我们就按照星吧,嗯,按照库存量的降序排列啊,先from这个books,嗯,这块呢,提到了一个排序的,我们来一个order by。
16:01
这个库存量就是我们这个number吧,降序排列D,那如果这个库存量相同的话呢,就按照note的升序排,那就这块二级排序逗号一下啊,这个node它的一个asc啊,是不是这样的一个道理啊。清楚是吧,哎,这样就可以了,来我们选中做个执行,这呢一共把我们这七本书呢,就全列出来了,按照库存量的降序排,哎,这不就这样降一排,如果你要一样的话呢,再按照你的这个node的升序排啊,L跟N这样的一个关系。嗯,没有问题啊,好,接着我们看第11道题。按照node呢去分类啊,统计书的这个数量。那统计书的数量这块呢,提到一个node,按照它来分类统计一个书的数量这块怎么写啊,数量的话,我们说对应的是不是就countt呀,哎,我就看清一下,然后from这个books books是吧?然后呢,呃,一旦呢,我们发现呢,在查询这个当中出现了聚合函数和这个非聚函数,那我们一定要把它写在这个grow by当中啊,这个grow by这个node。
17:05
啊,那此时呢,相当于就按照这个node呢来进行一个分组,现在就是你看这个都是什么类型的是吧?按照这个类型呢,我们做了一个分组,哎,分组完以后呢,我们看看到底这个抗的有几个是吧?来走一下。哎,这块你加一下,一共不就是这七本书吧。哎,这是1234加上这个是吧,七本书啊。好,这是我们说的这个第11道题,然后接着第12题。还是能按照这个node呢去分类啊,然后统计书的这个库存量啊,这块呢叫库存量了,我们这个呢,就是书的数量。来我们看一下啊呃,这个select还是一个node,然后呢,库存量的话呢,相当于我们要统计的是不是就这个number了,哎,然后from一下咱们的这个a books,哎,记着呢,要加上这个叫诶group。Buy是吧,BY我们这个noe,嗯,然后呢,叫显示库存超过30本的。
18:01
诶,显示这个库存超过30本的,这个我们怎么去处理啊。哎,这呢,是不是就我们要计算的这个库存了是吧,那就相当于我们要求呢,是这个,诶sum number呢,它得大于30,哎是不是这样的一个情况啊。理解一下啊好,我们选中了做个执行。哎,就是这个。那就这个啊,哎,你要是这样的话呢,我们先去做执行呢,就是它能够显示出来,就是按照这个来分类以后呢,这是他们各自的库存,然后大于30的话呢,是不是就一个他一个他呀。OK啊好,来看这个说查询所有图书啊,这块呢,就是测试这个分页的。From这个a books,然后呢,呃,Limit这个每页显示五本,显示第二页啊,咱们这个拼音呢,就是五显示的是五页,哎,就是这样的一个思路呗。哎,选中。啊,执行一下啊,这呢,就是我们说的这个第二页了是吧?哎,这个查询所有图书每页显入,他倒也没说这个按照什么来进行一个。
19:01
叫什么排序了是吧。就默认的啊,哎,默认的话呢,咱们那会儿不是把那个三跟五删了嘛,所以咱们后加的加完以后的话呢,他自然而然这哥俩呢,就是最后的位置了,一共七本书嘛,哎,然后第二页的不就是这两本了吗。没问题哈,好,接着我们来看这个第14个。说按照这个node呢,分类统计书的这个库存量,诶咱们好像刚才做过这个。哎,然后呢,显示库存量最多的啊行,那这块我们先把这个需求呢,CTRLC拿回来,这呢就是按照这个note来进行统计这个库存量的。啊,然后呢,按照它是吧,分组,然后显示库存量最多的,那就意味着我们此此时的话呢,首先需要做一个排序吧。这个位置呢,我们叫some,一个number,这不就是你所谓的这个库存量嘛,按照noe来分组的,好,这呢来一个D。哎,先这样写,那这块呢,我们先做一个运行。哎,按照我们这个node呢,首先啊,分类一下他们各自的这个库存量,说显示最多的是不是只要第一个呀,那在这个基础上呢,我们就来一个LIMIT0逗号一啊是不是就搞定了。
20:09
选中执行,哎,这不就出来了吗。哎,还是看小说的人多是吧,哎,不是看小说的这个库存多啊,没说这个是人多库存多呢,那其实意味着他可能这个销量反而不行是吧。好的,这个呢,我们是说到这儿,然后接下来。查询书名达到十个字符的数,不包括里面的空格哟,这个呢,还有一定的难度的。嗯,不包括里边的空格,咱们说这个书名当中呢,它是有可能包括这个空格的,Select一下,我们这个叫name是吧,From这个a books,先看一眼啊。走一下。啊,大家看到了,这呢是咱们这个书名,你看这个书名里边有的确实是包括空格的,现在它现在意思就是说你把这个空格呢,你不能算啊,不能算的情况下呢,你看一下这个字符超过十个的,哎,这个呢是一个小难点啊,怎么搞定。
21:02
你像第一个的话呢,我们得减掉两个空格,这个呢不用减,这个呢,减一个,这个也减一个。啊,这个得减俩,这个还不确定是吧。哎,这个呢,得发挥大家的,这个叫哎聪明才智了就。怎么办呀?哎,我们得把这个空格去掉啊,咱们前面讲这个字符串函数的时候呢,提到过那个叫trim的这个函数,但是这个函数呢,它是去除这个叫首尾空格的啊,它还去不了中间这个空格是吧。嗯,怎么办呢?啊,这块我们其实要用它的另外的一个函数叫做replace。这个咱们前面讲过,这个大家要记不清的话呢,你去翻一下啊,这个replace的话呢,怎么办呢,我把这个name呢,我放到这里边。我把这内放这里边,然后呢,哎,我把里边的这个空格呢,替换成什么也不写。看能看懂不,然后呢,我们再去from一下这个books,你看我们先这样跑一下啊,诶先跑一下来,我们做一个执行,好大家看此时的话呢,我们就把这个呃,Name当中的空格呢,给它抹掉了。
22:09
哎,抹掉以后呢,哎,包括说十个字符了,哎,我们接下来呢,是不是就调一下这个,它有一个函数呢,叫做X length是吧,这个大家应该相对来说比较清楚。那我们计算一下,说这个字符串呢,它有几个差啊,有几个字符呗,哎,这是不是就出来了,那这里边的话呢,它自然而然的是不是就是说呃,是你纯粹的有多少个字符,而且没包裹空格了是吧?哎,这个就是我们这样的一个思路啊,所以呢,我们这个怎么做呢,我就select一下。哎,查询书名,那我们就先只查这个name了,诶,From一下,这个叫a books,说where什么呢?哎,V2呢,是不是就我们说的这个事啊,哎,CTRLC一下让它呢,是不是得大于十才可以啊。它达到十个字符的数,那咱们把这个等于呢也给它包含在里边吧。能行吧,哎,这就我们这样的一个思路啊,好选中呢执行,哎,只有这本书呢是满足题面要求的。
23:04
哎,那就这样来做就可以了。好,接下来我们来看一下这个第16个这个需求。好来看下它这呢说要查询这个书名和类型,那我们首先呢去做一个select,哎,书名呢,我们说这个叫name啊,这个类型呢,我们说叫这个node是吧,好产于它俩,然后呢说其中这个node呢值为,呃,Novel的时候呢,显示小说啊,是law的时候呢显示法律,Medicine呢显示医药,卡通呢显示卡通啊,Joke呢显示笑话,相当于呢我们,呃,比如就咱们先这样啊,我去from一下这个books。哎,这么着,然后呢,当我们这样呢,去执行的时候呢,希望呢,就是这个,呃,这个呢,就要书名了,咱们也可以在这呢给他起个别名啊,就叫做这个书名。然后这个位置的话呢,希望你显示的就是它这个相当于是这种汉字了,那有点类似于就是我们进了进行了一个叫条件判断了,对吧?啊进行了一个条件判断,好,那这块呢,我们这个保留吧,咱们后边呢,给大家再去加一个啊。
24:06
嗯,那这个呢,我们要是给他去分,呃,条件判断了有分支的怎么办呢?是不是叫case啊。啊,Case呢,我们把这个note呢就放在中间,然后问。呃,如果呢,你是这个叫novel。那我们就让他正正在这块呢,就显示啥呢叫小说。你想是这意思吧?好,然后再接着我们去问。啊,这个呢叫law。那就他,然后then这个呢,显示叫法律。哎,接着再问啊,这个我们叫medicine,这个呢,单词不太好写啊,你要是怕自己写错了,你就直接粘过来。粘过来,这不是这个偷懒,相当于叫什么智慧的体现是吧?哎,医药。好,再来。嗯,卡顿再问。这个呢又不保险,那咱们再去CTRLC。
25:03
转过来。在卡通。嗯,好,然后这个joke呢,就要显示笑话再去问。那这个好写,那我就直接写了啊周克是吧,改正。嗯,笑话。好,这呢都是这个文文啊,他也没有这个else了,没说,那咱就不写了,那我这块呢,直接来个end,然后后边呢,我们也可以起个别名,这呢叫做类型是吧,From books来跑一下看看。嗯,就这个意思,就这意思,这块呢,就是它的这个书名啊,这个note呢,我们留一下,然后这个类型是这样子的,呃,媒体。没提他啊,那这个这块呢,没提多少,看着有点不太舒服是吧,那咱们加一个L吧。Else呢,咱们写个叫什么呀,叫做其他。这样子来这块呢,我们选中啊直行,那这个位置你看就成其他了。OK吧,好,这就我们说的这个这道问题,好,接着来看这个第17道题。
26:06
嗯,第17道题这样说,查询书名和库存,好select一下,这个叫name。啊内,然后库存呢,它叫这个number对吧?好,那接着说其中number呢,值超过30本的叫滞销,大于零呢,低于十的呢叫畅销啊等等啊,它是这个意思,那这个呢,Name啊,你也可以呢,给它起个别名,我们就叫做这个书名啊,咱们前面讲这个给列起别名的时候呢,中间可以加个as是吧,那咱们加一个吧。然后这个呢,是它的这个库存啊,库存来一个as。库存啊,艾子呢,当然也可以去了。然后下面呢,就是显示一下它到底是一个什么情况啊,那我们就可以用一下这个case了,那此时的话呢,它不是说等于谁的,实际上是个范围,所以我们这个case跟问就连一起了,当我们这个number呢是大于30的时候。超过30本嘛,对吧,哎,他也没有说等于,那咱就不加这个等号了,然后Z这个时候呢,它叫做滞销。
27:05
卖的不好嘛。好,再去问。啊,再去问这是大于零并且小于十,嗯,那这块呢,我们咋写呢?啊,你就分别来写大于0AND呢,让那小于十是吧?呃,这种情况下呢,我们去证它叫做畅销。哎,就是这个意思。好,然后再接着的话呢,我们去问一下,说这个,呃,这个为零的时候呢,就相当于它是等于零的啊,这时候我们去震一下。啊,这个叫做无货。哎,是不是这样子,哎,那缺少其实一一块大家应该也能看出来,是不是缺少那个十到30之间这样一个范围,他这块没有题,那咱们暂且呢先不管了,那我就摁呢来结束,这呢就是显示。咱们叫做显示状态吧。
28:00
这样好,然后我们去from这个books。哎,这样子好,那这块呢,我们选中来执行一把。好,大家看,那这块呢,就列出来我们这个书名和他的这个库存了,哎,40本的这个显然就要滞销了,然后这呢就无货了,哎其他的你看这块都处于这个闹的状态,那看着不太爽是吧,那我们在这个位置,你可以给人家加一个else,咱给家起个名叫什么叫正常吧。啊,比如叫正常来选中啊,再去做执行,哎,就是这样个情况。哎,就这样的情况。嗯,这个畅销的是零到十没有是吧?啊没有那就没有了,行就这样。过了啊好,那接下来我们看这个第18说统计每一种note的库存量。哎,统计每一种的这个note的库存量,相当于呢,是不是这note呢,需要做一个是分组啊,啊这个select。嗯,Select呢,我们这块呢,是不是就这个node,它对应的这个库存量啊,这块我们怎么去设计啊,哎库存呢,我们说是不是用这个number来进行衡量的,那就是哎sum一下它是吧。
29:06
好some米,嗯,然后呢,去from一下我们这个叫诶books,然后group by啊,那自然而然的是不是就我们这个note呀。哎,那我们这块呢,先封起来,哎,来我们选中啊执行一下,那此时呢,是不是就显示了我们每一种这个类型的是吧,Node类型的对应的它这个库存。还有库存量啊,是不是就列出来了。这个能行是吧,好,然后这块呢,你看它有一个额外的要求啊,这个大家能看懂吗?说呢并诶合计总量就是这呢,是它们库存量,你这块再告诉我一下总量。那不知道大家还记不记得咱们当初讲这个,诶,Group by的时候呢,提到过,后边呢,可以去加上一个叫with,是不是叫roll up呀。诶就这样个操作,他这块呢,会按照我们这个分组之后呢,最后再补上一行,然后呢,来显示一下,就是呃这块呢,这个呃总共的这个数据是多少就会列出来。
30:00
哎,就相当于把这几个呢,求了一个sum是吧,好,那这块你看我们此时再去执行。哎,就是这个意思。咱们刚才那是不是上边这样的五行数据,然后这块呢,就显示的这个总数据,哎,这个131。哎,总数相当于就是没有进行分组啊,把整个数据呢当成是一组球的一个sum,但这块呢,总是显示这个now呢,感觉差点意思是吧。这个闹呢,差点意思,怎么办呢?哎,我们有个小技巧,你看我这块呢,这样处理,我写个叫if now。如果呢,你这个位置呢,是node的话呢,那你就还写你自己的值,如果你要是个no呢,我们这里边做个替换啊,我这块呢,换成另外的一个字符串呢,来自于替代。可以吧,那我们这呢叫什么合计库存总量。哎,我这样来处理一下。有点意思是吧,好这块呢,我们选中呢,做一个执行。你看就出来了,在这块呢,一写的话呢,这个位置好像又差点意思啊,相当于这块呢,充当它的一个名字了,对吧,那咱们就还换成这个叫node啊,或者你给加个as也行啊,叫做the node。
31:04
就他呗,好,那此时呢,我们再去选中啊再执行好,大家看这个呢,体验是不是就好一些了,这个叫noe,哎还是这几个,然后最后这块呢,叫合计库存总量,哎,就是它。嗯,挺好是吧,好这呢,就我们这道题啊,下边这个。说统计每一种node的这个数量。哎,这块noe数量,这个就是你比如你小说的有有有几本书,总总共咱不就几本书嘛啊,其实跟上边这个有点像哈,并合计这个总量,只不过呢,就上边这块呢,咱们统计的这个呢,叫sum number了,这个呢,咱们相当于是换成是不是叫count一下星啊。是这意思吧?哎,就是这样,这块呢叫呃合计,咱们这块呢,相当于是统计有几本书啊,合计咱就叫合计总量吧。哎,不是库存了,库存呢是咱们这个sum对吧,这个呢就是看你有几本书,嗯,这么着一下来咱们跑一下看看。咱们呢,一共不是有七本书吗?然后是小说的这个呢,Novel的一共是有这个三本是吧?哎,其他的都是只有一本,诶没问题吧。
32:08
没问题是吧,那就这样做啊。好,接下来我们再看一下这个20题,说在统计库存量前三名的图书。哎,库存量前三名的图数,嗯,这个比较简单啊,我们直接呢就select,直接就星吧,诶from一下这个a books,然后呢,诶这个不用分组了,直接order by呗,嗯,库存量啊,我们用的它来衡量的DEA一下,这呢,是不是就是衡量了一下这个库存量呢,就是从高往低的这样一个排序。没问题是吧,好,那么这个排序完了以后呢,我们只需要取前三的,那我们就在这个基础上呢,是不是来个limit,我来零逗号三啊,这不就是取这个前三条这个记录吗。库存量啊,前三的啊,只有这仨。哎,就这样啊好,那接下来我们再来看一下,下边这个说找出最早出版的一本书,那其实呢,就是按照我们这个PU是不是做一个排序就可以了。
33:05
啊,Select啊行,然后from一下这个a box,然后呢,Order the back啊,我们的这个叫pub date这块你注意就是我们比方1999年跟2005年就是1999呢,这个数比较小,我们希望最早出版的,实际上呢,是不是就按照这个升序呢,来进行一个排列吧,咱们先跑一下。好排完了这呢,就是按照我们这个PU的排序的,然后找到这个出版最早的这本书,是不是就第一本儿,所以在这个基础上呢,我们来一个limit,哎,零逗号一是不是就可以了。就九三年这本书是吧,哎,就行啊好,接下来我们来看这个第22题。找出这个novel中价格最高的一本书。啊,那其实呢,就只是加了一个过滤条件,找价格最高的呗。好,Select这个星还有from,那我们这个叫。啊是吧,然后wear一下。怎么着呢,这个novel里边,其实这个属于它的类型。
34:02
哎,Note这个类型呢,是这个叫小说。啊,是这个的是吧,然后呢,我们再去找到这个以后呢,去order buy一下,按照这个价格。来个dic价格最高的啊,这块呢,我们先排完去看一下,呃,应该是有三本书是吧,诶三本书是一个小说,然后价格呢,是依次递减的,我们要其中最高的一本书,那我在这儿呢,是不是补一个。这样的一个操作就可以了,就是我们是不是这个IDV3的这本书了。哎,没问题是吧。好,最后一个说呢,找出书名中字数最多的一本书,那不包含空格,那既然提到不包含空格了,是不是又得用到咱们上边呢,使用的这样的一个函数是吧。哎,又得用到它了。哎,这呢是我们把这个空格去掉以后呢,它的这个字数啊,那这块要干什么呢?找这个书名当中字数最多的一本书,这个怎么做呀。首先这块呢,我们啊去查询的是不是让查询这个书的情况了,我们就这样来处理是吧,哎叫books,哎,然后怎么办呀。
35:07
然后怎么办,我们是不是要查出这个书的这个呃叫什么它的字数,然后进行一个排序是吧,那我们就直接呢,Order buy一下,哎,这么着可不可以。哎,其实可以的啊,就是相当于原来呢,我们到奥德BA呢,只是按照这个内幕来排序啊,来进行一个比如说叫降序dic现在,但是现在呢,人家这块呢说说你不能算空格了,所以我们这块呢,把空格也去掉了,然后呢,诶看一下这个这个这个个数是吧,不是呢,按照这个名字来排了,然后按名字排呢,你可能ABC,然后这块呢,是按照这个顺序的,然后咱现在是按照这个呃名字的这个长度来排的啊,所以我们就这样来处理啊降序排来跑一下。好大家看,那这时候的话呢,我们是按照是按照这个内它的这个呃,除去空格以后的这个字符的个数呢,往下降去排的,我们只找那个呃,书名当中字数最多的那个,是不是在这个基础上呢,我们再来一个LIMIT0逗号,一哎就搞定了呀。
36:02
好,选中来执行,哎,这个数就出来了。排出来了是吧,咱们那会儿呢,要找的是不是说那个长度大于十的,哎,当然也就只有一个,那自然而然它也是我们这个书名最长的是吧。来说明这个长的行,那这样的话呢,咱们就把整个这个关于呃,DML呢之增删改操作呢,咱们就说完了。哎,咱们就说完了啊,这里边呢,其实练的比较多呢,还是查询是吧,诶增删改呢,相对来说呢,还是比较容易一些的,呃,这个呢,大家呢就呃在呃不熟悉的呢,再做一做就可以了,然后咱们课后这块呢,还有关于这个咱们增删改的这个题目啊,大家呢再去熟悉一下啊整个来讲的话呢,创建和管理表增删改的操作呢,相对来说呢,这个难度呢都不大啊,大家呢多去写一写就可以了。
我来说两句