00:00
那第三章啊,咱们就说到这儿啊,这一章讲完之后呢,我们最基本的一个查询语句的这个雏形呢,就出来了,叫做select,然后from,然后再加上一个where,那where呢,我们说用来是过滤数据的,对吧,那通常呢,咱们回头呢,拿着这个四口语句呢,去咱们这个数据库当中去查询数据的时候呢,一般情况下呢,咱们都会加上这个word。那你想象一下,如果我们这个表当中有这个几十万条甚至上百万条这个数据,如果你要不加上这个where啊,当然了,我们后边你也要你,你如果说也不给提供这个分页数据,这个获取的话呢,那你整个呢,要返回给我们这个后台,或者呢,呈现给用户,那是非常恐怖的一件事情,对吧?那一般的话呢,咱们都会加上一些所谓的过滤条件,那么这个过滤条件呢,咱们在讲这个第三章当中的时候,其实已经涉及到了一些运算符的使用了,比如说我们说呃,等于啊,大于啊是吧?哎,这样呢,其实已经算是运算符了,那么除了这些符号之外呢,还有哪些更为丰富的运算符呢?那就是咱们这一章第四章当中要给大家讲解的这个内容。
01:06
那大家呢,现在咱们学的是这个circle啊,那这个很多同学呢,之前也接触过像Python啊,Java呀,C语言呀,是吧,等等这样的一些这个编程语言,那么在这些编程语言当中,通常呢,比较靠前的时候呢,都会讲一个,呃,这个内容呢,叫做这个变量。讲变量,那变量呢,这个类型它有的是这个弱类型的,有的是这个强类型的是吧?哎,这个具体细节我们就不说了,然后变量讲完之后呢,紧接着呢,也会提到变量与变量之间的运算啊,加减乘除这样的一些,那么这个运算的话呢,其实就是涉及到的也叫啊运算符。那也叫运算符,那这个不同的语言呢,这个虽然语言的语法规则不同,但是运算符呢,基本上这些类别都是差不太多的,那像涉及到的比如说算术运算符啊,这个加减乘除这种是吧?还有比较运算符,就是谁大大于啊,小于啊,不等于啊,哎这样的一些叫比较运算符。逻辑运算符呢,涉及到这个或且非啊,这也叫逻辑运算符,然后未运算符呢,就涉及到这个左移啊,右移啊,还有这个与运算或运算异或运算哎等等,这就叫未运算符。
02:10
那有的语言,比如像Java呢,还会涉及到比如叫赋值运算符是吧,还有三元运算符等等,就是有一些语言呢,它在这个通用的这个运算符的基础之上呢,它还有一些特殊的一些场景,对吧?那OK,呃,那咱们这块呢,主要讲解的当然呢,是基于这个circle的了啊,如果说大家有其他一些编程语言的基础的话呢,那么诶,你学起来呢,也会稍微的快一些啊,因为呢,像我们常用的一些运算符,它这个基本规则呀,都是一致的。哎,都是一致的行,那我们就按照这个顺序呢来进行讲解,首先呢,我们来学习呢,叫做算术运算符,这个也是比较简单的一类运算符,好,那我们这块呢,首先把这个笔记呢,先创建一下啊,我先CTRLC一下,然后回到我们这个circle要这块,呃,先整一个这个诶井号,然后CTRLV是吧,哎,第四章运算符。
03:00
哎,我把这个呢,CTRLCCTRLS保存一下啊,放到咱们这个代码这个位置。嗯,没问题,好。那我们首先呢,来给大家讲解的是这个第一波叫做算术运算术。这个算数算数运算符呢,其实就是我们刚才看的这几个,比如说加减,然后乘,这个叫除除是吧,除的话呢,也可以用这个叫div来表示了啊,这个div你注意是这个divy的是吧,不是咱们大家学习那个前端的时候呢,用的那个叫div那个标签了,OK,嗯,加减乘除,还有一个呢,叫做取模,取模的话呢,在这个不同的编程语言当中,基本上都是用的这个这个符号来表示的,那在我们这个嗯,SQ当中啊,还可以用这个这个算这个单词了啊,叫做mod mod是吧来表示也可以行,这呢就是我们要说的这个算术运算符的这样的几个符号。嗯,从难度上来讲呢,其实不大,诶从难度上来讲其实不大,下边呢,我们就通过一些例子呢来进行说明,那首先呢,说一下这个加减,因为这个比较简单,所以我就直接呢粘过来了啊这个通过这个例子呢,咱们就直接说了,好粘过来。
04:09
这个from到这个咱们在上一章当中提到过了,就是一个尾表是吧,好大家看这呢,我们是查询100,这是一个整数了。啊,就是算术运算符算数嘛,那是不是我们这这个,当然这个数不是咱们说的那个数据的数了啊,这个主要呢,都是针对于数值类型的啊,变量也好,常量也好,做的这个运算叫做算数了,行,那大家看我这写了一个100,然后100加上零,100减一个零啊加上50这个这个这样的是吧,加50减30加了一个,诶这个呢,是带小数点的,那后边呢,咱们讲数据类型的时候呢,会提到这种呢,咱们把它称为呢,叫做浮点型。诶,这是咱们首次引入啊,叫做浮电型的这个变量,而这个100呢,我们称为呢,叫做整形。整形也很好理解,就是咱们小学时候呢,学的这叫整数,这叫这个小数,浮点型的这个数也称为的就是小数的带小数的,OK对诶做了一个运算是吧,好,我们选中的话呢,咱们执行一下,看看这个结果,这个没得说了,肯定是100,然后这块呢,再加减一个整数的时候呢,我们发现结果呢,它还是整数。
05:16
那加上这个50这个运算的话呢,因为加减的运算呢,它是同级别的,就是我们就按照从左往右的这个顺序呢,去去执行了。那如果说我们这个位置呢,那一会咱们是不是还有这个乘除的运算是吧,那如果你这块涉及到一个乘乘法呢,那乘法的话呢,我们就会先去计算这个乘法啊乘除,然后后加减对吧?小学呢,我们都学过这样的规则了,然后这呢,如果有这个浮点数参与运算了,那这个结果呢,自然而然的就是带小数点的了。那后边呢,也同样的道理。也同样的道理是吧,这就我们说这个加减的这种场景啊,加减这个场景,那么这块呢,咱们强调了强调了一下啊,就是主要咱们针对的都是这个数值类型的,那可能有同学会去想这个事儿,比如我现在有个100,我加上一个,那整一个,诶整个字符串吧,你看我from一个到。
06:05
对吧,那加了个字符串,那此时的话呢,问大家一下,这个结果是多少呢。结果是多少呢?如果有过其他编程语言经验的同学呢,再去做这个问题的时候呢,有可能会做错,哎,你看一下这个结果是101。啊是101啊,这块我们可以强调一下,这个在啊像Java这样的语言中啊呃,在Java语言中这个结果呢,是跟咱们这就不一样了,Java中的话呢,是变成1001了。那为什么这样来理解呢?就是在咱们这个,呃,Java当中的话呢,就是这个符号啊,它有两个作用,一个呢表示加减乘除的加,另外一个呢,还表示的叫连接符,因为这是字符串,这个呢是非字符串,中间呢,只要有字符串参与的就不表示叫连接了,就是你你别按加减算,就直接拼一起就行,所以在Java中呢,它的结果是1001。在咱们这个,诶这块我再说一下。
07:02
诶,在咱们这个a circle中。没有啊,这个加号是吧,它没有连接的作用。连接的作用啊,就表示这个加法。运算。那这个大家注意这样一个点。哎,这个我把它放在这吧。它呢,就表示这个加法运算,那么此时呢,我们说会将这个字符串转换为。哎,这个数值。那这我们把这种转换呢,称为一个叫隐式转换。后边的话呢,咱们讲到这个不同的数据类型这个函数的时候啊,单元函数的时候,就是在我们这块讲单元函数的时候呢,我们也会提到了,就是不同类型之间这种变量,它这种转换的这样一个事情啊,尤其呢,像这个日期型的和字串类型,还有这种数值型之间的啊行,那这块大家注意,它是存在的一个隐式转换,到时候我们讲这个具体函数的时候呢,还会讲这个想显示的这种转换的规则,嗯,这个大家注意一下,行,这是我们说的这个点,嗯,那就相当于把这个事呢,就纯粹就看成是一了,是吧,数值一了啊做了饮食转换,好,那比如我们再来,我再加上一个,诶同学说呢,就就想整一个特别的,那你看这个呢。
08:18
是吧,还有点恶心啊,就是咱们呃,现在呢,因为刚开始学习,咱们会列一些比较恶心的一些不常见的一些场景,但实际呢,我们在这个SQ这个呃开发当中啊,其实咱们不会写这些比较特殊的这种场景的啊,遇到的还是很少的,OK,行,那这个的话呢,你觉得是多少呢?那如果按照我们刚才说的话呢,会转化成数值,那这个这个数值应该又应该是多少呢?哎,同学用X码注意,你看我们这时候呢,结果是多少啊。是不是100啊,诶,那也就意味着我们这个啊小A它是不能够这个转换成这个数值类型的啊,人家是也是转换,因为它里边本身存的就是个数,你这不是个数了,此时呢,我们就将。哎,此时将我们这个小A呢,是不是就看这零来进行处理了。
09:04
哎,看作按零处理。就是我转不了,那就是零是吧,那自然而然的,我这写个AB呢,那是不是同样的道理。那也是按零来处理的是吧,哎,这个注意一下这个小细节问题。行,那还有啥呀,其实这块呢,都是一些特殊情况,就也没有必要非得给大家列这么多了,你看这个。走一下。这个是吧,哎,这个now的话呢,咱们在讲前面内容是不是提到过,就是讲那个基本的C拉语句的时候,说他就要表示个空值了,说空值要参与运算的话呢,结果是不是就为空。哎,Now值哎,参与运算,嗯,结果呢为no,其实咱们前面呢已经讲到过了,对吧,好这个就过了啊,像这呢,咱们说的已经比较详细了,这块呢,也有刚才我讲到的这样的一些这个场景啊,不多说了,在这个像Java里边,它有连接的作用,咱这就没有了啊。那具体的话呢,如果我们字符串就想表示是一个拼接的,那也就是说呢,如果我们就想是让它呢,呈现的结果呢是1001,怎么办呢?我们后边讲单项函数string那边的时候呢,我们会提到它有个方法叫可开方法,用这个方法呢做一个拼接啊,到时候我们再说行,那这是加减,然后下边的属于一个乘除的运算啊,这个来看一眼。
10:19
把它拿过来。往这一放,稍微有点长。啊,还确实挺长的,咱们从中间截一下吧,到这儿。From的,这样一下也可以好选中执行好看结果这个100这个数呢,还是100乘一个一,那还是100,那除以个一呢。那除以一什么呀,你看这有个除以一啊,咱们先说这块吧,这个乘以个一呢,结果还是100,就是整形还是整形乘以一个1.0,你看因为我们这里边是不是有这个浮点类型的变量参与了,所以你看这个结果呢,就也是一个浮点型的。啊,这是属于小细节点啊,这也是个负电型的,然后我要100除以1.0呢。那100除以1.0的话呢,因为你这也是个浮点型,所以你看结果是不是也是个浮点型,那这些呢都好理解,那看这个。
11:06
这呢叫100除以二。那100除以二的话呢,按说这是整形,这是整形结果呢,是不是也应该是个整,哎,结果呢,你看能不能除尽了啊,我们这块呢,其实是能除尽的,那能除尽的话呢,大家想那结果应该是50啊,这怎么出来的是浮电型呢?哎,这块呢,是实际上是有一个特殊的情况,就是我们让这个数跟数做除法的时候呢,其实更多的场景呢,其实是除不尽的,大家你想对吧。诶更多的场景是除不尽的,所以说呢,在咱们这个SQ当中啊,那他就认为这个除不尽呢,属于一种默认情况了,那既然除不尽的话呢,呃,我们就会给你保留一定的这种小数位,那那既然保留小数位了,自然而然的它不就是浮电类型的了吗。诶,你看我这样的一个解释大家能理解吧,啊那像Java呢,就不一样是吧,Java你要是整形跟整形结果就一定是整形,你要除不尽,他就给把小数点全给省略掉了,相当于呢,它就是四舍五入到这个整数位。
12:01
那咱们这个circle呢,不是这样是吧,诶你除不除的进结果都是浮点型啊,这是小细节,然后另外呢,就是我们提到了,就是先乘除后加减。啊,所以二乘以五再除以二,这是五,所以结果是105对吧,那你要是拿这你看,因为你这块做过除法了,所以结果呢,它是一个浮点型的,浮点型的再再加上我们这个,呃,整形的是不是还是一个带小数点的,是这样子的,那你要说这个要先预算,再再乘以五再除以二,它就那不一样了是吧。OK,嗯,这块呢除以三,那我们说到了这个,你看本身也除不尽,那除不尽当然更得带小数点了,好,这块注意一下。这块大家注意一下,一般呢,咱们做除法的时候呢,在数学当中明确提到过,小学就讲了分母不能为零。相当于你把这个数呢,要分成几份,分成零份,那那咋分呢。啊,如果在数学当中,数学当中上边呢是一个数,你是个常量,然后下边呢,比如我写成一个变量叫X,那这呢,我写一个叫呃,Limit是吧,然后X呢,趋向于这个零,那那这个结果是多少呢。
13:02
这个比如说我就正常就是一个常量了,写个N,那除以X,那这个结果是多少啊。也就是说那那那正无穷那也不一定,那你看这个趋向零的话呢,它是从这个正数的这个角度,你比如我们这写一个画一个数轴的话啊,这呢是这个零是吧,你要是从这个正数的角度呢,无限趋近零,那这个结果呢,是不是就正无穷,你要从这个负数的角度呢,趋近零的话呢,那这个结果呢,是不是就是负无穷了。啊,是一个这个极限的一个数对吧?OK,行,那我们在这个SQ当中,你要是这样写他这块呢,没有给我们报错啊,这个结果呢,它写成是个no了,这个大家稍微注意一下就行啊,作为一个特殊情况呢,你记录一下就可以了,就是分母不能为零,要为零,结果就是no,哎,就这样啊。这个我们在这说明一下。分母。呃,如国。为零,则结果为no是吧?好,这呢,就我们关于这个加减乘除,那就说到这儿。那这个加减乘除说到这儿啊,包括我们说这个,呃,这块呢,也不一定是在这个,我们说在VR中去使用了,你在这个查询的中也可以去使用,咱们上一章呢当中呢,也做过,比如查询一下这个员工一年到底挣多少钱,是不是这块就做过运算是吧?OK啊行,然后呢,我们来说这个这个取模的一个运算,那曲模一个运算呢,咱们直接就。
14:22
在这块来写。曲模,嗯,这个我在这写一下啊。取数运算的话呢,刚才说了可以用它也可以呢,你写成这个mode啊,都可以来我们select。现在我们主要来测试。我来一个,比如12吧,12取模一个三,12取模一个五。然后再来一个啊12曲目,我换一个单词,用这个mode曲摸一个负五吧。哎,那顺带我们把这个都列一下吧,嗯,这是这个我们把它称为的叫被模数,这个呢叫模数,就跟说呢,除法的时候,这叫被除数,跟除数一样好,那接下来一个,比如负12。
15:01
去摸一下五来一个负12。去摸一下这个负五来看一下。From down是吧?OK,好,选中执行来看。这个的话呢,因为除尽了,所以模数,模数就是我们所谓的余数,那余数是零,这个呢没除尽,余数是二,这个呢也是二,那这两个呢是负二,那通过这这四个的话呢,大家可以总结出来一个规律是什么呀。就是我们这个结果的这个符号,模数是结果的符号与我们的被模数的这个符号呢,是不是一样啊。看是正的就都是正的,是负的呢就都是负的。跟这个魔术没有关系。哎,跟那个魔术呢是没有关系的,那这块呢,大家注意一下这个问题啊,行,然后我们做一个具体的一个练习啊,比如我们想查询这个员工ID啊,为偶数的。员工信息。对吧,好,那我们select。
16:00
Select a select。The employee ID,然后比如他的last name。再来一个salary吧,From employees,然后where employee ID,那这时候呢,我们是不是取目,哎,让它呢,是等于零啊。取二相当于除尽了这个等于是这样来表示的,现在这个,呃,这个等于呢,相当于它是一个叫,诶叫什么呀,这比较运算符了,咱们一会儿再去说,在咱们这个SQ当中啊,咱用的是一个这个符号啊好咱们走一下。那一共呢,查出来54条记录,这里边儿呢,你看全都是这个偶数。全都是偶数没问题对吧?嗯,没问题,行这块我们相当于先用了一下接下来要讲的这个比较运算符,行这呢就是取模的意思了,那关于算术运算符呢,咱们就说到这儿,整体来讲的话呢,还是比较简单一些的,那接下来的这个比较运算符呢,就事稍微多一些,那符号呢也很多,这是一波,下边呢还有这一波啊,挺多的,那我们重点呢,来看一看这个比较运算符是什么样子的。
我来说两句