00:00
好,那么数据库这块呢,我们就知道该如何去创建了,那么接下来的话呢,我们就步入该如何呢去创建表,对吧?如何去创建表,那创建表的话呢,那其实也是叫create了,创建的是表,所以叫create table,当然呢,我们创建表的话呢,咱们是不是一定要明确这个表中都有哪些字段啊,那这个字段的话呢,或者我们在这个其他的编程语言当中,我们都称为它叫做变量了,对吧?那么变量的话呢,通常都有这个类型,你比如说我们要造一张表呢,叫做员工表。或者叫学生表,那通常这块呢,你是不是涉及到这个,比如说员工的ID啊,员工的姓名啊,员工的这个入职时间,邮箱,工资这个住址的这个单位,这个部门名,是不是这样的一些信息,那么这些信息呢,自然而然的会涉及到这个字段的类型,那这块呢,咱们先把这个类型呢,给大家呢,简单的做一个介绍。为什么叫简单呢?咱们现在呢,如果把这个类型呢展开去讲,那估计咱们就陷进去了,你看我们这个类型这块我写的还是比较完整的,就相当于咱们MYSQL当中支持的数据类型有多少呢?大家请看这张图。
01:09
那是不是一下子我们就陷进去了,对吧,那陷进去之后呢,导致出来之后呢,说诶我们在干什么来着,讲了这么多这个数据类型忘了要干什么了,是吧?所以这块呢,我准备这样来处理啊,我准备这样来处理,就是咱们呢,先把这里边儿呢,咱们常用的几个呢,先给大家标识出来,然后呢,咱们先往前去推进。这个造表咱们先说一下常用的类型,造完表之后呢,咱们先讲讲这个增删改,当这个事儿呢,都做完之后,然后呢,咱们再专门的去谈一谈这个MYSQL当中的这个数据类型。因为呢,在实际开发当中,呃,这个数据类型这块呢,一方面会影响我们数据存储的这个数据的这个精度,对吧,尤其像这种浮点类型的,就像这个,比如咱们国内的阿里巴巴等等,包括一些一线大厂,他都会去规范我们像存储,像这种带小数点的这种数据的这个类型,包括呢,其他类型也都一样,什么时候呢会用这个,什么时候用这个,什么时候用这个,它都会有一些规范的,这是我们说的其一,其二的话呢,就是我们这个类型呢,如果你要是本来数据很小,你选的偏大了,那就意味着这个字段呢,占的空间就比较大。
02:15
那么如果数据量一旦比较多,比如10万条这个上百万条数据一来的话呢,我们如果到查询的话呢,其实这个效率呢,也不会特别高,因为这个数据大的话呢,加载到内存中,是不是加载的这个这个这个相当于占用的这个空间就会更大一些,那IO呢,交互的次数就会多,那效率呢就会差,对吧,所以在这块呢,实际上会影响很多事儿,咱们呢讲到这个。12章的时候呢,专门的咱们把这个各个数据类型呢,给大家去讲解一下,所以现在呢,咱们创建这个表的时候呢,咱们就不要拘泥到这个细节当中,咱们就先说几个常见的类型就可以了,好大家看先呢,从整体上来讲的话呢,我们其实可以分成这样的一些类型,那首先呢是这个数值类型的,数值类型的话呢,暂且咱们可以把这个位呢也给它包进来,这呢就算这个数值类型的。
03:06
然后日期类型的,咱们也提到过,是比较重要的一类是吧,还有呢,涉及到这个叫叫什么叫字符串类型的,字符串类型的话呢,我们可以呢,一直包到,呃,其实包到严格说呢,其实呃这个宽泛来讲,其实我们包到这儿也是可以的。然后呢,这块呢,是专门的叫空间数据类型。空间数据类型的啊,涉及到比如说我们这个地图的这种是吧,哎,就是涉及到他的这个呢,咱们通常用的都比较少,你只有在特定的这个场景下呢,我们才会考虑使用的行,那么上面这块呢,就是咱们说的这个数值类型,日期类型和这个字串类型,只不过呢,具体来分的话呢,又分的比较细。比如说这个数字类型呢,我们分成了叫整数和这个整数就是整数嘛,然后剩下是不是就是带小数的,小数的话呢,这块呢,那诶诶画的有点多了,就主要的是这两块。浮点类型和这个叫定点数,这个类型这是整数,是小数,然后V类型就是be了。B的呢,咱们都知道,就是表示一个位嘛,这个用的来来说呢,其实也是比较少的,那当然也算是这个数值类型的,那么上边这块呢,整形里边呢也很多,咱们大家呢,如果需要定义整形,咱们暂且呢先都用这个int类型,其他这个我们先不管它。
04:15
然后这个定义这个小数点的话呢,我这块你看我标了这个是红色叫做DEC是吧,也就是说呢,在实际开发当中啊,咱们其实主要都用这个定点数,但是大家呢,对于什么是定点数,为什么用它可能也不太好,那呃,你可能学习过Java呀,或其他一些编程语言呢,咱们不妨呢,咱就这样,咱先呢定义成这个double类型。我先定义成W类型,然后咱们讲第12章当中数据类型精讲的时候呢,我再给大家说,为什么咱们习惯用这个定点数。说白了就是它的精度呢,是更加的精准的,这哥们俩呢不靠谱啊,所以才要求呢会用它,像阿里巴巴的这个开发规范里边就要求用这个戴,其他公司也一样,这个咱们回头再专门去讲它好。然后这个日期时间类型的话呢,如果我们定义的就是年月日,那就用date,如果呢,带这种十分秒的话呢,呃,这个你要或者说直接就是十分秒,你用time应该是十分秒都有的话呢,你就用后边的这两个是吧,这是这个意思。
05:11
嗯,这是我们说的这个它,然后这个关于这个字符串类型的话呢,你看整体来看分成叫文本字符串和二进制的这个字符串。那其实有的时候呢,大家看到一些分类呢,会把这两个都放到这个上边,都叫这个文本字符串,我这儿呢,特意给他俩拿出来了,就是大家能知道这呢就是枚举类型的,这个呢就是几何类型的,然后二进制的话呢,就涉及到我们像存储这个图片呀,音乐文件呀,视频文件呀,是吧,像这些呢,都属于二进制的数据可以用,下边还有阶层数据,这个大家应该也都听说过的,就是我们客户端跟服务器端交互的时候呢,我们都可以用这个杰森的啊,这样的一种格式对象呢,杰森数组啊都行好,那么这块呢,咱们暂且的话呢,大家先用这个叫work。先用这个work串呢来表示这个字串。哎,行,所以呢,我们这里边可以圈几个,我们现在呢,想用的一个是它,一个是它啊,一个是这个data,一个是这个what,那我们就圈住这几个。
06:03
啊,下边这块呢,针对这个常见的一些类型呢,我这里边儿也分别呢,有对应的这个介绍。啊,分别有对应的介绍,这块呢,我其实就不想花太多的笔墨呢,笔墨呢在这里边去讲这个事儿了,因为我们专门有一章是不是给大家去谈这个问题,所以呢,我们这块呢,就先忽略掉这个问题好了,那么常见类型呢,我们清楚以后呢,接着呢,咱们就回归到咱们要创建的数据表这个事儿来。行,那么我们回过来这呢,我们开始这个第二个事儿叫的如何创建数据表。好,那么如何创建数据表呢?从大范围上来讲呀,我给大家讲两种方式啊,我们叫方式一,还有一个叫方式二。这是我们从这个大方向来讲,有两种方式,好,我们先来看一下这个第一个方式。啊,如何创建表,那上面呢,如何创建库叫create database,那如何创建表呢?那自然而然的就create一下叫table了。
07:03
是吧,那么后边的话呢,你就指明一下你这个表的一个名字。那这块呢,咱们这样,我我我这样一下,咱们在这个use一下,叫艾硅谷DB,咱们在咱们已有的这个数据库下呢,去做这个创建,那我们先呢去这个执行一下,确保我们在这个数据库下,对吧。OK,然后的话呢,咱们再看一眼。看见什么呀,我就show一下create这个data,这个at硅谷DB,我们看一下我们这个数据库在创建的时候呢,它指定的一个字符集是什么?好,大家看是不是叫UTF8是吧?好,这个没问题,它是UTF8的,然后呢,我们这时候呢,去create一个table。这个table呢,我们起个名,比如说呢,我叫MY吧,MY这样子。那这块你也可以先去看一眼,就看一眼什么呢?咱们看一下这个已经有没有这样的一个表了,Show tables。
08:02
你看没有。没有,那我们这块就可以创建,所以这块又涉及到问题说哎呀,那要是有的话呢,我们就要创建,是不是有可能会报错呀,那怎么办呀,我们叫create table,那这里边还有这样一个叫if not exists。上面我们已经讲过这个库的情况了,这块大家想必也就清楚了啊,If not exists,那也就是说呢,如果我们这个数据库下呢,没有这个表,我们是不是就创建成功了。对吧,那如果说呢,有这个表呢,有这个表呢,你就不要创建了,你就默默的结束就行,也不要报错人家原来那个表呢,就还用人家那个表,你就不要去覆盖,OK,那所以我们建议大家呢,加上这样的叫if not exists好,那么这个表中都有哪些字段呢?咱们先简单一点,比如说有个I did呢,是一个是一个整形的,我就叫做int类型逗号一下。然后呢,再换一行呢,表示呢,我们又多了一个字段,比如说我们这块呢,有一个叫员工的name。哎,多个单词的话呢,习惯上我们用这个下划线呢,去给它分割开,咱们用一下这个叫worka work char呢,比如说15个字符。
09:08
15个字符,就这个意思,好,咱们再来一个叫her date是一个date类型的表示呢,这个每个员工呢,他入职的一个时间。可以吧?行,那我这呢,就先写成这样,那像这个整形这个字符串类型,还有这呢,属于我们这个,呃,日期类型的,咱们就都涉及到了。啊,这个浮点型呢,暂时还没有是吧,我们先不管它好,那么此时呢,我们把它选中做一个执行。大家看呢,是不是就执行成功了,这里边儿呢,大家还要注意一个小细节点,就是说我们必须要有创建词表,创建表的这个权限啊,需要呢,用户具备创建这个表的这个权限,那咱们还是那个道理,咱是这个系统跟用户,所以说呢,肯定是有这样的权限的,就不用考虑这个事儿了。那就不用考虑这个事儿了啊,这个大家了解这个事儿,我们到下边的时候呢,再专门讲这个,呃,用户权限的问题,你比如说我们新创建的一个用户,他默认情况呢,其实好多权限都没有,就是你不能让他干的事太多,我们可以后边呢慢慢给他去加这些权限。
10:11
包括呢,我们还可以去加角色啊,这是后话。好,那么这样的话呢,我们就把这个这个这个表是不是就创建好了,那创建好以后的话呢,我们首先可以de一下叫MY,这呢是我们查看这个表结构的一种方式啊,这块呢在这写一下。查看这个表结构是吧,那么这时候呢,有我们这样的三个字段,这是不是对应的这个类型,你看都写这都写到这了,你看这呢,长度是15没问题是吧?哎,这是它这块呢,我们稍微的给大家强调一下,就是这个what呢是我们定义的是这个叫字符串。哎,我们相当于是使用这个workar呢来定义字符串,那必须在定在定义这个,在使用这个workar时。这个指明。
11:01
指明这个,哎,这个名。这个其长度。这个呢,原因是什么呢?你看一下我们在这里边讲到这个数据类型的话呢,这是不是有的,这个叫我是吧,这里边有个size,就是你可以去写这个字串的一个长度,必须呢要去指明的。就是说呢,我们定义的这个长度到底是多少呢?这个我写的是15,也就是说呢,我们给这个员工呢,去命名的时候呢,它不要超过15个字符。哎,就是这个道理,就是这个道理,那int的话呢,我们说就是四个字节是吧,你就别超过这四个字节,那就可以了。啊,这个跟咱们其他编程语言四个字节那个范围是一样的,哎,同学说这里边能包括负数吗?默认的话呢,是包括负数的,那就相当于是从这个负的二的是不是31次方到正的二的这个31次方减一是吧,哎,这样一个范围就是它的一个范围。回过来。那这样的话呢,我们就查看这个表结构了,是吧,这是一个方式,然后呢,我们还可以怎么着呢,还可以这样叫show create。
12:03
叫table my,我们查看一下咱们创建的时候呢,这个语句。那这个时候呢,大家看这个稍微有点长,哎,诶到这是吧,可以了,行,大家这时候你看我们创建这个表的话呢,这就前边咱们这些字段,那大家字段里边你会发现呢,诶怎么还给我加这个东西了,这呢,其实我们就是一个默认值的情况,默认值啊,还有约束啊,咱们都还没有讲,那咱们讲到这个约束这个章节的时候呢,咱们再具体的去说,所以暂且呢,咱们先忽略这个约束的事儿。所以呢,你看我这个课件里边的时候呢,我这里边儿写的这个内容呢,你就先暂时就当没有啊,就忽略掉它就可以了。好,这个我们再调回来,所以这块呢,大家关于这块呢,你暂且呢,就先不管它。行,再看后边这个呢,叫engine,叫inno DB,这就相当于是我们使用的这叫存储引擎,这个我们暂且也先不管,然后在后边说默认的这个插塞是UTL8这个MB3是吧,这呢我们是不是看到这个MB3了。
13:01
这个原因为什么是他呢,就是因为呢,你看我们刚才呢,是不是带着大家去看了一下这个事儿啊,这个呢,咱们看到了是不是默认。默认使用的是UTF8。这个。哎,默认使用的是这个U吧,嗯,这块呢,大家注意一个小细节点,就是我这个当初,嗯,咱们不是从一个文件当中导进来的这个数据库嘛,然后那个文件的话呢,我是在这个5.7当中去这个呃,创建的那些数据,然后导出来的,然后在八里边儿呢,我们导进去的,所以其实默认的话呢,它是用在u ti8呢,MB3哈。这个它指的就是用三个字节呢来表示一个字符,所以说呢,我们默认的话呢,是U8MB3了,所以导致咱们在创建这个表的时候呢,如果我没有显示的指明这个这个character set的话呢,它默认的就跟库是一样的,所以你看这是U8AND3。哎,是这个原因造成的。那这呢,相当于我们在这也说明一下,说如果创建。
14:01
如果创建表时是吧,没有指明使用的这个字符集,则默认使用这个表所在的这个数据库的字符集。那如果这个数据库呢,也没有指明呢,那就看到咱们相应的配置文件里边,你看你那个data用的是什么字符集了,是吧,就这个道理,那这个结构呢,我们是查看。这个创建。这个表的这个啊,语句的这个结构OK。行,那么这样的话呢,我们是不是就讲明了这个第一种方式了,咱们就这样的方式呢,去做个创建就行,这个呢,你知道我们里边讲的这个细节都有什么就可以了,好,这是第一种方式,然后第二种方式,诶第二种方式呢,诶咱们看,哎就是第一种方式,我们再这么找一下吧,咱们去show,呃,这个SELECT1下行,From一下,叫MYPE,咱们看看这个表中呢,有没有数据执行一下,显然是没有的。因为我们自己造了个表,也没有往里边放数据啊,对吧。
15:03
查看这个表数据没有的是空的好,然后呢,我们看一下这个方式二。看一下这个方式二,方式二怎么做呢?这个呢,我们说叫基于。现有的表。现有的。表哎,去创建新的表,那这个呢,你看怎么去做,我这块来写。叫create。Create table,我叫MY,好,注意看这个结构是什么样的呢?我这个叫as。As,怎么着呢,Select。起来什么呢?比如我们叫employee ID,然后呢,Lastname。然后再来一个,这个叫salary吧,然后from employees。诶大家看。我这儿呢,是不是就是一个什么呀,哎,Circle的查询语句啊,然后呢,我在前面呢,加了一个create table,哎,一个表明,然后艾一下,相当于呢,此时咱们就基于你这个查询语句啊,我创建了一个表来我们执行一下。
16:11
你看执行成功了是吧,那么执行成功以后呢,大家你看我这时候呢,叫de一下叫MY2。那此时呢,我们一直行,是不是咱们就看到了这个MYPR呢,创建的时候呢,这个字段的这个信息,对吧,那我要跟谁去做个对比啊,跟这个employees。来我们把这个呢,选中一致型,大家你看一看,咱们使用了这个员工表当中的这个in employd,那这块你看类型这个是不是就int类型。哎,然后后边这个呢,叫last nameme拉,在这这块呢是25,你看这是不是也是25,然后salary salary叫工资这块,你看叫八逗号二,哎这个呢,我们一会去解释这个八到二是什么意思,那这呢是不是也放进来了,哎,相当于呢,就是我们就是基于现有的这个表,我们相当于是造了一张新的表。
17:00
没问题吧,那你这个表中的字段呢,跟我们这个,哎,表中这个字段的这个类型啊,名啊,是不是都是一样的,对吧?哎,这是我们说的这个事,好,那我们再说下个问题啊,嗯,我们这个MY p2这个表中有会不会有数据呢?MY。EPR。会不会有数据呢?大家想。这个呢,可能不太好猜了,是吧,只能是凭感觉了,凭感觉的话呢,你做个查询,按说呢,查询到的东西那就得有,那是不是就有数据啊,来我们看一看,一直行哇,还真有数据,那由于我们这儿呢,也没写护理条件,所以呢,107条记录你看全都有。相当于我们这个表里边儿呢,不管是基于现有的表呢,创建新的表是不是同时呢,还可以导入数据啊。对吧,那就是这样的一个情况。啊,就是这样个情况,好了,那这块呢,我们是创建了一个表,咱们还可以再去创建一个,哎,你看我这块呢,说一点小细节,Create table,我们叫MYE3吧,As select。
18:02
但是你看我现在创建的这个表啊,创建这个表呢,是基于这样的一个表,那你想想我们这个select呢,咱们是不是讲的非常的丰富了,都已经啊,你这个查询里边我们可以加group by可以加多表查询,这个可以加子查询,那相当于这个结构呢,是可以很丰富的,那么既然如此的话呢,如果你要是想把查询出来那个结果呢,放到一张新的表当中,那其实这块呢,你就可以把我们像上一章讲的那个丰富的子查询,你就往这一扔,然后加个帽,相当于把你查询出来数据呢,就放到一个新的表里边了。就是这样的一个意思。就这样意思,那比如说咱们写一个吧,我查询一下这个叫employee ID,然后呢,这个a last name,这个department name from一下employees是吧,我们来一个John,这个来一个E是吧。转一下depart。Departments,我们叫D,然后on一下E,点这个part。
19:01
ID等于我们D点。一盘耐力。然后呢,我就不写这个外条件了,行,我们这样呢,就封一下,接着的话呢,你看我们这是不是几个字段啊,那几个字段呢,哎,咱们也可以去指明一下,这是咱们这个员工表里的。这是这个月。啊,这个不用管它啊,这个呢,也是这个员工表里的。这个呢,是我们这个部门表里边儿的OK,然后呢,大家再关注一个点,就是这呢,就是我们普通的一个查询语句呗。啊,我这是写错了吗?Department ID少一个T。这呢,就是我们普通的一个查语句,是基于这个多表的一个查询,106条记录对吧?好,然后这块呢,诶再给大家注意一个小细节,咱们这呢是这个字段名,我呢其实可以去起个别名,比如说我这块别名叫ED,这个呢我起个名叫l name,举个例子,这个呢,我们叫做DEP name。或者这个呢,我就不起了,咱就还用这个原来这个名,好那从这个查询的角度上来看的话呢,我要是一执行,相当于呢,大家会看到查询的这个结果题当中,是不是就使用了我们这个叫列的别名了,对吧,这个大家都很熟了,好那这时候呢,我们把它整个呢,加上个帽,选中之后呢,我再去执行。
20:16
可以啦,然后呢,这时候我们去select。这个星一下我们叫MY3,大家这时候呢,你会发现啊,一走就是我们刚才这个产语句是吧,而且的话呢,我们新创建的这个表,比如我们用这个de。MYEP3呢,去表示你会发现呢,此时的这个字段呢,是不是像这两个。是不是就使用了我们这个查询语句里边的这个列的别名啊,这个列的别名呢,就作为我们这个新表中的这个字段名出现了。哎,就是这样的一个意思。那就这样意思,咱们为什么先讲查询呢?其实这也是我思考良久的一个原因,就是咱们讲了查询以后呢,咱们在讲创建表的时候呢,大家这块呢就完全清楚了,要是我们上来这个,咱们讲这个MYSQL基础的时候,上来就讲创建表的话呢,这个呢就没法讲了,是吧,因为咱们还没讲查询,所以呢先讲查询呢,这个也也有这样的道理,同时呢,查询因为很重要嘛,结构又复杂,所以我们上来就讲了,而且大家也能够感受到,哇,原来数据库还蛮有意思的,因为我们一上来就查询一些东西的,是吧,大家因为平时呢,主要做的也都是查询的操作嘛。
21:25
好,那这个呢,我们想给大家强调的点呢,是什么呢?就是呃,查询语句中啊,这个字段的这个别名是不是就可以作为新创建的。这个表的这个字段的这个名称啊。相当于呢,你查语句里边这个字段别名作为它这个表中的这个新的字段的名称出现的啊就可以了,然后这个时候呢,我们再说的一个点,这呢,相当于是一个说明一。然后这个,哎,说明二呢,就是我们此时的这个查询语句。啊,可以呢,呃,这个结构呢,是比较丰富的,可以结构比较丰富。
22:06
那使用这个前面。就是章节。哎,这个讲过的啊,这个各种这个select哎都是可以的,主要呢,就是看你这个具体的业务当中,你需要呢,创建一个表,使用原有的哪一些这个查询这个来构成是吧,就可以了。行,那这呢,我们就说清楚这个事儿了,然后这个说清楚之后呢,大家你看一下你是不是能做这样的这个练习,练习一是什么呢,我们想创建。一个表,这个表呢,叫做这个employees copy。嗯,创建一个表是它,然后呢叫呃实现。直线对,咱们说这个叫employees表的一个复制。这个复制。然后呢,包括这个表数据,就相当于呢,整个呢是一个复制的。对吧,那我这写了练一,那相当于我们这块呢,还有一个练习来,我CTRLC一下创建一个表叫employees,我不叫copy了,我叫做blank。
23:09
叫做blank,实现了对employees表的复制,但是呢,我们叫不包括表数据。不要数据。这怎么搞?连线是吧。看一下。创建一个表是它实现对这个表的复制,包括表数据。其实呢,难度也不大,那你看我们上面是不是讲了这个方式了啊,我就create一下这个table。然后呢,他叫这个名,这名给我们起好了,那我们就直接用这个名。OK,然后as是不是select,我就直接select星就行啊,那from叫employees,诶就这么着,那这样的话呢,我们就是查询这个表中的是不是完整的这个数据了,然后我们把上面的加个这样的一个帽,那其实呢,就把这个表呢就创建好了,来走一下。哎,成功了是吧,那成功之后呢,你看我们去select星这个from叫employ employees copy。
24:06
这样子对吧,然我们选中这块呢,去做个执行,你看这个数据呢,也都出来了107条。那注意啊,咱们这块呢,是复制啊,是复制DID呢,就是我们这个表中的数据呢,如果要删除一些的话呢,是不是说不影响我们原来的这个员工表啊。这才叫复制对吧,那山竹呢,咱们还没讲,我就先把这个结论呢告诉大家,就是他们是一个完整的一个复制操作啊,不是互相影响的啊。行,那这呢是我们说包括表数据的,那下边呢,不要表数据,这个该怎么做呢。整体来讲呢,跟它是比较像的,对吧。大家想一想怎么做?不要表数据。不要表数据怎么去体现呢?嗯,就相当于呢,如果我们创建好以后,我要一查询,相当于是不是只有这样的一些这个字段了,下边这个数据呢,是一个也没有了是吧。你想想数据有没有,或者说呢,这个数据有多少,主要是不是就取决于咱们这个查询语句啊。
25:07
这个查出来107条,那就只有,那就有107条,我们现在呢,是不是只需要呢,这个呢,还留着是星还是这个表,我们希望呢,这时候呢,是不是不要有数据。不要有数据呢,是不是我们就可以通过这个过滤条件去控制呀。对吧,诶通过控制条件去控制,你比如说啊,你比如说你看咱们这个员工的这个部门这块呢,大家多少也心里有数,或者你看这个employee ID也行。对吧,这个最大的ID是多少,这个部门呢,都有哪些,咱们都比较清楚,嗯,比如说我就随便写一个吧,我查询一下这个叫department ID呢,是这个大于这个1万号这个部门的。我只要这个部门是大于1万号部门的这个员工信息,显然呢,咱们没有员工是不是是这个部门的呀,根本就没有这个,或者说根本连这个部门都没有是吧,那更何谈这个部门里边有人了。
26:01
你看这时候我们查询以后呢,这不就没有数据吗?那基于这个查询语句,我要是这样的去选中执行的话呢,是不是说一定创建出来的这个表,它也就没有数据了呀。没问题,那就没有了,好那这块呢,诶其实我我就不创建了啊,咱们想说的是呢,就这个呢是没问题的,但是大家你想多少呢,还冒着一个风险,就是你得先知道里边儿有没有大于1万的部门,如果说呢,要真有的话呢,还麻烦呢,是不是里边就有数据了呀。哎,所以说我们这块呢,尽量呢,咱写一个确定就是没有的。确定有没有那写什么呀。哎,我这样写,大家你看行不行啊,Where什么呀,我写WHERE1等于二。哎,外一等于二,我呢只要一等于二的时候的那些数据,就好比是我只要部门呢是大于1万的数据,这个呢,要真没有,那就没了,我只要一等于二的数据,大家想想一是不是永远不可能等于二啊。
27:01
所以说你在查这个表的时候呢,一条数据过来了,一走,这发现,哎,这个返回是零,那不要了,第二条数据过来返回也是也不要了,那整个下来呢,不就都没有数据吗。这个呢,类似于什么呢。啊,类似于大家你就想那个,呃,咱们看的那个,大家大家这个年龄应该可能没看过了啊,以前讲的那个。呃,还珠格格啊,里边唱的那首歌,当然这也是咱们诗经里边,只不过他做了一个修改了啊啊,那个歌里边怎么唱的叫山无棱,天地合,乃敢与君绝是吧。那我写一下啊,山无棱。天地合。哪敢?与君绝。呃,真正的这个诗经里边呢,山无棱,江水为节是吧,哎,这个等等等啊,这个下雨雪啊,这个我就不具体去说了啊,这个下雨雪就夏天呢,让它下雪,这也不太可能嘛,那我们就看这个,这歌词里边呢,给它简化了,就是山没有棱角的时候,天和地呢,合并在一起的时候呢,我才敢和你分手。
28:04
你看中国人呢,说话是不是多么的这个叫温婉啊,含蓄是吧?啊,月亮代表我的心啊,问我爱你有多深啊,就非常的含蓄啊,说呢,天跟地,天没有棱角,那山没有棱角了,天跟地合在一起的时候呢,我才跟你分手,那这不可能发生的,那所以说呢,我就不跟你分手啊,相当于是这个长相厮守了,所以这块呢,你看我就要一等于二时的数据,一永远不可能等于二,所以呢,就没有数据嘛。哎,就是这个思路,看此时呢,我们做一个创建。搞定了,然后呢,你可以去select一下。Select星from一下,哎,我们这个表CTRLC啊往这一站。来,我们选中。执行,那你看是不是就没有数据啊。哎,就可以了,好,这呢是咱们相当于做的两个练习,哎,两个练习,然后呢,哎,整体来讲的话呢,我们第二种方式呢,就是create一个table,它后边呢as这呢就是一个查询语句,这呢叫基于现额表去创建,同时还可以导入数据,那么第一种方式呢,相对来说呢,是不是就是比较叫什么呀?哎,这个基础一些是吧,我们就一点一点的把这个字段呢造出来,类型呢也造出来,然后长度呢也指明出来,然后呢把它造好,接下来的话呢,我们就一看里边还没有数据,那你得一点点往里边去填充数据是吧?所以相较于这个方式二的话呢,这个方式一呢,我自己给它起了个名。
29:25
啊,这个把它起个名叫什么呀。哎,我叫一个白手起家的方式。那大家也能明白什么意思了,对吧,就是这个呢,好比是这个,咱叫负一代也行。富一代也行,或者这个叫创一代也行,这个呢,是不是就相对来说这个有点像这个富二代一样是吧,就是你这呢,因为啥也没有,所以得一点一点的白手起家的去创建啊,从头开始,而下边儿这个呢,因为已经有家底了,就是有这个employees表在了,然后我们再创建一张表的时候呢,基于这张表就创建,你看就非常的简单,而且里边还有数据是吧。啊,就是这样的一个主要的区别这块呢,注意是我自己起了个名,这个在面试的时候,如果问你创建表有几种方式啊,你说两种,第一种叫白手起家,第二种呢叫机遇相得表,这个可能对方听不懂啊,这个是咱们自己的这个内部的这个行话啊。
30:15
好了,创建表说到这儿。
我来说两句