00:00
那接下来呢,我们看一看这个里边的一个数据类型啊,其实这里面数据类型呢,绝大部分跟这个Java都是一样的啊,所以就比较简单,比较好记啊呃,那首先呢,像这个字符型对吧。其实这个都比较少用,Va里面用这个气较少,包括这个什么说短整型,还有那个long长整形对吧,这个不一样啊,就是说这个是叫small,这个叫对应的短整型和什么长整型,而int呢一样的啊,用int呢,这个东西是我们用的比较多的啊,用的相对来说比较多的,对吧?像其实int in这两个都会用的比较多啊,因为我们用的是大数据嘛。大数据里边你觉得这几个东西。其实用到的比较少了啊,用的很少了啊,就是in跟big用多对是不是一样的,一样的你还需要去记吗?因为我们只需要记不一样的是不是就好了呀,一样的不记不记得我可能哎,我们脑子里面没有印象,那就是一样的呗,对吧?啊就是说那我们要记得,也就是说这个B1呢,是不是稍微的要记一下。
01:15
对吧?啊,我们稍微关注一下啊,它对应的是double当中,那这个都一样的,Float double string都是一样的啊,都是一样的啊,这里边呢,还有这个时间类型,字节类型啊,但这两个其实也不常用,因为在我们汉语当中啊,就算你是字符传,只要你把字符传写成这个样子啊,可能是幺零杠二六对吧,如果你的字符传啊是这个样子,然后你对这个字符串进行日期操作,它是能够自己把这个内容转化成日记类型的。所以在里边,在汉服当中,这个日期类型我们直接用其实也不多,那也就要求我们传入数据的时候,我们都给它格式化成这种类型就好了。
02:06
能理解这个事啊,其实还里边呢,它只要你写的是YYYY,什么杠MM-DD,只要你是这种结构,就算你是字符串。你在对这个字符串进行日期操作的时候,它是能自己将这个字符串自动转化为日期类型的。所以说我们一般很少也就指定什么日期类型啊,这个都没标红,那也就是说我们需要掌握的就是什么,这中间这几个。而且呢,这个地方啊,就是对于这个float单精度的用的比较少,一般我们可能用的是什么double,你想想看,Java里边你如果真写起来,你double用的多还是用的多啊double吧,一样的,汉语当中也一样的,所以说这个对于类型而言,这个就很简单了,对吧?啊,没什么难的,因为跟Java类似,这里面呢,就一个什么big in的不一样,对吧?啊,那也就是说我们记就记不一样的,我们只要把这个记住就好,好这是我们所要它类型,那除了这个类型之外,它还有集合类型,它也有。
03:13
他能集合就一个这个链呢,是一个集合啊可以,那我们比较熟悉的有什么map有。有呃,那map肯定是坚持对KV类型对吧,定义类型的时候呢,你要定义什么,就相当于JA号当中的这个类型,然后呢,不是相当于这个样子吗。对吧,啊相当于这个样子的,好,那下来还有一个叫。它是一个结构体,它可以来定义一个结构,这个东西呢,呃,一般的我们可能把当然这边说了,跟C语言当中的start很像,但是大家没学过C啊,那这个东西跟Java当中应该怎么对比呢?就相当于是Java当中的一个招B。
04:08
能理解这个事吗?是相当于它的一个账号病啊,是这个东西啊,就是说你我里边对于这个字段里面呢,我可以定义很多的类型,对吧,而而且这个类型和这个数据之间都是见对的。因为招聘不是有属性,有属性值,属性名和属性值两个东西嘛,对吧,啊相当于这样没有关系啊,而且这些集合类型,任何一个集合类型都支持嵌套。知道什么叫嵌套吗?对吧,就是说那你想想看,在Java当中这个map我可是string,我value非得是基本数据类型的吗?我VALUE6是一个行不行,可以吧,我是一个map行不行,是不是可以啊,对吧?我数组里边只能放string。
05:02
放int这种基本数据类型吗?不是了吧,我A里边是不是我再放一个map或者再放一个A是不是都可以啊对吧?哎,它支持签到啊,他支持嵌到是这样的东西,好那抓的那更不用聊了,他更能支持嵌套了,这va病吗?想想看我这一个属性,我叫ID叫内容。对吧,我我后面还有一个属性可能叫friends,就是说我的朋友,我朋友的类型,我是不是能不认识一个数组啊。我设一个集合是不是都可以啊,我甚至朋友的类型,我用一个map来保存行不行,我不光要记录我朋友是谁,还记录他这个性别KV,我来保证行不行啊,也可以吧,对吧?哎,它也支持签到,而且呢,这个Java b其实这的相当于更灵活一点啊,更灵活一点,它呢可以支是任意存次和签到,但是说实话真的嵌套多了,我们也不会用太麻烦了。
06:00
不像是Java,你调一天,它这里边你要是获取最后一个元素就超级麻烦,很麻烦,一般呢,我们也不太常用的是这种复杂数类型啊,啊还是用简单的去多,因为你想想看,你一个字段用的是。太麻烦了,因为在获取的时候就很麻烦,对吧?啊是这个意思啊呃,但是呢,它是支持的啊,这个要注意一下行,那我们把这个类型主要的呢,像这这些类型啊,我们就不用多做介绍了,对吧?主要把这个集合类型呢,我们举几个例子来看一下啊,举几个例子来看一下,好,那首先呢,有一个这么个文件啊,这个文件呢,我们把这个摘过来,它呢是一个所谓的接S文件。这就比较比较复杂了。这条数据。对吧?啊,我们想通过这一个一条数据呢,把三种类型我们都给大家去看一看,主要是讲一讲它的一个防护方式和定义结构。定义这个字段的时候怎么定义,那我假如说是一个string类型,大家都会了,ID后面跟着一个string in类型,是不是ID后面跟一个int啊,是这样的,那当然了,假如说这个字段呢,我也叫abd,那它是一个,呃,是一个其他类型,不不好定义啊,对吧,我们来看一下怎么怎么来玩,首先我们把这个去捋一下,这里边东西啊第一个。
07:20
姓名送对吧,就是按那个海狗人参丸的宋总啊,就那个宋总啊,呃,姓名这个就普通字段叫name作为他的一个列名。送的这个值作为什么,作为他的value,那这个是不是用理型就好了,对吧,到时候用变型啊,第二个friends明显看到它是一个什么中框,是一个什么数组对吧?啊,是一个数组啊,或者叫集合也可以,因为金额底层啊,不是数组嘛,对吧?啊,那friends子它是列名对吧,它是这个内容,然后还有个child。
08:01
啊,那彬彬丽丽是吧啊,他朋友那朋友都是妹子啊,然后孩子是吧?嗯,小宋小小宋,但是我不知道的是啊,为什么小小宋比小宋大是吧?啊,反正他不管了,这个是年纪啊,这年纪接着队啊,孩子对吧?接着队麦克一个叫小宋,一个叫小小宋啊,然后还有地址。地址的话呢,街道对吧,城市北京回龙观啊,在北京回龙观啊,这个呢,我们想定义成结构体,这个呢,字段用map这个字段呢用啊,我们就想建这样的一张表,那你想啊,呃,你在建数组的时候,或者说建map的时候,你是不是要定义,你要定义什么东西,你不能说我就定义一个数组,然后里面放的string还要定义什么东西,大家想一下。对于我们这个数据往那一放什么长度,我这个Java一样,我要定一个这个数字的长度是吧。
09:07
分割符想一想。要定义它的分割符,你这个数组往里放数据,不是说用数组的API去放的,对吧,直接加载文件加载过来,那加载文件人家凭什么能知道你数据当中的这个分割符是什么东西呢?对吧?所以呢,对于数组而言,定义表的时候呢,我们要定义它元素之间的分隔符,那对于map而言呢。Map是不是一样的,也要指定这个分隔符啊,而且对于map而言,一个分隔符够吗?不够,它得有两个,第一个是元素与元素之间的分隔符。对吧,就是说小宋这一组K,这是不是一组KV啊,这是不是也是1KV啊,我们是不是要定义KV之间的分隔符,还要定义什么东西,KV对A组KV中间的,对吧?也就是说刚才我们要定义一个元素之间的分隔符以及。
10:17
元素内部的分隔符对吧?那对于结构体是不是也一样的啊,我们要定义好它这个结构啊,定义好结构这个不需要呃指定那个什么所谓的一个分割符了,我们只需要去干什么事啊,啊第一类似于账号B那种集合一样东西就行了,对吧?啊,简单的东西就行了,好,那我们来看一下这个所谓的一个间表啊呃,这个呢是测试文件,那我们来做一下这个事情啊。测试文件M叫test.t ti插入,然后呢,我们把它文件拿过来啊,刚才是那个杰森,只是去介绍数据结构,真正的数据呢,它长这个样子啊,来看一下啊,刚才呢是杰森啊,我们的K在这对吧,我们说了这个东西将来作为字段,那看一下它里面是什么样子的。
11:05
搜索是不是对应的是name对吧,好,黎明丽丽,这个对应的就是friend对吧?啊,然后这个。抽认最后一个address对吧?啊,Address地址啊,就是说这个只是P啊,这个P呢,相当于我们字段,我们只是可以拿这个来看的好,这边分割符用的是数组分割符用的消划线对吧?呃,Map元素与之元素之间是不是也是向划线元素中间的冒号对吧?所以第一表的时候呢,要低一下啊来看这个介表语句我得拿过来,因为它比刚才要复杂了,比为我们之前的介表语句要复杂了,首先。这个test我就不用test,因为之前有的你在创建时候有问题,对吧,我叫TEST2啊。好,来看一下,首先呢,Create table,然后name用string类型没问题吧?啊,对于friend我们用什么数组对吧?对于children用什么map,哎,这个定义跟Java定义没什么大区别啊,Map呢,这是孩子,然后孩子姓名嘛,孩子年纪,那我们用in的就好了,最后一个结构体,看这种定义方式是不是说了类似于招聘的定义方式。
12:23
这病里边你是定义一个。属性名属性类型啊,最后往里边放值嘛,值是文件里边来的,对吧?啊是这样的东西,最后呢,这个地方诶。又有回音啊是吧?喂,现在呢,喂喂喂,现在有回音吗?没了是吧?好,那接下来呢,我们看一下啊,这个里边呢,首先第一个问题啊,当然后面我们还要详细介绍这些东西啊,首先看啊,这是一个列对吧?这是一个列,呃,这个整体是不是一个列,这是一个列,那列与列之间是不是用逗号分割来看这个。
13:09
这这后面啊叫行的什么格式对吧,那后面写的呢,就是第一名格式的第一个位置。哎,第一这个应该是这样看啊,这个东西写错了,行的格式的一个什么定义对吧,然后呢,叫field叫字段字段,然后terminated by。以什么什么东西分割,字段与字段之间我们用什么逗号分割,然后接下来看这个啊,刚才我们看到的是field field的就是当前这张表里面的字段,对吧?那这个叫collection it叫集合的元素吧,还是一样的,以什么什么分割,以什么下划线分割,注意啊,这个地方有个点啊,一个小细节定义,在表里面定义的时候它叫connection items,而且只有这一个啊,并没有定义items,也没有定义和S。
14:23
如果说这个地方是BY下划线,加上这个什么map by下划线,以及跟现在只能用connection by有什么区别?就刚才我们说的跟map,如果说这两种的话,它是不是分别定义,这是不是统一定义,区别在哪?数据里边,对于数据而言,如果你将来既要用A,又要用map,你必须再把这个数据导入我们。
15:06
Have之前这个分割符一定要格式化一样的用MR或者说其他东西做一个数据清洗。因为如果说这个地方我拿什么,我举个例子啊,我拿分号分割这个地方呢,用下划线。我对于这个我想用数组,对于这个想用map,能做吗?做不了了,因为这个应该我们说了,它的一个集合类型只能用什么,只能定义一个啊,只能定义一个,这定义的是整个集合的元素与元素之间的分隔符,这个要注意一下。啊,所以未来如果你在一张表里边既用到了数组,又用到了map,你在往这张数,往这张表里放数据之前得干什么事啊,把数组合map中间元素与元素之间的分隔符要统一。
16:04
能明白这个事儿要统一啊,要统一啊是这个意思。啊,要统一,包括最后的这个结构体当中的两个元素,对吧,要统一,因为它表示整个集合的分隔符的只有这一个,也就是说你如果用到多个复杂数据类型,你必须要保证多个复杂类型数据类型之间元素与元素的分隔符是统一的。啊,主要是它不是分开定义的,如果说就刚才我们举的例子,假如这个地方写的是items,写的是map items,那是不是可以不一样,因为是分别定义的嘛,这是统一定义的啊,主要是这个区别,然后接下来还有一个,就刚才我们说了,对于map而言,我们不光要有元素与元素之间的分隔符,还有什么元素内部的分隔符,对吧,是不是要要定义看这。叫map case,他冒号啊,冒号最后一个字段可以不写,其实因为默认的就是它这个叫什么叫length termin five-N行分隔符,行分隔符默认的就是杠N啊,所以说最后一个可以不写,因为之前我们在建test表的时候有写这个吗。
17:18
没写它是不是也能分别出来有几行啊,诶默认的就是杠啊,最后的那个分割符嘛,对吧,行末符啊好,那我们把这个哎错了啊,应该在这展掉。看一下什么东西说我他二已经啊,我刚才刚才创建了是吗。好这个就好了,刚才说这这个报错应该能看出来,他说已经存在了,对吧,我看了啊这个东西呢,改成三,改成三之后,我们怎么把这个数据放进来呀。银色的比较麻烦,我们是不是文件都准备好了呀,既然文件都准备好了,色不的。
18:09
加给他扔到哪了,是不是太三目录啊,扔到这个目录吧,对吧。好,那我们来查一下c from。好啊,是这样东西对吧,好像看起来是能够识别的,你看啊,之前我们是不是用下划线分割的,它识别成数组之后怎么样啊,是不是一个中号了对吧?包括这个map结构体啊,里边的数据呢,都有了,对吧?那么问题就在于这个东西应该怎么访问,所以我们就不聊name的话,就直接访问name就行了,关键在于数组当中这个friends。Java当中数组怎么访问角标0123对吧,那我们试一下啊,我们想着这个地方既然跟这个Java一样的,那我们就访问这个什么friends。
19:09
那个。是不是可以啊,对吧,它在那个里面不就是这样访问的吗?在这个Java当中,不就是通过这个字段,然后给一个角标吗。对吧,你看啊,我给零的时候,他访问的是不是冰冰和什么,恰恰两条数据嘛,都访问第一个位置,对吧,然后这个是一立领输出。对吧,啊是这个数据啊,这是数组数组的一个方式,那么接下来是这个。Map怎么访问在Java当中,先想一下Java对吧,如果不行我们再改,如果说跟Java一样,我们是不是不用刻意的去记了呀,对吧,那如果跟Java一样啊,那我们谁来的心,我先把这个放在这TEST3,如果跟Java一样,你想一下我想访问这个。
20:14
车子,这相当于是一个map对吧?啊,所以我们定义好的一个还行map的一个对象,然后你要获取数据,那我们之前好像用的是是不是好像是这种方式啊,访问里边的是八或者什么样的东西。对吧,那因为map它还支持这个角标去访问呢,你要便利,那扩展一个问题,Map变利应该怎么变利呀,啊转迭代器,然后呢,还有呢。还怎么变安鹑下得卖里边没有卖里边,因为元素不是那个安吗?叫安吗?每一个KV不是一个安吗?对吧?啊安赛是不可以电立,还有呢,对赛还有一个k set是不是也可以变立啊,对吧?啊k set也可以变立啊行,那我们就想着那Java当中是不是这样划分点不确定,我们测一下这个不行了。
21:29
他说怎么样不认识了,所以说这种情况就跟Java怎么样了,不一样了,数组是不是一样的访问方式啊,对吧,这不一样了,所以呢,它这个访问方式呢在这啊。呃,对于他而言,他这好。他没有get,直接拿着什么,对可值放进去了,好,也就是说这个地方呢,我们得换一下,而且呢,用的是什么中括号不要盖头了,对吧?啊直接这样。
22:03
第二个闹,为什么?因为第二条数据当中有小宋嘛。没有吧,啊没有呢,返回个呢,对吧?啊,就是说这个相当于一个K不存在吗?啊是这样的情况,第二个是了,第一个是不是10Y呀,没有问题,那最后还有个结构体,结构体是不是一个扎va并,刚才我们说了,如果定义成扎va的话,扎va并,那扎va并里边我们应该怎么去访问呢?Get赛对吧,或者说直接点属性行不行。对吧,啊,直接点属性,那如果能直接点属性,那我们可以直接点属性啊,就address对吧,点那个哪啊街道对吧,我们就看一下它所在的街道,From这个什么TEST3。是不是可以啊,朝阳和成冠对吧?啊,也能够查出来,那也就是说总结来看,数组和最后的结构体跟Java里的访问方式是一样的。其实。对吧,在这去访问,只是map里边不能用get了,而直接用一个中括号写上一个K。
23:05
对吧?啊,它的访问方式是这样子的啊,那也就是说我们刻意的去记一下卖了就好了,像结构体啊,还有这个数组啊,不用刻意的去记了啊,不用刻意的去记了啊,有个你想,那如果你要整理笔记的话,我建议他把把这一块例子去整理到笔记里面,因为后面啊,其实像那个集合在生长环境当中也一样,它并不是非常常用的一种数学结构,最常用的还是我们上面所说的这几种。就是刚才我们给他圈的从这到哪啊,而且还要干掉中间的的对吧,其实总结起来只有几个东西需要我们去关注啊,五个吧,五个内容就好。啊,只有五个需要我们去记的集合类型,不需要刻意的去记这些东西啊,有个例子在这,然后用到的时候能对照这个例子啊,那个电表语句啊,这些东西能写出来就OK了,那达到这个效果就够了啊,因为这个针不是那么常用啊。
我来说两句