00:00
是今天中午的这个学习,今天中午呢,咱们主要是给了给大家来解介绍一下啊CQ的相关的知识,那么CQ呢,就是咱们的结构化的查询语言,通过使用CQL呢,能够查询存储在关系型数据库当中的知识啊,关系型数据库当中怎么数据啊,因此呢,咱们希望通过今天中午的学习,能够让大家对CQ呢,能够有一个进一步的了解,并且呢,CQ它是咱们后续学习关系型数据库,或者说是学习大数据技术呢,非常重要的一个什么基础的一个知识,因为呢,我们在这个关系型的数据库当中。不管是你的Oracle也好,MYSQL也好,那么只要是关系型数据库,它都支持我们的SQL,那同时呢,我们在整个的大数据体系里面。比如说你在这个哈多里面,或者说在10SPARK里面等等这些里面呢,它都提供了这种什么呢?数据分析引擎,那么通过使用大数据的什么呢?数据分析引擎,它就能够使用这个标准的什么呢?C口L语dream来去分析和处理我们的大数据,因此呢,学习好CQ是咱们后续学习数据库,包括呢,学习大数据呢,非常重要的一个什么基础的知识,那大家哈之前哈听过赵老师的课程呢,应该都知道哈,赵老师呢,在上课的这个过程当中,会给大家记录一个课堂的一个笔记,那么通过记录课堂笔记的这的这种方式,我们会把课程里面呢,比较重要的知识给大家记录下来,因此呢,今天中午呢,咱们也会按照同样的这种方式来给大家记录一个课堂笔记,重点给大家介绍一下三个方面的知识。
01:54
首先第一个部分C口的基础知识,那那这个里面首先咱们就需要知道哈,到底什么是啊,什么是什么是啊,什么是我们的C口,那么了解到CQ的什么基本的概念以后呢?好,咱们还需要去了解一下CQL的什么类型,那么我们可以把整个的CQL语言一共划分成是四种不同的类型,那么这四种类型。
02:18
分别是什么?稍后呢,咱们来给大家进行一个详细的介绍,那么后续咱们在使用CL的时候,重点的部分呢,就是使用CQL的什么查询语,通过CQL查询语句select select呢,我们能够去查询数据库当中数据,那么这个地方呢,首先咱们就需要给他讲一讲最基本的什么呢?查询语句,如何使用我们的s letter查询表中的数据,当然我们以后呢,在实际工作当中写一条CQL查询的时候不可能这么简单,那么咱们用的比较多的是什么呢?是我们的这个多表查询,还有我们的把只查询,那么多表查询和只查询呢,是后续我们在书写C口L查询的时候,书写最多的两种查询语句,那么咱么稍后呢,也会来给大家进行相关的介绍,那么这一个部分那么着重呢?会使用什么?会使用我们的orcom。
03:19
数据库来给大家演示,那么这个地方既然提到了Oracle呢,顺便提一下大家后续如果要系统全面的去学习有关数据库的知识。那么赵老师呢,强烈建议大家一定从Oracle开始学习,因为呢,Oracle是所有数据库当中功能最强大,结构最复杂的一个,当你把Oracle掌握以后,我们再去学习其他的数据库,那么就会以比较简单和容易,因此呢,咱们稍后呢,在讲CQL查询的这个部分呢,将会使用到咱们的Oracle的什么数据库,他刚刚提到,那么除了我们在这个关系型的数据库当中可以使用C口L语句以外,那么我们在大数据体系里面呢,也能够使用咱们的CQL语句,那去处理我们的大数据,那因为我们在整个的大数据体系里面呢,它提供了什么呢?各种各样的什么呢?数据分析引擎,后续大家。
04:22
比如说你在大数据体系里面呢,看到了什么呢?数据分析引擎这六个字,那么咱们就应该反应过来,它是支持CQ语句的,好顺便就问一下各位直播间同学,那么你能不能够告诉一下赵老师,我们在大数据体系当中提供了哪些大数据的数据分析引擎,你能够把这些数据分析引擎的名字发送到咱们的公屏之上吗?好,如果说大家都清楚呢?就请积极回答一下赵老师的问题,如果说大家不是很了解,就请在我们的公屏之上回复一个0,或者给赵老师呢点个赞,那么这些知识都是咱们后续呢需要系统学习的内容,好,我把整个大数据体系里面提供的一些主要的什么呢?数据分析引擎。
05:22
给大家写在这这个地方,比如说我们在哈杜普当中的什么have,包括我们在斯SPA克里面的么斯SPA克com,包括我们在flink当中么flinkcom,还有我们的什么pstal等等,那么这一些都是属于大数据的什么数据分析引擎,它支持使用标准的什么CQL与dream来去处理我们的大数据,稍后呢,咱们会结合实验环境来给大家进行demod生,好因此呢,咱们介绍到这个地方的时候,赵老师呢,就带着大家去梳理一下,我们在今天中午呢,将会学习到哪些知识呢?好,咱们现在咱们就按照这样的一个顺序呢,来给大家进行相关的介绍,首先咱们看一下第一个问题,什么是CQ,好,各位直播间同学,你能不能够把CQ的最基本的定义,或者说他的。
06:22
全称发送到咱们的公屏之上,好,如果说大家知道,那么就请积极回答一下赵老师的问题,如果说大家不是很了解。就请在公屏之上回复一个0,或者给赵老师呢点个赞啊好,感谢咱们的无所事事同学,那么结构化查询语言好这个地方你们写一下,首先咱们需要知道啊,Secret的什么,它的这个全称是什么,那么它的全称是我们的嘛,Structure的什么que language, 那么这个呢,你如果说把它翻译成是中文的话呢,它就是刚刚这个同学说的啊,就是我们的什么结构化查询语言,那么换句话去说,通过使用CQ的什么结构化查询语言好,咱们只能够去处理什么结构化的数据,那么什么又叫做结构化数据呢?结构化数据它就表示我们能够使用一张什么二维表的行和列的这种方式表示的数据,那么就是我们的结构化数据。
07:34
那么在你的什么呢?在你的这个关系型数据库当中啊,咱么写几个,那比如说在你的这个关系型的数据库里面,比如说刚刚提到的么,我们的orcom,还有我们的MYC com包P,当然这个里面还可能涉及到各种各种什么国产的数据库,比如说国产的达梦啊,国产的open高斯啊,对太DB啊等等等等这些。
08:00
都是属于传统的这个什么关系型的数据库,那么我们在关系型数据库里面呢,都它的数据存储形式都是这种二维表的行和列,那么咱们呢,就能够使用标准的C口语句来去查询分析这种类型的数据,好这个呢是整个c com那么最基本的一个定义,那么你去反过来去说,那么你通过使用C口语句呢,咱们就不能够去处理纯不能够处理我们的半结构化或者是我们的非结构化数据,好因此讲到这个地方,我们就把整个C课的最基本的定义,基本概念呢,都给大家做了个什么简单的一个介绍,好问一下各位同学,这个部分应该都听明白了吗?很简单,对不啊,如果大家这个部分都听明白了呢,请在公屏之上啊,请给赵老师呢回复一个1,或者给赵老师呢点个赞。
09:01
让赵老师呢,能够了解到大家都还能够跟得上赵老师的节奏啊,好,了解到了什么最基本的概念以后。接着呢,咱们就讨论一下我们的第二个问题,CQ的类型,好问一下各位直播间同学,你能够告诉一下赵老师呢,我们可以把CQL语言划分成是哪几种不同的类型,你能够把这几种类型的名字发送到咱们的公屏之上吗?尽管咱们讲CQL语Jim看似非常简单,但是呢,我们在使用CQ的时候还是有很多的细节,那需要大家去注意啊,所以好,咱们讲C口呢CQL语言啊,咱们一共呢,可以划分成是四种不同的类型,那么这四种不同类型里面呢,它都包含了哪些语句,这个呢,是我们在学习之前都需要重点了解的什么知识,先把这四种类型的名字先给大家写在咱们的课堂的什么笔记上啊,首先给我们讲C。
10:11
么第一种类型叫做我们嘛DQL语句,好,接着写它的什么D2种类型叫做咱们DML语句,然而它的第三种类型是我们的DDL语句,它的第4种类型是我们的嘛DCLGM,那么因此呢,我们可以把整个的C口L语言一共划分成是这四种不同的类型,对,那么咱们接下来呢,就需要详细的去讨论一下,在这四种类型里面。它们各自包含哪些语句好?首先咱们看一下我们的第一种类型,就是我们的DQL语句,那么它的全称是什么呢?大家需要知道一下,让就是我们呢daytime,我们的这个chn language好,如果呢,你把这个呢翻译成是我们的中文的话,它就叫做数据查询语言,通过数据查询语言当然就能够去查询表中的数据,它重点指的就是我们的什么select操作,那那么后续我们在书写CQ的时候,绝大部分情况都是使用什么DQLGM,通过查询语言查询表中的数据。
11:31
而咱们稍后呢,重点也会给大家讲如何使用查询语句查询表中的数据,好了解到了第一种类型以后,再来看一下我们的D2种类型,叫做DML已经那这个地方呢,全称大家呢还需要去了解一下,那它就叫做我们嘛,Datatime many什么PU我们的language,好,如果呢,咱们把这个呢翻译成是我们的中文的话,它就叫做我们的了数据操作语言好问一下各位直播间同学,我们在DML里面呢,包含哪几个操作,你能够把这几个操作发送到咱们的公屏之上吗?嗯,好,如果说大家都知道呢啊,就请积极回答一下赵老师的问题啊,如果说大家不了解,就请在公屏之上回复一个0,或者给赵老师呢点个赞DML里面。
12:31
那包含哪几个操作的?好了,我们讲我们在DML里面呢,主要包含我们的什么插入,我们的更新,还有我们的什么删除操作,好这三个操作共同组成了我们的DML,同时呢,它也组成了我们什么事物,那么怎么讲事物的这个transaction是我们在关系型数据库里面呢,非常重要的一个特征,那么目前你的这个low c com还不能够取代关系型数据库呢,很重要的一个原因就在于我们的这个low c口数据库呢,还不能够严格的去支持事物的acid属性,那么关于事物的更加系统的支持,赵老师呢,会在后续的直播课里面呢,单独的跟大大家进行介绍,对好,咱们今天中午呢中着重的讲我们的C课的这个部分,对好,咱们讲。
13:31
事物里面它包含我们啊,插入更新和删除,那么反过来就是说我们在事物里面呢,并不包含我们的查询语句,对好这一个地方,既然提到了我们的事物,简单的问大家一个问题,那么大家能不能跟告诉一下赵老师呢?那你在关系型数据库当中,不管是Oracle里面,MYSQ里面都是一样的呢?提交事物的本质是什么?那么当你执行一个commit的操作失误,提交成功以后,到底什么叫做提交成功,它它的本质是什么?那如果说大家知道它的本质,能不能够告诉一下赵老师啊,如果说大家不了解,那就请在公屏之上,请给赵老师呢回复一个0,或者给赵老师呢点个赞,好,这些涉及到。
14:31
数据库系统原理,更加深入的知识,当然了,赵老师呢,也会在后续的直播课里面。单独的来给大家进行相关的介绍,对,好接着讨论一下我们的c code的第三种的类型叫做我们的什么DDL语句,那么首先大家需要知道它的这个什么呢?它的这个全称哈,那么它的全称叫做我们的么?Datatime, 我们嘛,Different language, 好,如果呢,你把这个呢,翻译成是我们的中文的话,它就叫做我们的数据定义语言,那通过使用什么DDL的数据定义言,我们能够据操作和管理我们的数据库的对象,那么什么又叫数据库的对象呢?你在数据库里面,你操作的都是数据库的对象,比如说有我们的什么,我们的表,我们的视图,我们的索引,包括我们的么存储过程。
15:39
存储函数,助发器等等,那比如说你要去创建一张表,我要去创建一个什么存储过程,修改一个视图等等这些操作,数据库对象的语言都是属于我们的DDL语句,对,好,这呢是我们CQ的第三种的类型,好接着去讨论一下。
16:04
C口者什么第4种类型叫做我们的DCL语句,那么什么又叫DCL呢?大家需要知道一下它的全称,它叫做我们的嘛datatime,我们的control language, 好如果呢,把这个呢,也翻译成是中文的话,就叫做什么数据控制语言,那么最典型的两个DCL语句呢,一个是我们的这个什么光腿语句,一个是我们的revol dream, 好问一下各位直播间同学,你能不能够告诉一下赵老师这个地方的光腿dream和我们的revol dream, 那么它的功能和作用分别是什么?好跟刚刚也是一样的,那么如果说大家都知道呢,就请积极回答一下赵老师的问题,如果说大家不了解,那么就请在我们的公屏之上回复一个0。
17:04
或者给赵老师呢点个赞,那好,因此咱们介绍到这个地方的时候呢,那么赵老师呢,就把整个我们在学习CQ之前需要大家了解的什么呢,这些基本的知识都给大家做了个什么详细的一个介绍,那尽管这些基础的知识非常的简单,但是呢,赵老师认为越是基础的知识,那么越是重要,那么如果说大家认同赵老师的观点,就请给赵老师呢回复一个1,或者给赵老师呢点个赞,那好了,这样的一些基础的知识以后。通过刚刚的这个讲解,对,好,咱们提到了,对,我们在书写C口的时候,对最重要的就是书写它的什么查询语句,那么通过使用查询语句,咱们去查询表中的数据,对,那因此呢,咱们首先就需要知道一下整个查询语句select,它的最基本的一个语法格式,它会是一个什么样子的,好给大家看看什么语法呢?好,大家现在看到的什么呢?这个语法格式就是查询语言的最基本的这个语法格式,通过使用什么呢?我们的关键字,我们的from指定你想从哪张表当中查询数据,对不对?前面的关键字S是指定的是查询表中的哪些字段,那这个地方的星号代表表中所有的列,对你也可以指定具体的什么呢?
18:45
啊,列名表达式,或者是列表达式的这个什么别名,那通过使用这个第distinct关键字好,咱们呢,给以去除表当中重复的数据,好了解到了什么呢?查询语句的最基本的一个语法格式以后现在呢,咱们通过具体的什么DEMO的引是看一下如何使用这个查询语句,咱们去查询表中的数据,好切换到咱们的实验环境当中去,那么刚刚提到赵老师呢,在这个地方用到的数据库说一下是我们的什么呢?Or数据库对把刚刚的那句话要重复一遍,如果说大家后续你要系统全面的去学习有关这个有关数据库的知识,不管你是学习or是学习关系型数据库也好,还是学。
19:45
A行no c课,只要你想学习数据库的话,赵老师呢,都强烈建议大家一定从我们的or com开始学起,因为呢,Orac code是所有的数据库的这当中功能最强大,结构最复杂的一个,那么换句话就是说,如果说你把这个or掌握以后呢,你再去学习其他的数据库呢,当然就会非常简单和容易的,好,咱们进入到咱们Oracle的环境当中去,好直接把我们直接执行一下命令,这c plus的斜线啊,什么CDV好直接使用咱们管理员用户呢,连接登录上来,好,当你连接登录上来以后呢,你看到的这句话,它被打印输出,好我们连接到了一个什么空闲的实例上,那这句话表示什么意思呢?表示当前的or。
20:45
Le数据库实令啊,Oracle数据库什么实令,它没有启动,对那什么又叫实令呢?那么我们在数据库里面,不管是关系型数据库还是NOC库数据库呢,都是通过实例来去操作存储在数据库当中的数据,对好这些知识呢,当然当然赵老师也会在后续给大家介绍什么啊,介绍这个or介绍MYQ的时候,那么再来给大家进行更加系统的说明,对好,既然你没有启动好,咱们直接的去执行条命令,叫startup,启动数据库实例,启动数据库实例以后,我们呢,就能够通过实令去操作存储在数据库等数据,执行一个最基本的一个什么查询语句,比如说我们能够去查询我们的员工表,对好,那么这个地方清一下屏清完。
21:46
以后呢,切换到一个什么普通的用户上面,好这个用户上面呢,有我们的员工表,有我们的部门表,首先咱们通过一条查询语句查询员工表当中的所有的员工的数据,对好咱们可以执行什么一个s select版我们的新方,我们的tab,那这句话表示什么含义呢?这句话它表示我们在Oracle里面的查询当前用户下面的表,或者说是视图,那么通过输出的什么信息?
22:21
好,咱们会发现呢,这下面呢,有很多的表,对其中有一张表是我们的dept表,就是我们的部门表,还有一张表是ERP表,它是我们的员工表,对现在呢,咱们通过一条最简单的查询语句查询员工表这个数据,这个里面呢,一共包含有什么14条员工数据3吗?我们的新号发我们的应聘,那星号代表什么呢?代表表中所有的列,那那通过查询语境啊,咱们看到呢,这个里面一共包含有什么14个员工的数据,每一个员工他包含有8个列,好这个地方换行显示的,对好咱们可以调整一下列的什么这个宽度,让它显示的好看一点点,对好重新去执行一下它这个里面一共包含有什么14个员共每个呢他。
23:22
它里面有8个列的,简单解释一下这8个列的什么?基本的含义是什么?首先我们的第一个列叫EP number代表员工的员工汉,第二个呢,E代表员工的名字,第三个呢,Job代表员工的职位,MGM代表员工的老板号,因为员工的老板也是公司的员工,对,就是员工老板的员工号的hard。是这个员工的什么入职日期,S sal sal, 他什么月薪,Commission, 奖金,最后一个地单是D金,最后一个地单是the department number, 员工所在的部门号,很明显呢,员工所在的部门号,他跟部门表应该是一个外界约束的一个什么关系,因此呢,通过使用这样的一条非常简单的查询语句,那么咱们就查询出来什么员工表当中所有的数据,对,当然你在查询的时候,你也可以指定你想具体查询哪些具体的列,对,比如说我只想询查询员工的姓名和他的薪水,我只查询这一两个列是不是也可以啊,对不对啊,也是发我们的EP表啊,通过输出信息,好,咱们看到有员工的名字,包括他的什么薪水,对这个地方呢,他还进行了什么,进行了我们。
24:53
我们的分页显示,你能够把这两页呢,显示在一页上,就写一个什么,写它们拍成size,设置页面大小呢,每页呢显示20条记录右斜线表示执行上一条执行过的C口L语句,那通过使用这种方式呢,就14条员工数据,那么就显示在什么一页上面的,这当然我们还可以在。
25:21
刚刚的问题之上,我们可以去进一步,那你在查询的时候不是还支持我们的表达式吗?对,比如说我想去查询什么签下品卡店,我想去查询员工的姓名,还有他的什么这个薪水,后面呢,我增加一个店代表员工的年薪,如果一年他是发12个月的薪水,那么月薪乘以12是不是就是零薪,因为我们在CQ语句当中支持使用算数表达式,加减乘除都是可以的啊,那好,薪水乘以12米放我们的什么这个圆工表,那通过使用这种方式,我所得到的第三个量就剩这些员工他的什么呢?年薪,年薪等于什么呢?月薪乘以12,那么我们在刚刚的。
26:21
这个问题之上,我们能不能够再去进一步呢?比如说我再来协调查询已经,我要去查询什么月薪,查询员工的什么名字,他的月薪,他的奖金包括什么,他的什么年薪,最后一个呢,我再增加一个字段,我要去查询他的年收入,年收入。等于什么呢?等于我们的年薪加上奖金啊,加上奖金血薪乘以12是我们的年薪加上奖金,那通过从这种方式我是不是就能够得到他的年收入,好这个地方呢?赵老师就需要问大家一个问题,现在的这条CQL语句,那么能不能够得到正确的年收入,如果说大家觉得可以得到,那么就请给赵老师呢回复一个1,如果说大家觉得。
27:22
嗯。不能够得到,那么就请给赵老师呢回复一个0,那这些看似非常简单的问题都是我们在书写C口的时候需要大家重点关注的一个地方,好,张老师呢,简单重复一下刚刚的这个问题啊,通过现在的这条,嗯。通过现在的这条查询语句,我们能不能够得到正确的这个年收入,如果说大家觉得可以得到,那么就请在我们的公平之上呢,回复一个1,如果说大家觉得不能够得到,那就请在我们的公平之上回复一个0,对好,咱们直接的去执行下这套C口语句,那么不就可以了吗?对,好,通过执行这条C口语句,那么你得到了什么?下面输出的这个结果,那通过观察这个结果,大家可能会发现,对,因为所有的这个员工他都是有什么呢?都是有月薪的,但是为什么有些员工的这个年收入它是空子呢?因此呢,你很明显呢,你所得到的结果它是一个。
28:47
不正确的一个结果,对,那么通过这个地方的观察,大家会发现年收入。为空的这些员工,那么他的奖金都为什么空职,那么一旦遇到了什么这个空职问题,大家需要非常的什么这个注意啊,这因为空中有可能会造成最后的结果的不正确,我把这个需要大家注意的问题给大家写在咱们的课堂的什么笔记上,哪个问题呢?就是在C口语句当中啊,咱们在C空语句中不包含什么呢?空值啊,前面写包含空值的什么表达都是空值,那这句话请直播间的各位同学们一定一定要记住啊,那么我们在C空语句当中真删改查都是一样的呢,包含空值的表达式都是空值,对,因此呢,大家后续你在书写C口的时候,一旦遇到。
29:54
了空制,那需要非常的什么小心,因为呢,它有可能会造成结果的,这个不正确,但是呢,我们这个地方呢,就需要有一种方式。
30:06
把你的这个什么空值转换成是我们想要的一个值,对,通过使用我们的这个什么率空函数,你就可以把空值转换成是一个想要的值,比如刚刚咱们的这个示力呢,会发现讲经为空,实际上是代表奖金为0的,因此呢,我们在rac空里面,包括你在其他数据库当中都是一样的,我们就能够通过使用率空函数把空值转换成是一个想要的值,咱们这个地方呢,想要的是0对不对?好像们直接在命令行上敲一个什么ED命令,它会把上一条的什么C口L语句放到系统的默认的编辑器当中,好,咱们这个地方默认编辑器是我们的Linux嘛,VI的好,放到VI里面来看,我们就能够去修改咱们的。
31:06
A, 口语绝对加上一个什么滤空函数NV啊,不对,它NV也要表示什么含义呢?怎么写一下我们的么?我们的我们的N为啊对,它表示当这个值为空的时候,返回后面的0,如果这值不为空呢,返回这个值的本身,因此呢,通过使用什么这样的一种方式,我就把奖金为空都转换成了奖金为0 0是一个数字。它不是一个什么呢?不是一个控制,通过使用这样的一种方式,我就能够得到正确的结果呢,好怎么这个地方咱们这样保存退出修改完以后呢,敲一个右斜线,执行上一条CQL语句,对那通过使用这样的一种方式,我所得到的所有的员工的年收入都是一个正确的值,对好因此讲到这个地方的时候呢,我们就把整个CQ当中最基本的什么呢,查询语言如何去使用,那都给大家做了什么,做了一个非常详细的一个什么DEMO的演示,好这地方赵老师呢,就需要顺便问大家一下,那关于刚刚演示的DEMO的事令,大家是不是也都看明白了哈,如果说大家都看明白了呢,那就请在我们的公屏之上。
32:38
请给赵老师呢回复一个音,或者给赵老师呢点一个赞啊好,咱们接着往下来给大家进行相关的介绍,当然哈,当然咱们后续你在书写这个CQ的时候,不可能像咱们刚刚这么简单,不可能只去查询一张表中数据,对,好比如说我们要去查询我们的员工表,包括我们的部门表,你要去查询员工表和部门表的话,至少就需要去查询两张表,因此呢,你通过使用多表查询语句能够查询多张表的数据,通过只查询能够去解决什么问题呢?解决查询语句的什么嵌套问题,对不?当然然这个地方重点以我们的什么呢?重点我们的这个多表查询来给大家进行相关的这个什么这这个介。
33:38
这刚刚提到通过使用什么呢?多表查询能够去查询多张表中的数据,那么那么咱们在讲这个什么呢?在讲这个多表查询之前,首先要来给大家介绍个什么,介绍一个数学上的概念,叫做我们的什么写下卡叫做我们的这个迪卡尔基,它叫迪卡尔基的好迪卡基,它是我们多表查询在数学上面的一个理论的一个基础,对,正因为有了抵抗基。
34:14
才会有我们的这个多表的查询,对,那么既然它是多表啊查询,那么它在数学上面的一个基础么?我们在数学上面针对笛卡尔级呢,有一个非常严谨的一个数学的一个定义,好这个地方呢,我们不讲那个定in,赵老师呢想要通过一个设定来讲,到底什么是笛卡尔级的好这个地方呢,赵老师们准备好了两张表,分别是我们的员工表和我们的部门表的,他员工表里面它有什么呢?它有我们的。这个三行四列数据部门表里面呢,它有两行两列数据,那这两张表他们要执行多表查询的话,首先会产生笛卡级啊笛抗基通过什么方式表示出来呢?通过咱们这个什么乘号称表示,好我们写一下,我们写上我们的员工表啊,我们的员工表乘上我们的部门表,表示这两张表的抵抗尔集,它也将会是一个大的一个集合,也会是由行和列组成,好这个地方赵老师呢,就需要问大家一下,大家能不能够。
35:37
告诉一下赵老师,那么这两张表们所生成的笛卡尔节目,它们将会有多少行,将会有多少列?先说我们的列数,对员工表里面呢有4列,部门表里面呢,一共有两列,那么它们所生成的抵抗尔杰将会有6个列,那列数等于每张表的列数相加,那么哪6列呢?员工表的这四列首先组成迪卡级的什么前四列,部门表的这两列它组成笛卡级的什么后两列,那好,咱们列数这地方确定一下来以后,再来确定一下它的什么行数,行数员工表当中一共有三行数据,部门表里面呢,一共有两行数据,那这一。
36:38
这两张表他们所得到的抵抗性将会有什么呢?将会有6行数据,那六行呢,员工表的第三行的数据先跟我们的部门表的10号部门的第一条记录组合,生成迪卡级当中的前三条数据,那么按照同样的这种方式呢?那员工表中的什么这三条数据,它跟部门表中的第二条记录20号部门组合生成后三条记录,因此呢,咱们通过使用我们的什么这个行数相加列数啊,我们通过列数相加,行数相乘,那么如果你有三张表,那你有四张表也是按照同样的这种方式对那列数相加,行数相乘,我们得到的。
37:38
这个大的集合就叫做多表查询的笛卡尔集,但是呢,请大家注意一下,那么我们在笛卡尔集当中,你所得到的集合里面不一定每条数据都是正确的,那么换句话去说,我们在笛卡尔集当中可能会包含一些不正确的数据,很们简单是呢,来分析一下,比如说咱们看一下我们的第一条记录张三,那张三他从黄色这边看,他是我们的什么呢?10号部门的,那他从蓝色这边看呢,它也是10号部门的,对这两个什么部门号它是相等的,因此呢,这条迪卡尔其的记录呢,它就是一条正确的记录。好再看一下我们的第二条记录李四,那么李顺他的黄色这边看,它是20部。
38:38
门的,那他从蓝色这边看呢,它是10号部门的,很明显这一两个部门哈,它是不是就矛盾了,因此重复变,我们所得到的笛卡尔基里不一定每条数据都是正确的,笛卡尔金里面有可能会包含一些不正确的数据,而我们要执行的什么呢?我们要执行的这个多表查询,就是通过指定一些条件,从这个什么呢。
39:10
从这个笛卡尔全集啊,那么这个呢,就是我们笛卡尔全集,从笛卡尔全集全集当中选出一些正确的数据来满足咱们的这个要求,那既然是如此的话,那结合那么现在的数据来说,大家看一下,那只要满足一个什么样的一个条件,那这一条数据就是一条正确的数据呢,对么?这个是不是就很简单,那很明显就应该是我们的什么呢?黄色这一边的部门号和蓝色这边部门号呢,部门号如果相等这一条数据,嗯,那是不是就是正确数据,那如何把它给表示出来呢?他们写到我们的这什么表格的这个旁边好表示出来它这样子啊,就写一下,合并一下单一个,那咱们的什么这个黄色这一边它是员工表它的。
40:10
的部门号等于什么?等于蓝色这边部门表的部门号,那如果说这条件成立的话,这一条数据是不是就是一条正确的数据,好像把这个条件叫做什么,叫做多表查询的什么,这个连接条件的,他们为什么要有连条件呢?有了连接条件以后,好咱们就能够去避免死啊,怎么这样重新写一下这这个地方。可能这个地方他的我在我表格里面想我们写一下我们刚刚的条件好,我们这边是员工表的什么部门号,第一批p number等于什么部门表的吗?部门号好这个条件刚刚说过它们可以叫做什么,把它叫做多表查询的什么这个连接条件,那为什么要有连接条件呢?那有了连接条件以后,我们就能够避免使用迪卡全击,因为在迪卡全集里面呢,包含一些不正确的数据,那注意连接条件它跟这个表的个数,它有一个连,有一个什么对应关系呢?我看一下连接条件至少叫正少有什么N减一个好,连接条件至少有N减一个好,顺便问一下各位直播间同学们能不能够。
41:42
告诉一下赵老师,这个地方的N代表什么含义?你能够把这个地方的N它所代表的含义发送到我们的公屏条件发送到我们的公屏之上吗?连接条件至少有N-1个。
42:01
N代表什么含义?N代表什么?N代表表的个数,如果说你有两张表的话呢,至少就有一个连接条件,那你有三张表呢,至少就有两个连接条件,那通过使用这样的一种方式,我们大概呢,就能够初步判断出来你所写的什么呢?这个多表查询语句是不是一个正确的什么呢?多表查询好有呢,这些基本的知识以后他们通过一跟简单的事例来看一下如何使用多表查询,查询多张表中的数据,好,咱咱们这个给举一个例子啊,对,好,咱们去查询什么,查询员工信息啊,要求显示员工的名称和他所在部门的部名称啊,那么需求呢,显在咱们的这地方,需求咱们就要。
43:01
是这样的,那么的这个问题啊,问题呢,相对来说比较简单一些的,我要去查询什么员工的信心,要求显示什么内容呢?要求显示我们的什么员工的员工的姓名和他所在部门的什么部门名称,那很明显员工姓名呢,我们需要用。查询员工表,而部门名称需要去查询部门表的好,看一下部门表里面数据包含哪些数据,对好们这样清一下屏,对好,现在什么我们的新发我们的部门表,通过查询语句啊,咱们可以发现下部门表里面一共包含4个部门,它有3个列,分别是部门的部门号,部门名称和部门什么location,很明显呢,现在咱们就需要通过执行一条多表查询语据,从这两张表里面呢来获取咱们相关的数据。对好,直接在命令行上敲ED命令,它会把上条C口语句放到系统默认的编辑器当中,但在可以让编辑曲上们去修改的。好现在你要去执行我们的多表查询,那么你在方语句后面呢,就需要写上两张表,我习惯呢,先写我们的方语去。
44:26
员工表和什么部门表中间是逗号分割的,那我习惯上还可以给表呢,起上一个别名,员工表它叫做我们的1表,部门表叫做我们的么D表,按照刚刚说的,你有两张表的话。至少就有一个连接条件,很明显的什么写上咱们的VR对这个连接条件就应该是什么员工所在的部门号等于部门的什么部门号,如果说这个条件成立的话,那这个员工他就属于这个部门的是不是,而且连究条件避免使用抵卡权解,而咱么前面呢,需要去查询呢,前面需要去查询员工的姓名,还有他所在部门的部门名称,他通过使用这么样的一种方式,我就得到了一个什么等值连接的一个多表查询,查询员工表和部门表的,好,那么这个地方保存退出按一个什么右斜线表示,执行上一条C口诀,通过执行上一条C口语径,我就得到了所有员工的名字,包括。
45:47
它所在部门的部门名称,因此啊,就是这个呢,就咱们什么多表查询,对多把多表查询呢,大家首先需要去掌握到底什么是我们的这什么笛卡尔级的,还有从讲到这个地方的时候,嗯。
46:04
赵老师呢,就需要问大家一下,那关于这个多表查询的基本知识大家是不是都听明白了,如果我们刚刚讲的这个多表查询的知识大家都听明白了呢,就请在我们的公屏之上,请给赵老师呢回复一个音,或者给赵老师呢点个赞,让赵老师呢能够知道大家都还能够跟得上赵老师的节奏,对好,关于此查询,赵老师呢会在系统课程里面来给大家去做详细的介绍,对,因此整个查询语句这个部分呢,我们都是使用的是or来给大家进行演示的,因为or呢,它是属于我们的关系型数据库,当然支持我们的C口语句,当然我们在大数据提系里面也支持使用C口语据来去处理我们的大数据,比如说哈多。
47:05
当中的什么have斯Spark当中的斯sparkic fli克当中的么flink,还有我们那什P等等,这些都是属于什么?都是属于大数据的数据分析引擎,对,通过使用大数据的数据分析引擎,我们就能够使用标准的CQ的语句来去分析存储在大数据体系当中什么这种结构化数据,它既能够处理我们的离线数据,也能够处理实时流速数据,好这个地方呢,很简单的给大家也是一个DEMO,对,我们就用什么,就用这个18RK ccle吧,那通过使用什么这个10SPARK CC的方式。你在18课里面,你就能够通过使用标准的C口据,你既能够去处理到存储这样HDFS的数据,要处理离线数据,也能够处理卡夫卡当中,对吧,流市数据,除了进一步去构建你的什么这个离线数仓,包括我们的实时数仓,那关于这个里面大数据的更加系统的知识,那请大家呢,关注一下赵老师呢,后续的这个这个直播也会单独的给大家进行相关的介绍,好我们到我们的18g里面,通过我们的八个ccom执行我们的标准什么C口语句,对好赵老师呢,先去把我们的什么or克呢,先去给什么停止下来,停止下来以后呢,请请动一下我们的么这个10SPARK的这个集群,对啊,下蛋,我们的inmediate通过这条语句能够正常。
48:52
关闭我们的Oracle数据库,那么当当你正常关机的时候,它就会自动触发一个完全检查点呢,把内存中的所有的张数据都写到数据文件上进行持久化,那么这些关于orac code的什么呢?体现架构知识原理的知识呢?赵老师呢,也会在后续给大家讲Oracle的时候,那重点呢,单独的来给大家进行相关介绍,为什么今天中呢,主要是讲CQ,对,那么咱们结合大数据环境来给大家演示一下如何在我们的大数据体系里面执行我们的C口诀,好先去把。
49:36
咱们的orac库呢,先去停止下来,再去把我们的这个10SPA克集群重新给它停下来,通过启动18集群,你就能够执行标准的什C口语句,它会把一条C口语句转换成是一个什么10SPA克Z呢,运行在我们的10SPARK进集群之上,好,我切换到我们的这个入程用户上面来,对,好进入到10SPA克安装的路径下,执行下面什么s do or的脚本,它将会去启动s Spark的主节点,也会启动它的重节点,主节点叫做我们的master,重节点叫做我们的worker,因此它是一种什么架构呢?它是一种我们的主从架构,好,我们在大数据体系里面呢,主要的组件。
50:36
都是一种主从架构,好顺便问大家一下,你能不能跟告诉一下赵老师,这种主存架构,它所存在的最主要问题是什么,如果说大家知道,就把它存在的主要问题呢发送到我们的公屏之上,如果说大家不了解,那么嗯。
51:03
也没有关系,就请在我们的公屏之上,请给赵老师呢回复一个0,或者给赵老师呢点个赞,那我们接着往下来给大家进行相关的介绍,那当你把18个集群启动完以后呢,他给我们提供了一个图形化的工具端口号是我们的嘛,8080的,它通过浏览器防输主机的呢8080端口,我们就能够打开18g呢图形的监控的。页面,通过大家现在看到的这个界面,你能够去监控我们的这个是巴卡机群,如果说你有计算任务啊,运行在斯巴卡提群之上,通过大家现在看到的这个界面,你也能够监控任务的执行的状态,在并且呢,在在这在这个页面的什么最上方,有一个非常重要的地址告诉我们是8个9群主节点在当前主机的什么7077端口之上,主节点负责接受任务请求啊,还有了这些基本知识以后,当你把48个请动完以后呢,他提供那个什么命令行,就是我们的10SPA ccom, 你就能够直接执行我们的C口以及件好演示一下执行,并下面是我们的10SPACOM ccom.
52:37
通过刚刚master的参数主节,主节点在哪里?那么通过刚刚的网页呢,看到主节点就在当前主机的什么local host么707器的什么端口之上,那当你执行一条C口语的时候,它会提交到集群上去运行,并且把这条C口L语句。
53:02
转换成是8g动呢,运行在18个阶之上,既然是如此的话,通过刚刚的那个什么图形化的界面,我们就能够去监控CQ这个任务呢,它的一个运行的一个状态,好这个地方你们稍微等一下的,进来以后首先怎么去执行一个修tables,看一下你在撕八个cyle里面,你事先创建好哪些表,对好我们稍微等一下好进来以后,哎呀controlr了,要清一下屏先我们了吗?就Table的这句话,不是跟你在MYSQL里面是完全一样吗?通过输出的信息好怎么了,这个里面应该事先没有创建任何的表,对稍等一下,那好,现在咱们就能够使用标准嘛,Ccom使用我们的DDL语,我们呢就能够去创建表,表创建成功以。
54:02
供呢,我们能够往里面插,我们能够往里面插入数据,也能够去查询数据,好,这里面有一张表是我们的啊,咱们这个样有一张表叫我们的什么施盾子,好像打出很多日志啊,这些日志呢,不利于咱们去观察这个结果,这样我们退出去重新启动一下,加上一个参数,对加上我们呢,就加上一个杠S参数S呢大写它表示呢,启动是把CQL命令行的呢,静默模式,静默模式就表示呢,不要打印输出日志。这样子呢,能够咱们便于咱们呢去观察输出的结果,你打印日志很多呢,结果呢,就不便于怎么去观察,好们重新进到命令行里来一看,再来去执行我们的修table,你看一下这个里面你事先创建好了哪一些比较基本上跟我们在MYSQL里面操作非常的类似,好这个地方咱们稍微等一会儿,要稍微等一会儿,稍等一会儿啊。
55:11
我们去清一下屏,执行一个行tables,对,好,这下面呢,我们事先创建的哪些表呢,看一下,好,我们之前应该是创建过一张表,那个表呢,叫做我们嘛,这个生。丢词的你所创建的表表度数据既能够存储在本地,也能够存储在HDFS状态,好我们去把这张表呢,去给它什么删除掉,重新去创建一下吧,这个呢就跟你在数据库里面操作几乎是完全一样的,好表删除以后呢,重新咱创建的表使用我们的DDL语句的,好看到我们那个什么table这样是定子表,里面包含三个令,一个是么ID号,它是一个整数,再来一个名字,它是一个字符串,再来一个A,它表示00接它表创建出来以后,我默认直接把保存的本地表创建出来以后,你能够呢往里呢插入数据命,而这一条C口语命,它就会被转换成是一个命,是8GZ呢运行。
56:28
在四八克截屏之上,既然能够去插入数据,我们也能够去查询数据,你所执行的什么所有的DQL,包括DMLG呢,都将会被转换成什么巴克Z呢,运行在我们的斯8个捷之上,因此呢,这种方式基本上跟我们在MYSQL里面或者说在Oracle里面的操作几乎是完全一样的。好,刚刚我们已经执行过两条c com, 一条插入数据,那一条查询数据,那这两条C口L语到底有没有被转换成是是巴克任务呢?好,咱们去刷新一下刚刚的什么的图形化的界面,进到我们的什么这个地方的我们的这个18C口的么的连接里面,去观察一下你所执行过的什么C口与。
57:28
它通过输出的信息啊,我放大一点点,刚刚执行过两条c com, 一条c com是我们的嘛,插入操作,一条是查询操作,很明显呢,这两条C口语句,它是不是就被转换成了什么呢?10SPARK job转换成了18GZ呢,运行在10SPARK经之上,因此呢,大家后续如果说你想在大数据体系里面,你去你去处理结构化数据的时候,尽管你可以去开发任务,开发你的Java程序,或者是开发skyva程序,但是呢,针对结构化数据更简单的一种方式是直接书写一条什么C口L语句,那么就可以了,哈杜普拉支持这种方式,斯巴克拉也支持,弗林克也支持,因此讲到这个地方呢,就回到咱们今天中午呢,就开始给。
58:28
给大家讲的,他就是说咱们为什么要去学习SQ呢?学习Sqa主要有两个目的,写在咱们的这个地方,第一个呢,它是我们后续学习什么关系型数据库的什么基础,因为呢,所有关系型数据库,比如说Oracle呀,MYSQL都支持c com, 对那后它也是呢学型什么大数据的基础,因为呢,我们在大数据体系里面也支持使用C口语句来去分析和处理我们的大数据,好一层讲到这个地方时候啊,基本上今天中午呢,由赵老师要给大家分享的知是大概呢,就是这么多,好那么现在的时间是中午的1:29,马上一点半了,那赵老师呢,1:35 1:35我下。
59:28
打波啊下波,而剩下的时间,剩下的什么。
我来说两句