00:00
行,那随着呢,咱们这个子查询的课后练习题的结束啊,咱们关于这个查询结构呢,整个呢就告一段落了,那么接下来的话呢,我们再讲就是第十章了,那么这块的话呢,咱们还是从这个大树着眼来看一看咱们整个的这个内容,咱们在这个笔记当中的第三章。那这块呢,提到了我们这个circle的一个分类,对吧,Circle呢,我们分成呢叫DDLDML和DCL,这块呢,作为基本的常识呢,大家需要记住它,那么我们呢,相当于前面几个章节,只是讲了DML当中的是不是这个查询操作呀。咱们针对于这个导入数据的,咱们是用的这个现成的这个表的数据,对吧,导入的这个employees呀,Departments啊,这样一些表的数据呢,我们学习这个查询操作,应该说呢,这个整体来看呢,还是有一定的难度的,那我们的上篇讲这个查询呢,就告一段落了,我们下篇的时候呢,再来谈一谈以查询为代表的这个circleq的优化问题,那我们下边呢再去讲。
01:00
好,那么咱们接下来的章节讲什么呢?我说呀,咱们先来讲一下,叫DDL。DD呢就是叫创建和管理表,后边这些操作呢,我们可以理解成是管理表这些操作这呢叫创建表,那么只有当我们先创建了表以后,这个表里边儿数据呢,暂且是空的,对吧?那接下来的话呢,我们才可以呢,往这个表里边去添加删除和修改数据,那我们相当于是先讲这个内容,然后呢再讲这个内容。当然了,我们往这个表里边儿添加了数据之后呢,我们是不是针对于自己创建的表去做查询操作,那更没有问题啊。哎,是这样子的,OK,行,这是我们说的这个事儿,然后接下来的话呢,有同学说还会有这个DCL呢,是在哪讲呢,我们在讲这个窗K的table叫清空表数据的时候呢,我们把这个commit和roll back呢给大家呢讲解一下,那这个simple呢,其实也是涉及到我们关于事物相关的这个操作,但是呢,我们前面这个讲commit跟bag的时候呢,咱们尽量呢比较薄的给大家去讲一下这个事物的内容,所以说这个simple呢,咱们暂时呢也就不讲它了。
02:05
那到时候给大家呢,稍微说一下这是什么意思就可以了,然后关于我们这个grant和revoke,这是涉及到我们赋予权限和回收权限的操作了,咱们放到下章下篇当中讲用户和权限的时候呢,咱们再来讲这两个关键字。好了,那这块呢,咱们就是相当于除了这个select之外呢,剩下这块除了这个我们上面不讲的,其他这个内容呢,我们在哪讲,咱们就是在这样的章节当中回过来创建和管理表,那这块呢,我们相当于是讲的叫DDL是吧。然后呢,在这个DDL的这个窗k table的时候呢,我们再把这个DC当中的commit和roll back呢讲了,相当于整个呢,在第十章当中去讲的,然后第11章呢,叫数据处理之增删改,相当于呢,我们讲的就是DML之呃增删改操作,那查询呢,我们前面都已经讲过了,是这意思吧,好这呢就是我们这个第十章和第11章这个内容上的一个分配,大家呢有一个大处着眼的一个概念,好那接下来的话呢,我们是有进入到这个第十章的一个学习。
03:10
好,首先呢,大家看这里边的一些基础的知识,那第一个说一条数据存储的过程。说的数据存储是处理数据的第一步,那我们叫巧妇难为无米之炊,那么这个米的话呢,就相当于我们的数据啊,这个你要是没有米的话呢,那你再会做饭也白扯对吧?那我们想处理数据,那前提呢,你得先是不是有数据,那有的这个数据呢,当然了就是存储在我们的数据库当中的。那只有我们先存了数据了,你才能够去处理数据,对吧?OK,行,那么我们要想去存储数据,那或者我们就要插入数据,这个过程是什么样的呢?我们说得先创建数据库。然后呢,确定一下我们需要往这个表里边添加这个字段是什么,所以接下来你这个确认一下这个字段就是相当于是我们表里边的这个列一样,对吧,那我们这就叫做字段了,确定好以后呢,我们接下来就可以创建这一张表,然后呢,往这个表里边呢,去插入数据了。
04:07
行,那你不能一上来说我们就开始去插入数据,那这个呢,诶我们说呢,叫什么呀,皮质不存,毛将焉附啊,这个数据的话呢,在这个角度上,我们可以理解成是这个毛是吧?哎,你没有这个表的话呢,你怎么可能把这个数据呢添加进来呢?我们得先有表后有数据是吧?所以说呢,这个就是相当于一个皮啊,皮之不存,毛将焉附啊,就是这样一个道理,好,那么接下来的话呢,我们就要创建这个表了,是吧?但是呢,创建表之前呢,大家要清楚,就是表的存在呢,又得需要依赖于数据库的概念。又得需要依赖于数据库的概念,所以我这里写的从系统架构的这个层次上来看呢,咱们从范围大到小一四是什么呢?先得有这个叫数据库服务器。那数据库服务器里边呢,我们说你可以理解成有这个叫DBMS叫数据库管理系统,还有呢,我们真正的这个数据库对吧,那这个层面呢,数据库呢,我们是泛泛这个大概念上的,这个这个概念就好比是呢,我们一提到数据库啊,你可以理解成是这样的一个整体。
05:08
对吧,这样的一个整体或者的话呢,你也可以从这个角度来去理解,就是咱们这我是Windows嘛,安装的话呢,咱是图形化界面的方式,大家可以直接通过图形化界面方式去看的,对吧,你要Linux的话呢,你就调这个相关的指令去那个指定路径下去看了,我这呢有一个program data,然后有一个这个MY。MYQ呢,在这儿是吧,然后呢,这个8.0打开是不是就这样一个目录啊,这个data里边呢,就可以理解成是我们的这个数据库相关的这个文件了。啊,数据库相关的一个文件,好再回过来,那刚才提到了就是它这个数据库服务器呢,就是一方面呢,是我们的叫DBMS,另外一部分呢,就是我们的真正的这个意义上的这个数据库,然后这个数据库呢,是宏观的一个概念,然后具体的来讲呢,就是一个一个的data,就好比是我们通过这个来查看的这一个一个的这个data一样,然后呢,在这个database里边呢,我们存放的诶这个具体的这些表对吧?然后表里边呢,存储具体的这个行与列,咱们前关前边呢都已经讲了这个丰富的这个查询操作了,想必呢,大家对我们这个先用库,库里边有这个表这样一个概念呢,算是比较熟悉了啊,表里边呢,有具体的这个行和列,对吧?哎,这个应该都是比较清楚的,所以说呢,我们要想去添加数据的前提先得有表,有表的前提呢,是不是先得有个数据库啊,所以下边呢,我们就谈到了,咱们得先从是不是创建数据库开始啊。
06:34
OK,没问题。那么创建数据库的话呢,咱们在之前呢,给大家这个一开始讲的时候呢,演示过,我这呢,相当于创建了一个叫DB test to这样的一个数据库,对吧,那么这个数据库的名,那我们给它起个名字呢,叫做标识符。或者叫标志符也可以,那大家如果你接触过其他的编程语言,那你就对这个标志符呢,应该有一个更清晰的认识,那像Java语言当中啊,Python语言当中啊,等等很多语言当中呢,那我们都会提到这个标识符,你像Java里边呢,比如我们提到像类啊,这个变量啊,这个叫方法呀,或者像C里边我们叫函数啊,像这些结构呢,这个它们函数的名字,变量的名字,类的名字都叫做标识数。
07:19
你叫标志符啊也行,那么在命名的时候呢,需要遵循一定的规则,那就好比是呢,你这个叫DB test to啊,或者我们叫DB test2,那你这个在命名的时候呢,有什么要求呢?比如能不能写中文啊,对吧?哎,像这些的话呢,我们得需要观看一下,我们这里边叫规则。叫规则了对吧,那这块的话呢,大家呢,就是需要得有一个印象了,虽然说不要求大家你每一行呢,都得给他死记硬背下来,但是呢,如果你在创建的时候呢,哎,这个没有遵循的话呢,这个是不合适的。啊是不合适的,那必要的时候呢,他肯定还是会报错的,来我们把这个规则呢给大家过一下。
08:00
第一个说这个数据库名,还有这个表名,表名也是标识符对吧?呃,在命名的时候呢,说不能超过30个字符。30个字符实际上已经很长了,那你想想你要是长得太长的话呢,咱们自己调的话呢,是不是也费劲呢,所以不要太长,那变量名的话呢,限制为29个啊这个其实对于我们来讲呢,也挺长了,OK,然后下边呢,说必须只能是大写的或者小写的,嗯,这个A到Z的这样的字符。然后呢,零到九,然后下划线一共呢是有63个字符。63个,这儿呢是有26个,26个呢,乘以二是五十二五十三是吧,然后这呢是十个,然后一共是63个,没问题,好,然后呢,数据库名就是你你不能用别的了啊,包括呢,你这里边你看下边提到说这个不要包含空格,那肯定不能有空格,你有空格,那岂不是说这里边儿还能有空格来做一个字符的是吧?哎,不要空格啊。下面呢,说同一个MYSQL这个软件当中,数据库不能重名,那很容易理解,你像我们现在呢,这里边儿呢,有123。
09:04
呃,123456,是不是有六个数据库啊,那数据库呢,肯定不能重名,重名的话呢,我到底想调调哪一个呀,是吧?哎,就懵了,那不能重名,然后呢,同一个库当中啊表不能重名,同一个表当中啊字段不能重名,这个呢我又不用多说,大家呢也很好去理解对吧?重名呢,没法去区分各自的这个结构了。好,下一个说呢,必须保证你的字段呢,没有和保留字,数据库系统或者常用的方法去冲突,如果呢,你要是坚持使用呢,需要用这个着重号,不光是我们这个字段了啊,你这个标志符呢,都是这样子的,你比如说呢,像咱们前面给大家提到过的,我在这个爱的硅谷DB当中呢,你看我有一个。表明是不是叫order呀,那这块呢,其实它就有一定的风险,咱们讲那个着重号的时候呢,我特意给大家说过,还记得吧,比如说你看我select星,然后from一下这个order。那原来呢,我们当时讲着众号的时候呢,大家可能不太理解,因为呢,我们还没有讲这个orderbi是吧,那现在已经讲过了,你就很清楚了,那咱们现在你看我现在这样点一下保证呢,我们在这个艾特硅谷DB这个数据库下,然后此时呢,你看我们执行一下这块呢,是不是就挂掉了。
10:13
在哪块挂的呢?在你这块order这块挂掉的,那此时的话呢,相当于我们服装后面需要一个表明,那你给我上来整了一个排序的order蒙了是吧?所以说呢,这就由于我们这个数据库的这个表名和我们这个呃,叫关键字也好,叫保留字也好,这个名呢就冲突了。导致呢,就是没事给自己找了点事,那导致呢,你看我们执行还出错了对吧,那非要用怎么办呀,你把这个order这块呢,你加上一下这个叫着重号。就是我们键盘上一左边那个符号加上以后呢,你再去执行,这是可以的。对吧,咱们前面讲这个着重号的时候呢,实际上呢,给大家说过这样的这个问题。那这块呢,你就尽量的,你就避开这个事儿就可以了。好,下边提到说保持字段名和类型的一致性,这块呢,大家可能理解呢,还不是特别到位,那我们看一看后边的这个意思。
11:06
说呢,在命名字段字段啊,并为这个其指定数据类型的时候呢,一定要保证这个一致性,比如说呢,数据类型在一个表里呢,是整数,在另外一个表里的时候呢,就别变成字符形了,这块说的是什么意思啊,大家你可以想象想一下这个咱们前面讲这个多表的查询。我打开。你看啊,咱们讲这个做表查询的时候呢,咱们提到了这个关联的一个条件了,比如说员工表里边是不是有这个底盘卖地啊,那这个部门表里边儿呢,也有这个底盘ID,那此时呢,咱们相当于就在说说,既然呢,你这表示的都是叫部门的一个ID了,那建议呢,你这个名跟这个名呢,建议呢就相同了。啊,同时的话呢,建议你这个字段的数据类型和这个段的数据类型呢,就也一样了,诶这个呢,就是我们这里所提到的叫一致性的问题。一致性的问题,咱们到后边呢,讲到这个约束的时候。
12:04
约束,在这儿讲到约束的时候呢,咱们还会给大家去提到这个叫一致性啊,完整性啊等等这样的一些问题,所以暂时呢,大家先清楚这样个事儿就行,那为什么他要求一致性呢?你想想,本来你表示的就是同一个字段了,你非得这块呢类型,比如我们这呢就要的in特平,你这块呢非要这个water差型。那倒不是说呢不能用,那你想想我们再去多多表这个连接的时候呢,是不是就会涉及到我们要把这个word串这个类型字符串的在隐式转换成int类型,对吧?那你这样转话呢,每次如果数据还挺大的话呢,是不是这个效率肯定就比较低啊。那有这样的一个问题,OK,行,这个呢,我们就稍微的给大家提了一下,这呢就是我们说的这个叫标识命名的一个规则是吧,需要大家必须要遵守的,OK,必要遵守的。下面呢,提到说MYSQL中的这个数据类型,这个数据类型呢,呃,只有在我们造这个表的时候呢,表当中涉及到了一个一个的字段,字段呢是有对应的数据类型的,咱们要创建数据库的话呢,还涉及不到这个数据类型的问题,那暂时呢,咱们先放放它,那下边呢,咱们看看如何去创建数据库。
13:12
那咱们先来看如何创建数据库,然后再看数据库的一个管理,比如说怎么修改一下啊,或者怎么删除数据库啊,对吧,诶这样的这个行为。好,那么咱们过来啊,这个咱们叫创建和管理表啊,我把整个的CTRLC一下先呢,把我们这个文件呢,给它保存一下。创建和管理表好,然后呢,CTRLS。啊,在我们这个位置CTRLV一下保存行,那这个呢,我这个就放放这也行,那接下来我们说其中的第一个问题啊,这我们叫哎创建。创建和管理数据库对吧。嗯,这个问题行,这里边儿我们先说第一个问题,叫如何创建数据库。哎,先说这个问题,如何创建数据库?来,我们看一下这个课件。
14:01
那如何去创建数据库呢?当然你会发现呢,我这呢列了三种方式,而且呢,还推荐我们用第三种方式,咱们看看这个区别是什么,首先这个呢叫create database啊,这个非常简单,创建数据库那就直接创建了,然后下边呢是创建的时候呢,还指明了一下它的这个叫字符集是吧。然后下边这个呢,呃,其实呢,你也可以指明这个字数集,然后同时呢,它多了一个叫if not exists。If not exist,诶这是什么意思啊,来咱们其实我课件里边都有写,咱们直接呢在这块来给大家去说明。好,那现在呢,咱们想去创建这个数据库了,对吧,那咱们这块呢,就来写一下,嗯,我把对应的这几个方式也说一说,那叫方式一是吧,那叫create。Data,那这块呢,我们就写一下,比如叫my test1。哎,我通过这个名呢,去创建的叫MATE1这样一个数据库,好,然后呢,我们直接呢,就选中执行。就成了这块呢,大家需要注意一个小细节,就是说我们创建数据库,其实呢也得需要权限。
15:05
就相当于呢,我们干什么事儿呢,都得有对应的权限,这样呢,就相当于你得有创建数据库的权限,那咱们权限这个事儿呢,咱们在上篇呢,先不讲,下篇的时候再重点说,那此时的话呢,为什么能成功呢?你注意咱们是不是叫入用户啊。这哥们可是个跟用户,他的权限是最大的,他要都没有权限的话,那就没有人能有权限了,对吧,所以这个呢,自然而然呢,他是就能成功的啊这个当然你注意这样一个小细节就可以了,好那么这样创建完以后的话呢,我们实际上是不是就可以叫show,呃,就是如果说咱们使用的是命令行的话呢,你就得是用叫show data basis,通过这样的方式呢,我们查看一下是不是创建成功了。你看叫my test1是不是就创建成功了,大家如果在这块的话呢,你可以把光标调到这个root这块,F51刷新你发现呢,是不是就看到它了。OK,说明呢,我们这时候呢,就创建成功对吧,这叫收这个data这个一会儿我们再专门说这个这个问题,像这是说的这个事儿。
16:03
然后第二个方式,哎,我们看一下这个叫方式二,这个方式二的话呢,叫create。你看data base这个呢,我们叫my test2吧,它后边这块呢,提到一个叫char character。哎,Character set,然后后边呢,写一个叫做字符集,叫做字符集,这个字符集是怎么个回事呢?大家你看一下我们这块,那我这样子一下啊,这个呢,其实也是咱们一会儿要讲的这个相关的一些这个具体的操作了。嗯,什么操作呢?大家看一下,我叫show,我写到这儿了,Show叫create。Create叫就是其实就是我们受后边呢,你把这个呢,完整的写出来。就这个意思,我粘过来让大家体会一下,其实就是在创建这个语句之前呢,加了一个受而已,好,我们选中了一只行。这个有点长。有点长,这个字呢也稍有点儿小,这个大家可能看起来稍微有点这个吃力,来我们看一下,我们现在呢,创建的这叫my test1这个数据库是吧,我们写的很短,但是你发现的创建的时候呢,这个语句呢,貌似有点长,就是如果大家看着确实有点费劲,因为我看着有点费劲,大家看可能字就更小了,那怎么办呢?我在这儿看一下这个是不是能大一点。
17:19
嗯,我们通过这个my circle-U叫root用户杠PABC123,好这呢,我们是通过命令行的方式呢,咱们登录一下这个这个8.0的这样一个数据库,对吧,然后接下来呢,我们去收一下叫data basis。OK,然后这里边呢,是不是就有我们这个叫一,咱们可以呢,叫show一下,我叫create。这个data basis create data叫my test1好这样,那这块呢,是不是看着这个比这块呢,字能稍微的大一点啊,那我们就在这看。嗯,在这看,咱们现在呢,是查看一下我创建的这个数据库,它的一些信息,你看啊,我创建一个数据库叫这个名儿,这里边儿呢,你看有一个默认的字符集叫什么呀?UTF8MB4,那这个比较规则呢,也是UTF8MB4,然后同时呢,还提到了,诶其他这个这个我们就先暂时不管了,这里边呢,主要大家需要关注一下,就我们这个字符集。
18:18
那为什么我们这个字符集是它呢,实际上呢,是跟我们这个数据库服务器,它默认情况,这个颜色不太好看了啊,这个数据库服务器呢,咱们在这个第一开始讲这个安装的时候呢,提到过,就是我们可以受variables like是吧,通过这样的方式。Variables叫like,然后呢,我们叫character,下划线改分号,还有印象吧。通过这样的方式呢,我们是不是可以去查看一下咱们这个数据库,你看这个数据库,哎,包括这个server端,咱们是不是用的叫UTL8MB4是吧,那这呢,默认情况下呢,咱们是U8MB4,那么在我们去创建这个数据库的时候,注意听,如果我们没有显示的指明这个数据库它使用的字符集,那么就会使用我们默认的这个数据库这块呢,用的这个UTF8。
19:09
啊叫M4,所以你看这默认的是不是就是MB4。那这呢,清楚这样一个事儿,哎,清楚这样一个事儿啊,那这呢,其实还有一种小小小细节的一个事儿,就是我们这呢,可以用这个杠G的方式。你看这样就换了一个维度来看啊,这database是它,然后呢,创建的语句呢,哎,是这样子的,哎,换了一个维度啊,这个角度来看啊,这个都可以啊,行,那我们再回过来。相当于呢,咱们这种方式呢,我在这写一下这个使用,哎,这个创建的此数据库。使用的是这个默认的是不是字符集啊,啊,默认的字符集就我们对拉贝那个字符集,那这样的一种方式呢,相当于是不是叫显示的。指明了。要创建的数据库的字符集。
20:01
这意思吧,好,那这块呢,我刻意的呢,我写成叫JBK,就是跟咱们这个UTF8MB4呢,给它岔开这个JBK这呢也是我们的一种汉字能够识别的这个字符集好了,那我们现在呢,选中以后呢,咱们走一把。是不是创建成功了,好,那这块呢,创建成功以后呢,我们同样呢,是不是可以使用这样的语句呢,去做一个查看呀,那这块呢,咱们,诶这个呢,咱们就这样吧,我CTRLC一下,咱们放到上边这块,就是大家呢,按照我这个呃逻辑顺序呢,大家去查看就OK了,然后这块呢,我们也可以呢去查看一下,只不过这块我们改成是这个二就行是吧,哎,就这样去写,那这块的话呢,呃,这个咱们还是在这看能够更清楚一点。或这个点这个右键啊,点右键还不行,行,那我们就把这个改成是这个二吧。这样意思一下是吧。好大家看,那么这时候呢,因为我们创建的时候呢,咱们是指明了它的这个字符集了,所以说呢,我们此时创建的这个数据库呢,就是咱们指定的叫JBK了。
21:01
这个应该很清楚,因为你显示指明了嘛,那就用你自己的。OK是吧,诶很好理解,行这个呢,就咱们说的第二种这个创建的这个方式。那这就过了,然后接下来我们说这个叫方式三,方式三的话呢,看一下它这里边多了一个叫if not exists说呢,如果不存在的话,诶这个是什么意思啊,大家你看。我们刚才这块呢,创建这个my test2的时候呢,显然咱们当前这个。通过我们叫show里边,咱们在创建之前是不存在它的,哎,我们创建的就成功了是吧,那如果我们现在要是再执行一下这个语句。大家注意看,我要是再执行这个语句的话呢,一直行,实际上呢,就给我们报错了,说呢不能够创建成功,因为呢已经存在了。相当于呢,就是如果这个数据库本身要存在的话呢,我们再去创建这个系统呢,就会报错,那我们能不能保证说创建的话呢,它不报错呢,这块呢,就有这样的一个情况,叫create database叫衣。
22:00
Not啊1EXIST。那exist呢,咱们讲这个此查询的时候呢,是不是谈过这个关键词是吧。好大家看,那么这个加上以后呢,是什么情况,我们刚才呢,没有加的时候报错了,你看现在呢,我们再去执行。找一下。大家你看此时的话呢,是不是没有没有什么呀,没有报错。对吧,没有报错,那没有报错的话呢,大家可能会想,那这时候呢,我们要创建的话呢,是把刚才那个给覆盖了还是怎么回事呢?嗯,这个呢,我们目前看好像看不出来了是吧,那我们这样一下,我把这个呢改成叫UTF8。我改成U8,那么来咱们再去执行。对吧,我这执行了,那执行完以后呢,我们怎么着啊,我可以执行这个叫create database my test,二来咱们走一下。大家看,如果说呢,我们这个语句呢,把上边这个语句给覆盖了的话呢,是不是我们这个呢,应该写的叫UTF8呀,而事实上呢,现在写的叫JBK,那说明用的还是当初我们造这个数据库的时候呢,指明的这个JBK杨IG呢,就是这样一个场景说如果这个要创建的。
23:14
这个数据库呢,已经存在,则创建失败。改则创建不成功嘛,咱别说失败了,好像说会报错似的,则创建不成功啊,但不会报错。是吧,也有这样一点,那么接下来的话呢,我们就会想,那如果说我们要是创建一个数据库,这个数据库要是本身不存在呢,我写个my test3,那我同时指指明的是UTL8,来我们选中的执行一下。可以啦,然后咱们再去show database看一下,你看是不是就给我们创建成功了。哎,那没有问题,所以这块呢说一下说呢,如果要创建的数据库呢,不存在,则创建成功。这个不存在。要创建的数据库不存在,则创建成功行,那么基于这样一个点的话呢,咱们建议大家以后再写的话呢,是不是我们就用这个方式三这样一种方式啊,所以这呢是一个推荐的,就是你要是不在的话呢,也能创建成功,要在的话呢,就不受影响,那也不会报错对吧?那我们推荐呢,大家用这样一种方式,那关于我们后边这个这个character set的话呢,也推荐大家呢,把它加上。
24:23
也推荐把它加上,为啥呢,因为我们。这个担心用户呢,在这个呃,这个这个相当于指明我们这个呃参数的时候呢,当然你要是这个诶我们说呢,就是MYSQL8的话呢,默认都是U8的,那如果说你要是企业当中,咱们说呢,现在用的5.7的版本的比例还是比较高的啊,因为对于数据库来讲的话呢,这个企业呢,去更换数据库版本的这个动力啊,是非常弱的是吧,远要低于我们去更换这个呃,编程语言的这个一个动力,现在企业呢用的比较多的是5.7,那5.7呢,咱们说都得需要去改成这个显示的,改成这个UTF8啊,因为它默认的用的是那个拉丁是吧。
25:01
那如果说呢,这个数据库里边不是UC8呢,就会导致我们在创建库的时候呢,它就使用默认的那个拉丁了。所以呢,为了保证呢,就是他用的是U8,我们可以考虑在创建数据库的时候呢,显示的把这个呢也给它加上。也给它加上好了,这儿呢,是不是就我们讲的叫创建数据库啊,我们把这个事儿呢,就说清楚了。好,那么数据库创建呢,完成以后呢,我们接下来看一下关于数据库的基本使用,你也可以理解成呢,关于这个数据库的我们称为它叫管理是吧,诶这这样的一个情况,那接着我们直接呢,通过这个,嗯,这个咱们笔记的方式呢,给大家呢去做一个说明,1.1呢叫如何创建啊,那我们再接着呢,叫A1.2叫这个咱们称为呢,叫管理数据库吧,那这样一个词好管理这块呢,涉及到哪些操作呢?这个我们其实刚才呢,这也做了一些了,咱就直接拿过来,就一边说给大家一边呢去写这个注释的,我们创建完数据库以后呢,我们可以通过这样一个指令叫受data basis去查看咱们当前这个连接当中有多少数据库。
26:06
啊,这个呢,就要查看当前。连接中。的这个数据库都有哪些?行,这样的话呢,是不是就都给我们列举出来了,这呢是我们说的,也算是这个第一个指令,这个完了以后呢,接下来我们就可以指定咱们要使用的某一个数据库,那你比如说像咱们如果在当前这个场景下的话呢,我上来我就select星。Select星from一下叫employees。那我上来就这样写的话呢,其实它是会报错的。你看这块呢,说我们这个MY t1里边没有主要原因呢,咱们现在呢,你通过这儿能看到它在其他的这个数据库下,对吧,所以这样呢,先不对,咱们先需要呢,是不是指明,或者说就是指明我们要使用哪个数据库,或者说你可以理解成叫切换数据库。对吧,叫切换数据库,我们使用的叫做use use谁呢?那你看你想用哪一个了。
27:05
看你想用哪个了,比如我想用这个叫MY2。那我们就这样的去操作对吧,来我们你看这个位置啊,这个目前呢是MY t1了,我这块一直行,它就切换成了叫MYT2了。这呢就叫做这个切换数据库对吧,好,这是它,那切换数据库以后呢,我们还可以做什么呢?叫查看,叫当前。数据库中这个都有哪些表,或者叫都存有。啊,或者叫查看当前数据库中这个保存的吧数据表。都有哪些这个呢?我们叫show tables,诶通过这样的一个结构去实现,那show tables我们执行一下,大家会发现呢,诶没有,哎主要原因呢,我这来一个F股刷新一下,主要原因呢,就是我们这个数据库下呢,咱确实也没有去创建表是吧,是这个意思,那比如说呢,咱们再换一个例子,你可以去use一下,比如我们叫这个艾特硅谷DB。
28:01
那我们这时候呢,再去use一下,然后这时候你去收这个tables,显然呢,我们下边呢,这不是创建了很多张这个表,就能够进行一个查看了。没问题是吧,好,这是我们说的这个事儿,然后的话呢,我们还有一个指令呢,就是查看咱们当前使用的这个数据库。使用的这个数据库,那这个怎么做呢?这个我们叫做这个select,哎,Select这个data啊这呢算是一个函数了,来我们选中呢,这样呢去做一个执行啊,当然你也可以在后边呢,是不是完整的话呢,就哎这个from倒一下。对吧,前面就是我们说这样一个函数,OK,那选中以后呢,我们这样去执行,这不就出来了,叫艾特硅谷DB,那就相当于你上面呢,这不叫使用某一个数据库,这个呢,就是有可能你现在不确定是在哪个数据库下呢,你可以通过这样的指令来做一个查看。那这里做一个查看,那查看完以后呢,如果我们切换到当前数据库下,你这样写就是当前数据库的这个表,咱们还可以呢,就是查看指定数据库下都有哪些表。
29:03
查看指定数据库下这个保存的数据表。咱们上面这个呢,是不是叫show tables是吧,那这呢叫show tables from一下from谁呢?这个你可以指定其他的这个数据库,比如说我这块我就写上叫MY。Circle。MYSQL是吧,那from MySQL这个数据库了,然然后呢,我们选中呢,一执行大家呢,此时就能看到这个MYSQL这个数据库下呢,这样的一些表,你看这块打开之后呢,跟这块呢,诶看到的其实是一样的。哎,其实是一样的行,那相当于就是什么呢?完整的结构写的话呢,其实可以理解成这样写,只不过呢,如果你要是已经在这个数据库下了,你就可以省略后边那个from了。对吧,是这个意思,然后呢,这块大家你想这是不是图形化界面的方式,也只不过呢,就是咱们相当于呢,就是把这个相对图图化界面呢,它把这个指令呢都执行好了,当然我们要是点这个下拉框的话呢,其实它这块呢,就是在调用我们这样的一个指令,把它呢以图形化界面的方式呢,给我们呈现出来了而已。
30:06
对吧,那就我们说的这样的一个意思。好,那这呢,咱们相当于是一个叫管理数据库的一个操作,那接着呢,我们再来看一下这个1.3 1.3呢,我们还可以什么呢,叫做修改数据库。叫修改数据库。注意,虽然呢,我们会给大家去讲说如何呢去修改这个数据库,但是。但是什么呀,咱们一般可都通常不会去改的啊,哎,通常不会去改的,你像数据库下边有好多的表表呢,有可能达到几百张表,你现在突然改个数据库,这个成本呢,是非常之高的,OK。行,这是我们先说清这个事儿,嗯,但是你要说什么时候能改呢?就是我们刚造完这个数据库呢,发现这个字符集错了,我们此时呢,还没有表的存在呢,你诶可以改一下是吧,这时候成本还是比较低的,那如何去修改呢?或者我们改数据库都改什么呢?主要就是更改这个数据库的,这个叫字符集。
31:01
Al database起个名,然后character set,哎,这个指定点这个字符集就可以了。来这个呢,我们说一下。讲是吧,更改这个数据库的这个字符集,咱们前边的话呢,这不是其实还讲了一个叫查,这个我们也写着注释吧,这个呢叫查看。查看叫创建数据表的这个结构。数据,呃,这个数据库吧的这个结构好,那么咱们呢,也是先我CTRLC一下把它呢拿到这来,咱们上面呢,是不是创建了一个叫my test2。叫ma彩二,咱们创建它的时候呢,其实用的是这个JBK,来我们这块呢,先来查看一下执行这个字比较小,咱们就先在这块忍一下了啊,你看我们现在创建这个麦菜单呢,是不是用的这个字符集呢,是JBK,我现在呢想把它改成这个UTF8。怎么改呢?叫alter。Al data base。嗯,My test2。
32:01
对吧,然后呢,我们直接呢,就写character set,我写成utf好吧,诶这样的一个情况,这个我写错了。Alter加贝斯起个名。对吧,然后character set指明它的这个字符集,哎,相当于把这个create呢,改成是这个al这样的一个方式行,然后呢,注意这块你就别写这个if not exist了,咱们al呢,肯定这个得在是吧,来我们选中呢,去做一个这个执行。可以了,执行完以后呢,我们再去这个收一下,大家就会发现呢,此时它是不是改成叫UTF8了,相当于呢,我们这个修改呢,就成功了。哎,这个就成功了,好,这个呢,我们就修改这个数据库,一般呢,我们要改也是改这个字符集。啊,有同学说,那老师呢,能不能去改这个数据库的名呢?能不能改数据库名呢?我下边这块呢。嗯,我在这块呢,应该是,哎,我看这写的。哎,这个倒没没在这儿写是吧,这个数据库名的话呢,大家注意诶,我写到哪儿了啊,在这啊。
33:02
数据库名的话呢,哎,通常的话呢,我们是不能改名的,但是大家呢,有的时候能看到一些所谓的可视化工具,他们可以改名,它实际上这个操作呢,是创建这个新的库,然后呢,把这个所有的表呢,又复制到我们这个新的库当中,然后再把这个旧的库呢给删除掉了,相当于它这个成本呢是非常高的,所以这块呢,大家也注意我们这里边儿所谓的修改啊,咱们就不会去改这个数据库的名了,大家在一开始创建的时候呢,就这个确定好。那就确定好,其实像这种修改呢,都很少的,因为咱们在创建这个数据库,数据表的时候呢,通常都会有这个具体的开发当中的这个需求文档,这个文档当中写的都非常的清楚,哎,让你怎么去造这个库,这个库呢,字符集是什么,怎么造这个表,表的字段都有哪些类型是什么,有哪些约束,有没有默认值,写的都非常清楚,你就严格按照这里边儿这个规则呢去创建就可以了,一般呢,轻易我们不会用这个修改,尤其是库的这个行为的。
34:00
这个大家要注意一下。好,那么接下来的话呢,我们能够修改库,下边一个咱们是不是还可以去干什么呀,叫删除数据库啊。叫删除数据库对吧,那删除数据库呢,你看我这块也写了俩,一个呢直接删,第二个呢,就有一个叫if exists,那推荐呢,我们用的这种方式,来我们去说一下。要删除。数据库好,这个呢,我们说一个这个方式一,方式一的话呢,就是直接删了,那我们这块呢,就可以叫哎job注意删除结构,删除库啊,删除表啊,删除列啊,删除约束啊,我们都用的这个job。Drop database,那叫my test,比如我们叫my test1吧。好,选中以后执行。那这时候就干掉了,干掉以后呢,你再去咱们执行的叫show data。那查看一下当前的这个数据库啊,一执行是不是就已经没有我们这叫my test1了,没问题是吧,那如果说我们这时候再去执行,大家你会发现呢,它就报错了,因为你这个数据库呢,本身不存在,所以说呢,咱们是不是推荐咱们用的方式呢,是这个第二种啊。
35:07
那第二种方式drop database,我们说叫if exists。就是如果你这个库要是存在的话呢,就删除,如果不存在呢,那就默默结束。啊,不会报错,你看此时呢,我们再去执行。那这段直行,它这警告就不算,然后呢,就是你在这个在这里边大家可以去演示一下啊,你会发现呢,它其实可演示,那说一下吧,CTRLC一下,然后放到这儿对吧。啊,没过来再重新的CTRLC。好的。嗯,这样是吧,好,我们这块操作,但是你会发现呢,是不是叫query OK啊,那就意味着它这时候就没有报错,但是如果呢,你要是把这个if exist呢,咱们把它删掉,那这时候我们再来,你看我这个还有声音呢,就相当于是给我们提示了一个error。哎,所以呢,我们建议呢,是不是加上这叫if exist,就是使得我们这个运行的时候呢,还不会报错这个呢,就我们推荐的一个方式二。
36:06
嗯,这个呢,我们解释一下说如果要删除的数据库存在,则删除成功,那如果不存在。则则呢,就是相当于是默默结束呗。那这个是咱们用自己的话来理解,默默结束,不会报错。那就意味着你上边这种我们说呢,就是如果要删除的数据库存在呢,则删除成功,如果要是不存在呢,则是不是报错呀。那所以说咱们才不推荐用这种方式,咱们就用这种方式了,那现在比如说我们在CTRLC一下,我再复制一下,咱们这块呢,写个二,相当于呢,这是我们这个数据库呢,它是存在的,那删除成功来找一下看看是不是成功。可以了,再去受data basis运行,是不是确实把MYS2呢给删掉了,OK,没有问题,行,那么这样的话呢,我们关于这个数据库的这个操作的话呢,咱们关于它的一个创建它的一个呃,基本的操作,还有这个修改删除,咱们就说到这儿了,大家呢,下来可以练一练,注意这块练的话呢,拿你自己创建的这个数据库去练,你别把这里边儿的其他的数据库说,诶老师啊,这个S数据库和这个MYSQL数据库啊,我看着就。
37:16
呃,不太爽是吧,我就想把它干掉了,哎,注意哥们儿,千万不要干掉啊,干掉之后呢,就麻烦了,那就麻烦了,所以说呢,大家你听过一句话叫什么从山库到跑路是吧,那删库到跑路,因为这个删除操作呢,咱们说默认情况下呢,它是不能够回滚的啊,就是你要删掉的话呢,真的就删掉了回不来了。默认情况下。当然有的时候我们可以去做这个备份,但是默认情况下它是没有备份的,这个一定要慎重啊,删表删库这个都是非常慎重的行为。OK,你这块拿你自己造的表去造,造的库去演示好了,那么关于库这块呢,我们就说到这儿。
我来说两句