00:00
好,下面我们看一下这个第二节的练习题,我们把这个课件关了。哎,大家打开这个,呃,打开这个面试器之前,我们先看一下这个侧扣这里边的这个练习里边的几道题目啊。第一个啊,说叫where词句必须紧跟from词句,这个是需要大家注意的,它俩呢,就像情侣俩一样得挨着,像讲那个outb,它不能够贴在这俩之间。下一个说查询lastname we king的员工的信息,这我们看一下就可以了。由于你这个K啊,它是一个字符串,所以说我们需要给它加上。一对单引号,第一个错误呢,就是没加,所以错了,第二个加入单引号的这个表示字符串,它是严格区分大小写的。前面这些啊,我们说都是circle的,它是不区分的。没有没有问题,你大写小写,尤其像select from和where作为三个关键字,大写小写都行,但是呢,作为字符串的,那一定要区分大小写。
01:06
所以这种查询方式是没有结果的,必须得这样才行。这个呢,我们刚才给大家讲课的时候也说到这一点了,你再回顾一下,下一个说查询98年4月24号来公司的员工有哪些,我们那会儿也做了一个类似的这些格式啊,我们说得非常的严格,这样来写,如果你稍有不慎写错了就不行。我们当时也给大家说了,你也可以怎么写啊,也可以这样写,我们在下一节单行函数会给大家讲到,我先写到这儿,我使用转换函数叫to差,将我们的这个date型的叫her date转化成一个字符串。YYYY表示年,MM表示月,DD表示D,让它等于刚才我们写的1998年。
02:02
四月,四月你可以写成零四杠二四,那么这一天来公司的这两种写法都可以,不建议使用这种写法。以后我们都抛弃他了,就啊下一个查询公司在5000~1万的员工的信息,CTRLC来搞一下。Select,我查询他的lastname和salary,就这两个信息得了from employees where加入一个过滤条件,公司在5000~1万之间的,那就是salary大于等于5000 and salary小于等于1万,就这样吧。他们这些是满足的,或者怎么写啊,我们刚才是不是还讲了一个叫where between and呀,就是where salary between5000and1万。
03:10
它是包含边界的,我们就这样写。也是43条记录。如果说你这个工资查询的说是严格大于5000并且小于1万的,那你用这个比去的就不合适了,只能够用这种方式,因为它是含边界的,对吧,好了看下一个。查询工资等于六千七千八千九千一万的有哪些?这个我们就不写了,大家看一下就行,这种方法你或者使用奥,就是将salary满足的一个一个都写出来,中间用or连接?我们看一下这个结果,直接CTRLC。加上在这需要加分号17条记录,那么或者呢,我们使用in表示呢,是salary,取这分别中的每一个的时候,结果是多少?CTRLC,我们看看这个结果是不是也是17条。
04:13
没错,这两种方式都可以下一个查询。lastname中含有小欧的。那就这样写吧。前边有不确定多个,后边也是,所以这样写说第二个字符是O的,那你只需要把前面这个给它改成一个下划线是不是就可以了。没问题,说拉斯内蒙含有下划线的,就是我们涉及到叫讲叫转移字符了,那得这样写。Like。有下划线,然后加上一个转移字符的标志,表明了这个它是一个转移字符,就是表示的是名字中含有下划线。已经不再表示是一个单个字符的含义了,像这是吧,好了再往下。查询公司中commission PPT字符字段不为空的,为空就是is闹呗,不为空的就是is now no,这个比较简单的哈,所以说这一节内容实际上难度不大。
05:11
Order by就是排序,可以按照多个列来排,先按照第一列,再如果第一列有相同的,再按第二列,这两列分别你可以按照顺序或者逆序的顺序排都行,如果你再有需要的话,你按照第三列可以依次这样下去。这是我们这一节的这几个基本的小练习,我们给它关了,然后呢,我们看看这个word版的练习。哎,我们一个一个写一写,先写前四个吧,CTRLC。行,我们先在这写第一个查询工资大于一万二的员工的这个信息,Select lastname salary from,哪个表叫employees where,它的salary是大于,没有等号,那你就不用加了,大于一万二的就这样。
06:23
哎,一共有六个人。好,CTRLC。粘过来。OK,好了,我们看第二个。第二个,查询员工工号为176的员工的姓名和部门号。同样的道理,Select last name department ID from employees where。
07:02
角EMPLOY1ID等于176,是这样吧。就是它。80部门的。下一个选择工资不在50到一万二的不在怎么写?Lastname salary from employees where,不在5000到一万二的,那不就是说你这个salary,我们换一种表述方式,就是你可能是小于。5000的或者呢,中间是all而不是而不是and的,严格需要注意,或者呢,是大于一万二的,是这样呗。
08:03
是这意思吧?55个还能怎么写?我们那会儿是不是讲了一个between呀?Between如果说是5000到一万二的怎么表述啊?是不是where salary between 5000and12000,如果说不在呢?那是不是就叫not between呀?就这样,我们看这个结果是多少。刚才是55,这是不是也是55,所以说这两种写法都可以。我们再看下一个。选择雇佣时间在这个阶段之内的几个星期,Select last name job ID her from employees where,我们先按照这个旧的写法看看怎么写啊。
09:22
98年2月1日,那就是where这个data。Between一个双引号吧,哎,一就是单引号2月1日,那就是一杠二月杠1998年的and。1998。不对。一杠五月杠1998这两个日期之间的看看。那有11个人,这我们就这样写,这种写法我们说也不建议大家写,我们到后边再给大家说,你可以给它改成to date。
10:08
他比俊,来来写一下吧,这样。It between这样写哈,Between。啊,那这个操作。这个操作还不太一样呢,我们得把它,因为你这写的是叫hair data hair data,你给它转成也能写,这样我们在这操作吧,其实你我们这我们到后边会给大家说,你既可以把一个date型的转成一个差。也可以把一个差型的转成一个date型,这两个都都两种方式都可以,我这儿呢选择是将date型转成差。现在呢,这是一个差型的,或者叫字符串类型的,它呢between。
11:01
1998杠。零二杠01AND。1998杠零。五杠零一。11条跟我们刚才这个记录是一样的,这两种方式也是两种方式,大家。都看一下你掌握哪种啊,掌握后边这一种,这种我们在下一节还会给大家讲。这是前四个题目,我们接着看后边,我们这就把后边这几个全粘过来了,CTRLC。来一个一个来,第一个选择在20号货52部门工作的这个员工,Last name department ID from employees where。
12:12
那就是department ID吧,在20或50,你是不是可以写成这样?哦,可以这样写吧,还可以怎么写啊?Where department ID in20,逗号50。这样吧,两种方式都可以。47条记录。哎,下一个这个呢,嗯,加红就加红就加红吧,下一个嗯。
13:05
在九四年雇佣的员工的姓名和雇佣时间,九四年来的,就这意思呗。九四年来公司的员工select lastname her state from employees where如何来表示九四年来公司的肯定还是对这个higher data进行操作吧。说他呀。九四年来的,你要正常用还是有年有月有日的,那你这相当于是不是一个模糊查询呢。Mo查询就是你这个,最后你这个年是含有199次的。前边呢,你有月有日。我们试一下,没有正常,九四年确实来人了,你这样写不行,我们把它去了试试。这就有了,所以呢,我们要写的话就这样写。
14:03
哎,或者呢,我们再给大家说一种写法,还是涉及到刚才说的叫转换函数,那你就是where to char data。MM-DD,当你把它转成一个字符的时候,它呢?哎,这这就不这样了,我就不要你这个月跟日了,只要你这个年年的话是等于字符199。1994是这意思吧,我们看一下结果,刚才是有七条记录。也是吧,所以说这样的写法也是可以的,那哪种好,显然是下边这个好。它更具有通用性。这是第六题。大家你看你写的时候,我们发现其实SQ语句啊,比我们学Java你刚开始学那样简单了,呃,教大家的,教这个咱们这的学生的时候,就是他真觉得特别觉得是不难,但是呢,感觉挺绕的,因为你刚开始呢,你没有接触过这种语法格式的,你熟悉一下就行了,你看你select的都是一些什么语句吧。
15:19
它都是一些语句,它还不能严格算是一门这个编程语言,你要说PLSCO,还可以算算一门编程语言,它就是一些语句,对吧,它实际上不难,但是大家你看了一个视频之后,你一定要自己亲自的把这些练习都敲一敲,要不的话学的简单,学的快,忘的也快,那我们看第七个题。选择公司中没有管理者的员工姓名和招牌地。就是你你你做这些练习的时候一个前提,你得把这个表里边都有哪些东西你得知道,比如说employ表,我们现在一直对它进行操作,它有哪些列是这意思吧,它有哪些列你得你得清楚,你可以通过tic inlos这样来看,就这些列,我们现在操作的实际上都是这些列。
16:06
什么job department ID啊,Salary啊,呃,Commission PT啊,呃,这老板的ID啊等等等等都在这,或者给大家也发了一张表,你结合那张表也行。在这吧。OK,行,我们接着说下边这个练习。第七个。选择公司中没有管理者的员工姓名和job ID select lastname job ID from employees。没有管理者,那就是意味着,呃,Where,你对应的这个员工的managed is,闹吧,这不就是没有管理者?少一个字符E。
17:03
那这个人他是没有管理者的。他应该就是公司中传授的老板是吧?名字都叫king。行,这是我们这个练习下一个选择公司中有奖金的员工的姓名,这个这个不难吧,当你这个题目做多的时候,你脑子,你脑子就看到这个东西,这个答案实际上已经出来了,代码怎么写,脑子可能还没想出来,还没还没具体反应过来,但手已经已经上去了,那你说你到一定境界了啊。From employees。有奖金,那意味着你这个叫commission p不等于no吧?
18:06
意思not no,那你要不加not就成了没有奖金的,这是有奖金的对吧。35个人。行,接着来。选择员工姓名的第三个字母是A,那就前面有俩下划线嘛,来,Direct last name from employees where。叫lastname,第三个字符得用like吧,模糊查询是一个字符串加上一对单引号,第三个字符一个下划线,两个下划线,第三个是A,后边可能还有不确定多个字符,那就这样写。
19:10
三个人,你看这三个人的第三个字母都是A。行最后一个题目。选择姓名中有字母A和E的员工的姓名,就是这个名字中只要含有A和E,就都得给它输出这个怎么写呀,Lastname,我就输出它from employees where。名字中含有A和E。那就是where last name首先有一点确定一定模糊查询了,含有A和E。
20:03
是不是这样写,可能是这样的。这不就是含有A和E,但是呢,你这样写一个前提是这个名字中A在前,E在后,所以说你再加上一个O。那你还得有一个last name like,把A跟E的这个顺序给他颠倒一下。这是A在前,这是E在前。17个你看大家你看人家名字的时候,这是E代钱的,这是A代钱的,所以说就这样来操作。CTRLC。这些练习啊,大家你务必你看完以后觉得理解了,那你一定要亲自去给它敲一敲,一定要亲自敲一敲,我们把这个练习保存一下,那我们这一节过滤和排序数据就讲完了,下一节给大家讲单行函数。
22:26
等等。
我来说两句