00:00
行了,那咱们接下来咱们这样啊,先来简单的我们搂一遍我们之前学的这个买相关的东西,好吧,我们先搂一眼啊。还是老规矩啊,这个回顾过程当中,很快我来说你来答就行了啊,首先这个有一个叫做DB,有一个叫DBMS,还有一个叫什么呀,Circle,这三者之间的关系是什么?DBMS是数据库管理系统去执行SQL语句来操作数据库当中的数据,DB是不是?哎,三者关系要知道每一个。诶代表什么含义,比如说DBMS数据库管理系统,DB是数据库,Circle是结构化查询语言,是一个标准啊。
01:05
那么这块呢,咱们再回顾一下,表这种东西在我们买SQL或者在我们数据库当中,它是一种是以什么形式存在呢?就是表是个什么东西呢?表实际上它是我们数据库当中组织数据最基本的什么一个存储单元,数据都是存储在表当中呢?目的是什么呢?就是可读性怎么着啊,比较强,它这个表呢,有行和列行呢被称为什么?记录数据列能被称为什么字段?每一个字段包括什么属性?每个字段有字段的名字。类字段的数据类型和字段的相关约束是吧?哎,然后呢,我们SQL语句分类就是这个SQL这块啊,特别的多特别的多啊,那SQL语句分类这块分什么呢?比如说像查询语句叫什么DQ,对表中数据增删改是什么DML,对表结构的增删改是什么DDL。
02:05
呃,事物控制语言是哪个TCL?数据控制语言是哪个dcr一共是五大类,五大类了解了解啊,那么导入数据的话,咱们使用的是哪个命令,还记得吗?就是有一个什么circle脚本还记得吧?Source,我们可以把这个直接给它导入到我们的数据库当中啊呃,获得表结构的话,用哪个命令表结构,DEC后面跟什么表名,是不是就可以查看这个表的表结构啊,查看MY的版本是怎么看。登录MYSQL之后呢?执行select version括号,了解内容,创建数据库,怎么创建database后面跟数据库的名字是删除数据库怎么删?
03:02
Drop上数据库的名字啊,然后呢,查看当前使用的数据库怎么查看。比如。查看当前使用的数据库select database括号。就查看一下你当前正在用的是哪个数据库吗?是不是终止一条语句是哪个。退出是哪个?Exit。啊。有的同学老师我退我杠C,有的时候不好使。我这个退出有的时候也也退不出去,咋整CTRLC。Control c啊。你好比就是说你在这里有个ping命令,PING100度。P100度呢,你一直P是吧,哎一直P你想停下来,你不让他P了。
04:02
CTRLC。各位啊,CTRL加C键强行终止啊,了解一下。那再往下呢,其实就是我们,哎这些东西啊,Show database。查看当前有哪些数据库吧,Use使用数据库database。查看当前的数据库吧,Show tables。查看有哪些表吧,哎,然后呢,S database呀。看表就时个么啊,那简单查询这块字。
05:00
是不是好?那我问大家SQL语句以什么结尾?警官。搜狗语句区分大小写吗?不区分是吧,好。这里有个小细节,我插一嘴啊。思考语句是不区分大小写,但是对于表中的数据,大写的史密斯跟小写的史密斯是一回事吗?不是啊,表中大写史密斯就是大写,小写史密斯就是小写,这个跟买so狗没关系,史密斯是存储的这张表中的具体数据吧,那我问你,具体数据这种东西,大写跟小写是不是还是有区别?大A跟小A是有区别的。这跟词后语句有关系吗?没关系啊,我说的这是表中存储的什么数据,各位?啊,数据尤其在Oracle,你们没有试过Oracle,你们试过Oracle的话,你这个语句根本就查不出结果啊,在from b,对是等于什么史密斯明白吗?这个根本就查不出任何记录在Oracle当中,各位,因为底层数据库里边有这个小写的史密斯吗?没有史密斯是什么大写的,你就必须得写大写在Oracle里边,你懂的啊,你写小写在买S库里边没事。
06:18
所以说买还是什么语法松散的。不严格你懂吧,就买sole和Oracle相比来说还是买so的语法是不是很严格,Oracle的语法是相当严格的啊,相当严格的,我提前跟你说过各位啊,这个地方你在Oracle里面就必须得怎么写这么写才行。因为你写小写的史密斯,Oracle会认为你数据库里边没有小写的史密斯。你懂吧,哎,呃,注意将来你在面试的时候,如果说面试官问你这个Oracle和买思有什么区别,你就可以这么简单说一句,啊,这个Oracle这块啊,这个语法更严格一些啊,MYSO的语法更松散一些啊,不是很严格,你就提这么一嘴就行了啊,提这么一嘴就可以了,就你就可以说说最近这这段时间我一直用的是买circle。
07:08
你可以简单说一下是不是啊,Oracle这块,哎有一段时间没用了,你可以这样说,明白我说的意思吧,哎,可以这样说,对啊,就是这要得得知道啊,得知道行了,那刚才说到什么呢?就是说我们这个区分大小写这个事,但是我问大家在Oracle里边select和select有区别吗?在Oracle里边没有啊,思考语句是不区分什么大小写的,对于表中的记录,它是区分大小写的,各位啊,是大写就是大写,是小写就是小写啊,这个不能含糊的啊,所以说Oracle呢,它比较严格一些,买字会比较松散一些,查询多个字段用什么隔开逗号,查询所有用哪个星是吧,好起别名怎么起S不间字S能不能省,起的别名有中文怎么办?单引号在词后,语句当中字符串用什么起来。
08:05
一定要记住啊,字符串用单引号括起来,字符串用单引号括起来,各位。啊好,那再往下呢,我们看一看啊,这个条件查询等号是等量关系吧,这是什么意思啊,不等呗,对不对,诶这是不等来这是什么意思啊,小于这个呢,小于等于来大点啊来,那这个呢是大于大于等于嘛,好比between and这个是怎么回事,给我们描述描述。表示一个什么区间,对不对,诶区间好,比特and有什么要求没有,左小右大,诶比特and除了应用在数字方面,字符方面行不行啊,也可以的啊也可以的,这个是这个是B区间,各位啊,我说是数字方面它是B区间,它不是开区间,是闭区间,Between and,它等同于谁大于等于and小于等于。
09:00
你要懂这个转换啊,意思now是什么呢?就是说这个我想说的是判断这个为空不为空,不能用等号,在Java中也许可以,但是在SQ语句方便判断,为空不为空就是is now,不为空就是is not now is not now明白and是什么意思,并且or是什么意思,或者and和R2个联合起来,哪个优先级比较高,And比较高,想让二先执行怎么办?加小括号,加小括号是不是好?In是什么意思啊?是在某个区间吗?In是在某个区间吗?不是吧,In是括号后面跟的是具体的值吧?哎,好,In可以换成or吗?In是不是or的一种等同写法呀?哎,Not in什么意思?不在这几个里边,In是在这几个值里边,Like什么意思啊?模糊查询。
10:00
摆放什么意思?任意多个字符下划线什么意思?任意一个字符,如果要用哪个斜杠,还记得吧,斜杠啊好。条件查询排序这一块,我问大家它默认是升序还是降序,默认是升序是吧?好,我怎么指定降序排。最后边加一个de怎么指定区排啊,加一个什么A是不是好一个字段会排不俩字段是什么意思?按照两个字段,比如说按照A字段逗号B字段两个字段排序是什么意思?你给我解释原理,先按照A字段排序,如果A字段排的时候,A区分不出来谁先谁后,也就是相等吧,哎,再按照什么B字段排,越靠前的字段起越起到主导的作用,越靠后的字段它可能起的作用就越小。
11:06
明白,哎,排序这块啊,排序这块咱们说了之后呢,再往下就是组合了,组合。这个叫这个这个这个这个叫什么分组函数是吧?好请他学们告诉我分组函数count是干啥计数sum干啥呢?Max呢,Mean呢?好,请告诉我分组函数有什么特色,有什么特点。不能用在哪对啊,你上来应该告诉我这个信啊,就是说这个分组函数上来你就告诉我,它不能直接出现在where后面。当时我怎么解释的?是说分组函数啊,一般和group by是连用的分组函数,分组函数是group by是分组吗?Where的执行是在group by之前执行,所以where那块还没分组。
12:05
没分组您去哪用分组函数对吧,你就用不了,用不了了,但是当时我也说过,如果一个语句没有这个group by的话,它会表当中所有的数据自成一组啊。是是不是提过这个事儿,哎,提过这个事儿啊,分组函数好,分组函数还有一个语法机制叫自动忽略,那这个事得记着啊,自动忽略那不需要我们手动的去除外。是这样吗?哎,分组函数好了,那么分组函数这几个函数能不能组合起来用可以用啊,来分组查询这块,我问你能不能按照一个字段分组,能不能按照两个字段联合分组啊,都可以,三个字段,四个字段,五个字段都可以联合起来分组的各位啊,但是这里讲了个非常重要的语法机制,是说如果一条语句有这个group by的话,Select,它后边只能跟什么?
13:00
对,你得记得这个啊,如果一个语句有这个group的话,你后边只能跟这个参加分组的这些字段,以及分组函数,别的都跟不了。我说了这个在Oracle里面,你要跟别的字段就报错了,语法严格,你再买SQL里边怎么弄啊,你你你可以,但出来结果没有意义,但查出结果没有意义。咱们上节课不也是了吗?啊,最后一个其实就是having了,Having这块呢,我想说的是能用where,尽量用where having啊,它的用法实际上是对你分完组之后的数据不满意的话,你再进行过滤,而且hi不能单独用,各位啊,不能单独用,你必须出现bag的时候hi才能用啊,Go和having是兄弟俩,他俩呢是不会分开的,各位永远不分开啊,永远不分开就是不见having是不能用的,你不能说以后我们外就不写了啊,我们直接from,后边直接写having。不行,没有这个语法,没有这个语法啊,Having的出现就是为了服务,谁为go服务啊,就是这个意思,行了,那其实我们上节课啊,我们也就是说我们这个买思这讲了一天了,那select语句总结这一块,我觉得大家得好好把它总结,总结啊是先from,然后经过外条件一个过滤,过滤之后呢,诶剩下的数据干什么?分组,分完组之后你不满意再干什么呀,过滤,过滤之后呢,你可以查,查出来之后,最后排序输出是这样的啊。
14:31
排序输出我刚才给你讲的这个语法呀,是很严格的一个语法机制,是在哪Oracle当中的执行顺序,听懂了吗?就一般你的搜QL语句写的是符合Oracle的语法机制的,你在my sole里边一般就怎么着就能用,但是你在MYS里边写的SL语句,你能Oracle里边就不一定能用,我跟你我这么你说有同学老师咱们为什么这么清楚这个Oracle这块的东西,我说一下咱们动力节点在2016年之前只讲Oracle,不讲买circlele的。
15:06
不,现在不讲Oracle了,因为我们主要进互联网公司,互联网公司用Oracle的太少了,几乎没有。啊,你要想看视频,我可以分享你视频啊,有Oracle相关的视频,有2LE关的视频哥啊,咱们那个那个video里边有没有没有吗。我可以给你分享一个可以给你分享。行了,这个呢,咱们先回顾到这,先回顾到这啊。还行吗?就整个这个买的第一天讲解的内容还行吧,因为他还没有涉及到多表呢啊是单表呢,比较简单啊比较简单,但这个也得下工夫,你看有些同学上来写的时候,就就可能是他在私下里写,他会他上来一写一紧张,手一哆嗦,然后呢就不会写了。那就思路有点混乱啊,思路有点混乱。
我来说两句