00:00
好,那么关于我们如何去创建一个表的方式啊,咱们就说到这儿了,是需要所有同学呢来掌握的啊,因为呢,如果你要是去实现这个MYSQ操作的话呢,比如说公司中这块呢,新建了一个项目,我们通常呢,需要去创建个表,对吧,那这个表呢,你需要呢,能够掌握如何去创建啊,如何去创建,当然了,我们说一般对于你要入职的新手来讲呢,通常这个创建表的操作不用你做,就是你通常刚过来的时候呢,还不会让你做这样的一些基础性的工作,更多呢,就是你基于现有的这个业务呢,呃,你去呢,做一些这个查询呀,这个增删改呀,是吧,做这个事儿啊,做这个事儿哎,创建的话呢,这个相对来说是等你这个渐进式的啊,再去接触到这个表的这个创建,包括库的一个创建啊,就是通常呢,一开始的时候呢,这个项目经理呢,可能都已经造好了。好,那么我们接下来呢,就看一下有了这个表之后呢,我们还能够做什么事啊,这是咱们讲的这个DDL了,咱们这一张呢,叫创建和管理表是吧,那下边呢,我们就看到所谓的这个管理都有哪些具体的这个操作了。好,下边这样一些操作呢,我们涉及到这样一些,首先呢,我们叫做这个叫修改表啊,这个叫修改表,我就把这几个呢,先统一的都列一下,都可以理解成呢叫管理表的一些行为,那修改表是其中一个,然后呢,还可以呢,叫重命名表啊,这呢也是一个,然后呢,第五个我们还可以呢,叫删除表,对吧,哎,也没问题,然后第六个呢,我们还可以呢,这个叫清空表,诶我们清空表,那我们呢,就接下来所谓的管理呢,主要呢,就讲这样的几个事儿来,我们一个一个来说。
01:31
首先的话呢,我们这个叫修改表,修改表呢,就是针对我们已经造好这个表呢,我们做一些修改,对吧,那这个修改的话呢,又分成哪些行为呢?你比如说我们这个表呢,已经造好了,但是咱们觉得哎呀我丢了这个字段了,那我们可以呢,再去加一个字段啊,所以说我们第一个呢,就是添加啊一个字段。没问题是吧,好,这是3.2添加一个字段是可以的,然后呢,你还可以呢,叫修改一个字段,很同学修改字段修改啥呢?你像这个字段的话呢,是不是可以呢,去修改它的这个,比如说数据类型啊,它的这个长度啊。
02:07
对吧,还涉及到这个默认值啊,只不过这个默认值呢,我们暂且呢先不讲,讲约束的时候我们再说啊,这是我们说的这个3.2,然后3.3这个字段呢,我们还可以呢,去干什么呢,我们叫重命名。重命名一个这个字段,这个字段名起的不太好,重命名一下是吧,还可以做什么呢?我们还可以去删除一个字段,哎,能加呢,我们就能删对吧?好这呢,就是我们说修改表里边儿咱们用到的这样的几个操作。用到这几个操作好这块我们先怎么着,也是咱们先看看咱们这块呢,造的这些表啊,我这块F5刷新一下啊,相当于在这块看一眼,咱们这会儿呢,造了一个叫MY。嗯,是造的,它不我我我搂一眼啊,咱们呢,就是de一下叫MY。好把它呢,先选中我们看一下好对的,这就咱们一开始上面是不是白手起家的方式呢,造的这样一张表,好我们就拿它来说事,这呢一共有123是不是三个字段啊。
03:04
三个字段好在这个基础之上呀,我说现在我去添加一个字段,怎么做呢,这个修改表呢,这个行为呢,他用的是什么呢?我这样写一下,修改呢,就叫做alter,这个单词呢叫alter,这个叫table。所以说大家你看你要本身你的母语是英语的话呀,我说你学这个SQ,其实感觉还挺简单的,为什么呀,你看上面我们说如何创建数据库。如何创建数据库?英文怎么说呀?是不是叫how to create create database,那冒号啊,Create database,你看是不是非常简单,然后下边这块说这个how to create table,下边啊,Create a table,你看就跟说话一样是吧,那下边这个呢,说how to outter table,然后下边就是out table。啊,你看你要本身母语,要是英语的话呢,还是挺占便宜的。所以说你看在这个美国当中,我记得以前我看过一个报道,说一个四岁的小孩啊,就能够编写这个程序了,因为当时苹果呢,这个起了没多久,然后呢,他就这个编写了一个苹果这个iOS这个系统当中的一个APP啊,那时候呢,审核还没那么严呢啊,就是直接上线了啊,四岁就开始编了,因为他那时候呢,相当于也能够基本认识一些这个这个这个他们的单词了,是吧,你要中国的小孩,你让他四岁去这个编程这个呃,可能性就比较小一些啊,首先的话呢,这个英文单词呢,可能都不认识是吧?哎,就这样一个情况。
04:30
好的,那我们拉回来。那这块呢,我们要去修改一个表啊,刚才说到了,只要修改呢,都是叫out table,行,我们可以这样叫out table,谁呀叫MY。对吧,叫他,然后I我们要增加一个字段,增加一个字段后边这块写的话呢,就跟大家呢,你正常这块我们去声明一个表啊,就创建个表的时候呢,你写那个字段一样的一个道理,比如我们加上一个salary吧,表工资是吧。Salary这个salary的话呢,公司我们说可以带小数点,注意我们把这个double这块呢,稍微提一下,咱们现在的话呢,只是先暂且用一下double,后边呢,我们讲这个真正的数据类型的时候,精讲的时候,咱们说一般浮点型在开发中都建议我们用这个这个定点数的是吧,就是用那个DEC啊,咱们现在先用一下double。
05:19
因为大家呢,学习过其他编程语言,可能对这个double呢,还说比较有感情一些,所以相对来说比较熟悉,咱们就暂且先用一下它啊,然后这个double后边呢,我可以写一个十逗号二,这个是什么意思呢?就是说呢,我们一共咱们知道这浮点类型是不是就是几点几啊这个意思,然后呢,这个后边这个二呢,表示的就是小数点后边呢有两位。啊,那前面这个十呢,就是一共有十位,那前面相当于是不是整数位有八位啊,然后呢,小数位有两位加一起呢,就是十位的意思。能理解吧,哎,就这个道理,好I的一个salary double型的一个,它咱们这块呢,也不写默认值啊什么的,咱们先暂且忽略掉约束的问题,好,此时呢,我们选中做一个执行。
06:03
大家看是不是就成功了,成功之后呢,我们再去DEA一下啊,你会发现呢,是不是就添加成功了,那我们这时候呢,强调一下这种写法呢,说默认是就添加到。哎,添加到是不是,哎表中的。是不是最后一个字段啊。字段的这个位置什么意思啊,就是我们这时候呢,加了一个字段,这个字段的默认呢,就是在我们的这个现有的三个字段的这个后面,就是最后一个字段出现的,那除了这种情况呢,还有什么其他的情况吗?这个我们看一下这个课件在这里边呢,你看后边呢,还可以去加这个叫first或者叫after一个,谁也就指明你一个字段呢,你想把它添加到哪个位置上。添加到哪个位置上来,这块我们稍微的演示一下。这个al一下这个table,我们叫MYE还是E是吧,然后我们艾特一下,再加一个什么呢?我们加一下这个叫哎phone吧。Phone电话吧,嗯,Phone或者叫phone number,那叫他,然后呢,Phone number呢,这个一般呢,咱们也都是电话号码嘛,这个咱们也得是用这个字符串呢去存储,注意别用这个,呃,这个这个int类型啊,别用int类型去存,我们用字串去存,然后这块我们比如写个20好添加它完以后呢,我们这时候呢,来一个比如叫first吧。
07:21
那就意味着我们把这个字段呢,加到我们这个表里边儿的ID之前了啊,因为它是作为第一个出现的,来我们走一下。可以了,然后我们在一块儿在DC一下,好,但是你会发现它是不是它处在第一个位置了。哎,就是这样个道理啊,就这样个道理,好,这是我们说的它,然后呢,我们可以再去来一下叫al一下,这个table叫MYP,然后at一下,咱们加一个叫email吧,邮箱。然后呢,也是一个work差,呃,邮箱呢,可能要长一点,那我们整一个比如说45啊它对吧,呃,这个完了以后呢,我们还可以呢,让他去after。After指定的,比如说我们放在这个e name的后面。
08:02
啊e name啊,指定这个这个字段的后面,那就放在这个hair的前面了,来选中。执行。可以啦,然后再去这个DA一下。你看此时呢,我们是不是放在它的后面,然后这个在前面了,行,这就说清楚了啊,这个我们就要添加一个字段啊,就搞定了,然后下边呢,叫修改一个字段,这个修改字段的话呢,就是改它的数据类型啊,它的长度啊,这个我们先忽略掉,那就改这个数据类型和它的长度这块注意听。注意听,我们通常会去修改一个字段的数据类型吗?你比如说我们这个email啊,我这块呢是一个watch,我想改成是一个date类型,想改成是个in的类型,注意这种改数据类型的操作呢,一般咱们都不会去做。一般都不会去做,你想想你要是把这个字段类型给写错了,定义错了,这是多大的一个失误啊,你像这个email,那明显就是个字符串,你怎么会去写int类型呢?所以一般的咱们都不会去改类型的啊,这是就是一般的答案写不错啊。
09:03
第二种情况呢,是什么呢?嗯,你比如说我们这个吧。那这个呢,想声明是什么呢?比如我们这里边已经添加了一些数据了,然后呢,我们要改的话呢,比如说改成把它改成是一个我差。本身这里边儿已经有一些double型的数据了,然后你给它改成war差的话呢,你想想本身这个可能数据呢,改也不适合改。对吧,也不适合去改,包括呢,我们要是这个我差类型的,你让他改成一个double类型,里边要有些数据呢,改其实也会不成功嘛。那因为你不能保证把这个现有的这个字符串呢,给它改写成是这个纯数值类型的是吧?哎,总之的话呢,就是我们在开发当中,这个数据类型咱们一般不会去改,你要改的话呢,有可能会去改这个长度啊,这个倒是有可能,比如说呢,我们这块定义它的这个长度是15,现在添加一个员工,这个长度呢,可能比他要长,你不能说因为这个长度不够了,你这个员工呢,就不入不入职了是吧,不合适,你可以把这个呢长度给他改一下啊,就这样来处理,我就alter一下这个table。来是吧,这个呢,修改叫Mo five。
10:03
Modify啊,Modify就是修改的意思,改谁呢?我们改这个E,这个name,我把它改成是这个war,差改成25。你看现在是不是15啊。哎,我把它改成是一个25,好,此时呢,我们选中,这时候我们做一个执行。我们再去这个DEA一下。好,这时候大家你会发现是不是它这个长度,它就变成25了。哎,长度就变成25了,这个位置呢,就是这个默认值,咱们可以在这个修改它的同时呢,实际上呢,咱们也可以呢,我就在这个,诶我我这样一下吧,我CTRL一下。再放下来,比如我们这块呢,再给它调成一个35啊,这个叫default。Before的话呢,这个我们就暂且写一个叫AAA,这是我们改name的是吧,Name呢我们就行,我就先这样一下,这个意思呢,就是我们给它设置一个默认值的意思,在修改这个字段的时候呢,还可以给他去加上一个默认值,但是暂且呢,大家先这个我就这样一演示,大家你一看就完了,后边我们讲约束的时候呢,专门再去说默认值。
11:03
来,我们再去DS一下。你看这时候呢,是不是有这个默认值了,那这个默认值影响什么呢?就是当我们去往这个表中插入数据的时候时候,如果你要没有指定这个字段的值的话呢,它默认的就是AAA。哎,就是这个道理。行,这过了啊,诶过了,然后下边的话呢,说我们去重命名一个字段。哎,重明明一个字段,嗯,举个例子吧,举个例子,比如说我们这个叫salary,把这个salary呢,我们改成了叫呃,Monthly salary指明就是它的这个月工资是吧?哎,重命名一个段好,还是那叫alter。Table叫MY重命名,那这个怎么做呢?哎,这个我们用的这个关键词呢,叫做这个change。啊,叫做这个change,然后呢,把你这个salary,哎,我们放到这儿改成呢叫manly,哎salary哎这样写后边呢,记得你把这个类型呢,也需要给它写上,哎,我们就这样来处理的。啊,Change这儿呢,是你这个旧的这个字段名,这是新的字段名,这儿呢这个类型啊写到这儿来,我们这块再执行一下。
12:07
可以了,然后我们再去这个DA一下。哎,但是你看此时呢,是不是这个就修改了。哎,这个我们就修改了,哎,那么大家你再看一下这个行不行啊,比如我们再去改一下,叫alter一下。Table叫my change。嗯,咱们再换一下吧,比如这个email。Email是吧,这个email呢,我们改成了比如叫my email,那后边这块呢,是不是叫watch char这个呢是45,我改成个50,我们能不能在改名的同时呢,把它这个范围也改一下啊。走一下。好可以啦,然后我们这块呢,再去DA查看朝代看。是不是也可以呢,在改这个名称的同时呢,把它这个长度呢,也可以做一个修改呀。也可以修改,相当于呢,这个操作里边呢,诶是有这个modify这样的一个行为的是吧?啊这个大家注意一下,好这就过了,然后下边呢,我们可以删除一个字段啊,这个al。
13:06
Table啊MY,那删除的话呢,其实诶这个我们前面讲过如何删除一个数据库了,那删除我们这个字段的话呢,叫做drop是吧?哎,这个呢,你注意是drop一个column,这个呢,我们前面没有见过。这翻译过来就是列的意思。删除一个列啊叫什么呀,比如说我们删除看看谁不顺眼啊,把这个删掉吧,My email。哎,Drop哎,你看我这样写,我先drop一下,这个叫。那由于呢,我们前面是不是已经把这个email改成叫my email了,这时候你要删这个字段呢,是不是显然就不存在啊,你看它就会报错说你删不了,呃,因为这个呢不存在是吧?哎,那这时候呢,我们就必须呢,得是叫删除叫my email才可以,哎,选中执行。可以了,然后这块呢,我们再去DA一下。你看是不是就已经把它干掉了吧?啊,没问题是吧,好这呢,就是我们说的这个叫out table的这四个操作啊,还挺细致的啊,这个大家呢,你稍微的去关注一下,那就按照我这里边指明的去写就可以了,好再过来。
14:09
下面呢,我们看一个叫看一个叫什么叫重命名表,哎,重命名表啊,这块我们F5刷新一下啊,现在呢,我们这块比如说有这样的三张表,然后我们想做一个重命名,这个重命名的话呢,有两种方式。重命名。嗯,在这是吧,啊,一种呢叫做rename的方式,一种呢还是叫这个auto的方式啊,这个大家记一个就行啊,我建议呢,大家你就记这个就行了。啊,接这个,比如我们上边怎么创建表呢,叫create table,怎么修改表呢,叫做这个叫al table,怎么重命名表呢,叫renaable table是吧?哎,我觉得这样的一脉相承的好记啊,但是这块呢,我讲课嘛,所以我就把这两种方式呢都给大家写一下,那第一个呢,我们叫rename。啊,Table谁呀,比如说我们把这个MY。把这哥们啊,把这个MY,我把它rename table,它然后呢,Two two呢,我叫MYE11吧。
15:08
加了一个一是吧,来我们选中执行。可以了。可以了,哎,你看这时候呢,如果我们在这个F5刷新一下,你看此时呢,是不是就要幺幺了是吧?哎,那这时候呢,如果你要是想说de啊叫MY注意此时的话呢,就会给我们去报错,说你这个表呢不存在。表不存在了,对吧,那这时候呢,如果你要改成这个一呢,当然呢,它就存在了,就是完全呢,给我们这个表呢,做了一个重命名。啊,这是这个事儿好第二个方式。第二个方式的话呢,其实它有点像是一个修改,还是这个叫al table是吧,诶这个是这个表明,然后rename to啊这个呢,大家嗯,我建议呢,你记这种方式啊,这个呃,因为呢,就是重命名跟表相关的,它这块怎么说你就呢,用那个英文单词来表示就可以了,所以这块呢,我们第二种方式呢,就感觉不是那么规整了,那它这块还是叫一个alter啊,Table再叫MY,咱们比如用这个二吧。
16:08
把它是吧,然后这块呢叫rename,可以加上个to叫MY,我改成叫12吧。能理解是吧,好,我们选中呢,执行一下。可以了,那么这时候的话呢,我们你在图形化界面的方式,我F5刷新一下,那这时候就要12了,同样的道理,我CTRLC粘过来。这个呢,我要是写作是my emp2啊一走啊是不是就没有了,然后呢,12呢啊一走啊是不是就有了嘛。这个呢,就叫做重命名。重命名可以是吧,哎,没有问题。好,那么接下来,哎,接下来我们看一下下边这块呢,叫删除表。删除表删除库怎么做呀?是不是叫drop database谁是吧?那删除表呢就叫table谁。哎,就是这个道理,就这道理行,那咱们这块删除谁呀。
17:02
把咱们这个MYP12给它删掉吧,哎,我先这样,我先删一下MY p2这个表本身是不是不存在了,所以你再删的话呢,你看它就报错了。删的话就报错了,那怎么办呀,你看我们删除表的话呢,它这块也提到了,说你可以考虑加一个叫if exists是吧,如果呢,你要存在你就删了,如果要不存在呢。就忽略这个删除操作,他就不会报错了啊。哎,这个跟我们前面创建的时候呢,类似是吧,Create table if exists。如果你要存在,我们就drop一下,你看这时候我们要执行,哎,他是不是就默默的就相当于给结束了是吧?哎,不会报错了。哎,就不会报错了,这块呢,这个警告呢,是咱们这个,呃,测绘要里边哈,你要在这个位置呢,去呈现的话呢,是不是就没有这个问题了啊,我们这块去use一下,叫艾特硅谷DB在这个数据库下,哎,我们这块呢去删除一下这个表。你看这块呢,叫query OK是吧,哎,他就默默的就结束了,因为本身呢,没有这个表嘛。
18:02
哎,可以的啊好,那这是它,然后呢,诶我们CTRLCL一下,如果呢,我们想删除的,现在呢,不是叫这个12了吗?诶我们去drop一下。嗯,如果呢,你这个表呢,是存在的啊,我们这时候照完以后呢,F51刷新,那这就没有了吗。因为当你试图在desa一下,这不又报说表不存在了,哎,其实就我们把这个表呢给删除成功了。啊,给删除成功了。那么有同学说说,老师你这个删除成功的话呢,这个表能回滚吗?回滚这个词呢,咱们其实还没有讲。啊。我怎么写?这样是吧,哎,能会过吗?哎,这个还没讲这个词,那么大家呢,可能听说过一个是不是叫撤销啊。哎,我这儿有吗。这好像没找着是吧,就很多呢,我们这个工具的话呢,嗯,就比如说咱们这个课件吧,在这个位置呢,你看通常是不是都有这个撤销,就是都用的这个CTRLZ啊,这就叫撤销,就是你把你刚才做的这个呢,你说我后悔了,我想这个呃,撤销一下就是这个道理,那如果呢,你要把这个表给删了,说能撤销吗?注意撤销不了。
19:07
啊,所以说我们要特别的慎重做这样的事儿。啊,删库了以后,你下一步要做的事呢,哎,是不是就不能回滚了,那就只能是不是跑呀,啊从删库到跑路,因为啥呢?因为回滚不了是吧?哎这个问题。当然了,这个,呃,难道真的绝对的回滚不了呢?呃,回滚不了吗?那就得看你是不是有这个呃日志文件了啊,是不是做这个,比如说创建这个触发器了啊,是不是有这个备份了啊,如果说你都没有。那你就得跑。就得跑是自首是吧,这个意思啊。行,那么接下来的话呢,咱们来说再来说一下这个叫清空表的一个操作,哎,清空表的一个操作啊,这个清空表呢,咱们用的叫窗NK table。哎,叫tnket table,咱们前面讲一个函数呢,是不是要这个阶段啊,用的也是这个单词是吧?哎,也是这个单词,好这个清空表,这个意味着什么呀,我们先说一下,哎,清空表,因为这个呢,不像前面这个词一看就很明白啊,哎,这个呢,我们多说一句,这个删除表呢,我们就意味着,哎不广将。
20:13
哎,不管将这个表结构。哎,将这个表结构啊做了删除,哎或者叫删除掉了,哎,同时。哎,同时这个表中的数据。啊,是不是也删除掉。哎,然后呢,哎,释放这个表空间,就相当于呢,你占据的这个数据库的这个空间呢,我们就也会去释放掉表结构,删除掉表中的数据呢,就也删了。也删除掉。OK,那么这个清空表是什么意思啊,这个清空表的话呢,我们说它会删除表中的这个数据,但是呢,这个表结构呢是存在的啊,清空表呢,表示清空表中的所有数据啊,但是表结构啊保留。
21:05
那你这个表,比如说有几个字段,每个字段类型啊等等,这些呢,是都是保留下来的。哎,就是这样的一个道理来,比如说我们这时候呢,去我select清from,咱们那会儿呢,是不是复制过一个叫employees copy啊。创建过一张这样的表,咱们是复制的现有的员工表,来我们一执行,你看这块呢,是不是数据呢,就全都有是吧,那数据呢全都有好那么我可以呢,把这张表数据呢给它做一个清空的处理,哎怎么做呢,叫做窗nket table,那我们就把这个表明呢,CTRLC我往这边一扔,诶这样呢去做一个清空,来我们这块呢做一个执行。或执行了,你看这块叫Li行啊,这个你不要关注他这个事儿啊,不要说他这个古货了啊,然后接下来的话呢,我们以查询为例,那我们直接呢,Select形from这个employees copy,那我们这块选中呢,做一个执行,你发现呢,是不是就没有数据了,但是这个表结构呢还在啊DEA一下它。
22:04
哎,做一个查看走一下,那这块呢,还都是完整的啊,这呢就是我们指的叫清空的一个操作。好,那么有的同学呢,如果提前呢,可能听说过或者预习过,说我们针对这个表中的数据啊,可以增删改,实际上就是我们下一章呢,给大家讲的是不是增删改的事儿,那么这里边呢,是不是提到一个山呢。这个删呢,指的也是删除表中的数据,那跟我们这里边儿这个清空操作呢,感觉就有点重复是吧。啊,那接下来呢,咱们给大家去对比一下这个清空表和这个删除表中数据的那个,呃,Delete操作他们两个的异同,通过这个异同啊,咱们来给大家讲一下DC当中的commit和roll back这个事。哎,讲一下这俩事儿好的。
我来说两句