00:01
诶,第七节创建和管理表。我们前六节讲的内容都是跟查询相关的,那查询也是我们进行数据库操作的最常用的一个操作。从这节开始我们就讲下面的内容,我们讲这个内容的时候,带领大家再稍微回顾一下我们讲课的这个整体的一个框架啊,大家还记不记得我们在开始讲SQL语言的时候给大家说一下,说它呀,又细分成三种类型,叫DMLDDL和DCL,其中DML就是我们比较熟知的叫增删改查。前六节相当于我们一直在进行这个查询的操作,那增删改相当于是对数据库表当中这个结构的,呃,相当于数据管理的其他的一些操作,这个呢,我们放在第八节当中去给大家讲,增删改在数据处理这块讲,那么第七节这个叫创建并管理表,它属于DDL的操作,它可以用于定义数据库的结构,比如说创建、修改或删除数据库对象,这里边儿的数据库对象我们就是表表示数据库对象的一种。
01:15
我们放在这一节当中讲,然后下面还有叫d sell d sell呢叫commit roll back啊,比如说这个设置一个保存点,这些命令呢,我们也放在这个第八节当中去给大家讲。第八节中给大家去讲好了,这就是我们整个这个知识的一个框架。然后呢,我们回到这个第四节,内容创建和管理表。那么这一节我们需要掌握哪些内容呢?我们来看,首先呢,一个就是我们需要知道数据库对象有哪些。需要大家来了解主要的数据库对象。然后需要你掌握的啊,创建表。删除表,重命名表,清空表啊,这还有个修改表,这几个是需要我们来掌握的,属于这一节的重点。
02:06
呃,难度呢,不是太难,但是呢,这一章是比较重要的。那我们先看这样一个概念,叫常见的数据库对象。这呢也是一个常见的一个面试题,数据归对项常用的有哪几个,就是我们这里列出来的有表,它是属于基本的数据存储集合,由行和列组成,在这个表里边提供的这个数据的具体信息,像我们这里这是不是就是一个表啊?对吧,然后第二个呢,叫视图view,视图呢就是从表当中抽取出来的逻辑上相关的数据集合,这个就叫做视图,下面还有叫序列,序列呢叫提供有规律的数值,比如说我们一个表当中,当你。这个有好多列嘛,哎,一般呢,我们生为生命为主见的这一列,常常呢,用一个序列来去实现,这叫序列sequence啊,还有索引,索引可以提高查询的效率,就像我们这个字典一样,前面有一个查询的索引,提高你的效率,同义词同义词给对象起别名,哎,这个呢,不像是我们之前查询这个employees这个表的时候,哎,写了个E,那个呢,是个临时的这个同义词,只要你命名好以后,以后呢,你都可以来用这个别名。
03:24
这个查询你这个相应的表。这是我们常见的数据库对象,其中呢,这个视图我们是放在第十节当中去讲。其他的数据库对象索引序列啊,还有这个同义词,我们放在第11节当中去讲,那第九节呢,也是一个对你创建的表的一个,相当于创建完了以后的一个约束。这是我们整个讲思扣的一个。这个的一个框架,嗯,好了,那我们先来说我们这一节的叫创建和管理表。大家看这个叫Oracle常见的Oracle数据库中的表,我可以通过这样一个命令来查询我们创建的表,来我们操作一下。
04:07
开启一个command window,那叫select的星,From叫user tables,查询我们用户都创建了哪些表,这些表都是我们自己创建的。然后这里边儿,比如还有table name,你如果只想看table name的话,你就可以是不是select table name from user tables。这就是我们创建的表明,这呢是相当于我是用这个代码的方式来实现的,你也可以在我们这用这个规划界面my object就我创建的用户自己的对象,其中就有这个tables,在这儿呢,你也能看到我们自己创建的这些数据库的对象。准确的说叫表对吧,好了,然后你要说除了这个表之外,其他的数据库对象也想查看用户的,当然你还可以在这查,比如说这是视图,这里我们没有视图,所以这是空了,有这个序列对吧,等等这样一些这个这个同义词等等的哈,那如果我们要想通过代码来查的话,那就是拉的星W叫呃,User。
05:27
Catalog。这呢,就是我们用户自己的数据库对象有表,有sequence序列是吧等等这样的内容。啊,这个命令大家你就了解一下就可以了,不需要你掌握还可以,比如说我想查询一下这个,呃,用户定义的各种数据库对象,你可以通过这个命令来实现。就这三种,哎,可以有这个table,有这个索引,有序列,这个大家做一个了解,那么下边呢,就是我们要讲这个创建,那么创建一个表的话,我们在Java当中相当于是不是对应的叫创建一个类呀,类就得有类名,那么类名我们说它是一个标志符,那既然是标志符,就会有标志符相应的一个规则吧。
06:21
那这个标志符你应该怎么去命名是吧,像我们Java里边这个命名,那么对应的这儿也是一样,你既然现在要创建这个表,操作这些表的,以及你有表明,还有你相应的列的列名,那表名和列名也有命名的一个规则。需要你来遵守。我们看看这个规则都有哪些,顺便呢,大家你回忆一下,我们讲Java的时候,标志服务的命名规则。我们先看看这个SQ里的说,必须以字母开头,包含必须在一到30个字符之间。然后包含这些,这个这个呃,26个字符的大小写,零到九下划线刀符和井号。
07:02
哎,到这儿的时候我们就看到一些不同了,我们在JA2当中,是不是说只要你不是数字开头就行是吧?不是数字开头可以是下划线,也可以是到了弧开头,只要不是数字就行,在circle这要求表名和列名必须以字母开头。这个需要大家你记住的,再一个呢,我们在张二里边是不是没有这个景啊,只有前面这一些对吧,这也是需要大家注意的。然后说不能够和用户定义的其他对象出名,就是说起了一个名以后,不能还起了一个名,不能是保留字,这个跟我们Java当中都是一样的,关键就是这些需要大家注意。这两个用红的给大家标示出来的。那么好了,既然知道怎么命名了,我们看看如下的随便写了几个,哪个是符合我们思后的命名规则的?第一个不行吧,要求必须以字母开头,所以123这都pass掉了,这个呢,没有这个短线,所以这个也错了。
08:04
这个是不是对的呀。这个是满足我们circle的这个命名规则的,那么同样的这几个,大家你看一下哪一个是满足我们Java当中标志符的命名规则的呀。显然什么第一个。可以吧?只要你不是数字开头就行,所以第一个满足,第二个不对,第三个也可以吧,第四个也没有它,第五个在这中没有减号,所以如果你要是从这的角度来看,一三是满足的。这个大家你需要必须要掌握,要不你起标志符的时候就就编译就出错了,对吧,那么下边呢,我们就涉及到叫创建表。要创建表。那么讲这个之前,我们给大家你说给大家说一下这个事儿,这样呢,我我放一个这个当一个黑板啊,想说明什么事。
09:02
我这呢。是一个表。表,大家从上小学一年级就开始接触表了,什么表啊?是课程表啊。每一天上课的每一节都是什么什么课,对吧,叫课程表,那么这呢,我列了一张表,这个表是什么表,我们这个你可以随便举个例子,比如说就是我们假设是一个员工表。这是一个表的信息,相应的有一个这个比如说叫ID。是吧,然后有一个name。等等啊,我就不去细写了,这个1234。好,我们想要说个什么事啊,这个之前我们第一节到第六节讲的都叫查询,在包含过,包含上这个增删改,整个呢,我们说这个叫DML的操作。
10:01
增删改查是吧,还有一个叫DDL。DD就是我们这节要讲的创建并管理表,我可以创建表可以,呃,这个修改也可以清空,还可以删除表,这都是属于DDR的操作,那么从这个表结果来看,整体上来看,它大概是什么样子的,给大家说一下啊。这个DML,比如说查询查询你是不是就是把这个横着的相应的满足条件的一些一些这个条数你给我输出出来呀。什么加一个where条件呀,呃,加一个这个呃BY呀等等都是查询,那增删改呢,它是说你增是增一条记录。这是不是就相当于我增了一条记录,就多来了一个人?这就叫增一条记录,那删呢,就是删除一条记录,比如说第三个这一条记录我不要了,删除。改呢,比如说第二个这个人,他的这个,呃,名字不不是说名字,比如说他这个工作叫job。
11:04
一开始呢是做行政的,后来呢转成销售了,这就叫修改增删改查,大家你注意了,都是从这个表横向来看的。对这个表的某一条或者某几条记录进行的增一条删除、改查。叫增删改差,这叫DML。那什么叫DDL呢?DDL。就是我这个表。这个表就是他呢,对这个表的操作啊,相当于就是更猛了,怎么猛啊,你这个表一开始没有,我就通过DDL可以给你造一张表。对吧,造一张表,现在表有了,除了造表,我还可以给你修改,怎么修改,比如说我给你加一列。加一列,一开始比如说这个公司啊,新新创办的一个公司,新华创公司的话,年终都没有什么奖金,后来啊,公司盈利了,盈利了以后我们说啊,加上一个叫commission GCT的一个概念,或者就叫这个奖金,对吧,我可以给员工,每个员工给他加一个奖金,不同的人奖金不一样,所以相当于我新增加一列这个。
12:15
属于DDL的操作。再比如,比如说这个公司员工比较多了,一开始我们把这个ID就声明成了这个,呃,三位,那最多的是不是就到999了呀,那后来员工太多了,不够了,乘不下了,那我就给你扩充到比如说五位,相当于我修改现有的这个列。啊,修改现有的列,或者增加一个列,甚至我还可以删除一个列,或者我清空整个表的数据等等等等,这都是属于DDL。你可以现在先简单的把它看成是从纵向对这个表的这个框进行这个进行的修改,而横向呢,只是修改的某一条记录。相当于DDL比较猛,对吧,或者我举一个也不是特别恰当的一个例子啊。
13:04
DDL相当于对一个公司来讲,它是不是有点像这个创始人的意思啊,比如说你这个表原来没有,现在有一个表,创建了一个表,然后呢,我还可以是不是增加几个部门,呃,删除几个部门,呃,做的这工作都权限很大,你要是横向来看这个DML是不是仅仅是公司聘来的一些员工或者叫管理者呀,你多了一个人,那就加一条,少一个人删除掉,对你整个这个公司的框架是没有影响的,对吧?它俩是有区别的啊,大家你需要理解一下行这个概念,说清楚了以后,我们下面就开始DDL的几个命令的操作,第一个呢就叫创建表,创建表我们使用的命令叫create table。Create table,那么如何来创建?我们直接在这来给大家来演示创建表。那创建表刚才也看到叫create table来,我们就直接创建一个create table table起个名吧,你这个表名叫什么?我们之前是不是都查询这个叫。
14:12
嗯,以employees为表是吧,我们不能跟人家起名一样了,是EPE,那么一个表啊,它相应的都有一些列,这个列我们写在一个小括号里,这个呢,我可以给它这样拉下来,在这个括号里边,我提供你这个相应的都有哪些列。有点类似于Java当中,这是不是相当于一个叫class,这个叫class的名字,然后呢,这个一个类里边都有一些属性,我们当时是是不是在Java里边是不是这样写,比如我生明一个string型的一个name,还可以有一个初始值,假设是A,当时我们字符串的还得是。这样写是吧,这是Java的写法啊,我们这个SQ当中肯定不是这样写了,他怎么声明的,我比如说加这个列,一个叫ID,我先写这个列名,然后再写这个列的对应的类型叫number类型。
15:09
大家可以看到跟我们Java当中的那个印的形是不一样的,但是是对应的都叫整形,然后呢,我指明。这个ID这一列占用的数据空间,比如说我叫十位。相当于用十位来存这个ID,那你最大的话就是九个九呗。哎,不是九个九,那十位的话,那就是十个九,那十个九是最大了,你再不能再大了。然后呢,这我就不写默认值了,这个逗号结束,然后。嗯,内员工的名字,员工名字字符串型怎么写啊,叫what。在Oracle当中叫what two my circle就是what了。what two,我用20个字数来存。还有加上一个工资,工资的话是不是也是number类型的,只不过是带小数的,有可能那带小数的怎么来写啊,我写十位,然后小数点两位。
16:15
这就是这样的一个写法。这里边儿这个十。就表示总共是十位,其中有两位是小数的,相当于整数位有八位,这是一个。Salary,然后我再加上一个date表示雇佣的日期,雇佣日期呢,我就是一个date类型的。这个呢,你不需要在后边再声明其他的。那我就现在先创建一个表,这个表就是长这样。OK。好,Table created,大家需要注意,我们这儿能创建成功,表示我具有创建表的这样一个权限,如果你操作这个,说权限不足,你是不是得需要来?这个控制台这儿。
17:01
给大家操作一下,给我们当前Scott用户增加一个create table的系统权限,那个我们在之前已经讲过了,这里不多说了。创建好表以后,De看一下我们创建这个表是不是就这几个呀。对,这就是我们创建这个表的结构,这个你创建好里边以后呢,实际上里边是不是并没有数据啊,所以当你select from ep1的时候,这个表是一个空表。这个都好理解是吧,因为我们里边没有数据。好,这就是我们讲的创建表的一种方式。既然我说了一种方式呢,是不是大家就想可能还有其他的方式对吧?没错,我们在这写一下创建表的第一种方式。第一种方式就这样写,我给他再起一个,相比较第二种,我们这个给他,我自己命名叫什么白手起家。
18:05
啥叫白手起家?就是我创建这个表是不是没有依托于任何的东西,我就是自己干,创建了一个吧,我create table起个名,然后一点点写上这几个列。这叫白手起家的方式,那第二种方式相比较它那就不是白手起家了,那么第二种方式怎么写?我们这样吧。这个也是我们跟Java的这个注解方式是一样的啊,多行注释。第二种方式,你看我在创建一个叫create table,只要创建表的话,开头都是这样写啊,Create table什么呀,ER。As,大家注意了,我们创建的第二种方式as select,我依托于已经存在的表创建我们这个表。
19:06
那依托已经存在的表,我们是不是有一个employees那个表啊,我从这里边挑出几个列来,哎,给你按照这个新表当中。As这个结构需要大家注意great,这样我把这个关键字都用上大写。Create这个也是。As select,这个写一下,你需要这个查询的,你想把哪些列拿出来,As select,嗯。Employee ID啊,比如说你再起个别名,就叫ID last name叫name。然后呢,嗯,Her data,还有salary from employees。这样是这样写,这样写完以后我们加一个OK。
20:07
名称已由现有啊,那就说明我们现在是不是有里边有一个叫EPR是吧,那这样我们这个表给它删掉。好了,创建好了,创建好了EP2。这是不是我们创建的?我这个创建的方式,大家你看刚才我们删除了,就是现在这里边儿删了以后没有了,我这是刚才真正新创建的,我使用了现有的表,而且在查询的时候,我在起了一个别名,那么新表就是用的别名。对吧,这个表是我们创建表的第二种方式。创建表的第二种方式,这种方式是不是说叫,哎,相当于那个白手起家,这个叫依托于现有的表啊,我从现有的表里边儿挑出几列来拿过来。
21:12
结构create table as select,不要把这个as丢了。这样子的好了,第二种方式完了以后,那我这样我select一下大家看看,注意啊,Select星from em。我们看看这个表的数据有没有进来。是不是进来了呀。显然我不光依托于现有的表,是创建了已有的,呃,创建了一个新表,而且你新这个这个原来这个表里边儿的数据是不是也跟着导进来了呀。这个是需要大家注意的啊,那所以说如果我们想创建一个表,然后这表里边数据不想要那么多,比如说我就可以加过滤条件了,Where,我只要某一个部门的一个depend ID等于80,把80号部门的信息给它搂过来,那你在select from EP。
22:10
三。这就这就是这个部门,就仅仅是原来的那个80号部门的那些信息,我放在了新表当中,对吧。行,这就是这个意思啊,那还有的同学会想,那如果我就想把原来你这个表里边的这几列拿过来,不想要里边的任何数据。不想要任何数据的话,是不是你这个外条件,你让他这个是空就完了呀。比如说我现在创建一个表叫四,哎,我知道啊,你这个department里边是没有800这个部门的。没有这个部门,那我就是我只要800号部门这个数据,那显然这个这个数据就空了呀,来看一下。要。不对,MP4是吧,你看这个时候是不是就没有数据了呀。
23:10
我就让你这个过滤条件里边查询不到东西不就完了吗。就是这个意思啊,那这个时候我们如果说你就想要一个空表的话,我们也不这样写,我怎么写啊,我写一个只要是是不是只要你出现这个不满足条件不就完了吗。我写了一个最简洁的,大家你看能不能看懂,我叫Y1等于二。五一等于二,一是不是显然不等于二啊?一既然不等于二,那我只要一等于二的那些数据,那是不是这个表就一定是个空表啊?是吧,那那你想写这个什么三等于二是不是也也一样啊,只要这是一个不等的条件,那你查询到只要这样满足这个条件的这些数据,那这个条件显然不满足,所以数据就没有,但是表结构是有的,你看select星from ER图。
24:07
懂了吧?就是这样。好了,这是我们讲创建表的两种方式,大家两种方式都要会。没有保存上是吧,这个是第一种方式,这是第二种方式,两种方式大家都要会好,这个叫创建表,我们就过了。诶,大家把这个看一下,我们刚才创建表的时候用到几种数据类型,波to叫可变字符串的数据,这个串呢叫定长的,一般我们也不用它,它呢类似于Java里边的string,叫不可变的字符序列。这个呢,就要可变组序列,类似于这个string b number呢,属于叫整呃这个数值型的数据了。
25:01
哎,可以带小数,中间有逗号隔开,这个date型就是日期型的一个函数。啊,日记型的这个数据类型啊,后边还有一个叫loblob,是属于这个二进制数据,最大的可达到4G,就是你可以往这个数据表当中,比如加一列,加一列,比如放一个呃小片是吧,这个这个或者加个图片,加个音乐,我们都可以用这个lo类型来存,Lo呢,又细分成好几种,就是tinylo呀,什么meiumlo呀,Longlo呀等等,就是它里边又这个,比如说最大这个longlo,它可以达到四个G。就这样子,大家你可以把你的这个平时比较隐私的一些这个所谓的这个视频呀,图片呀,你想让别人看到,你可以放到数据库当中。可以用这个数据类型来存储,这个我们后边讲JDBC的时候,会给大家一块来演示怎么让你的隐私更安全。只要你没有用户名密码,只要输入不对的话,它就进不去。
26:01
这是我们常见的加红的,是常用的数据类型。然后呢,使用子查询来创建表,就是as select的形式。嗯。那么就是创建一个空表对吧。好了,下面这个叫out table table叫修改表。都可以进行哪些操作呀?可以增加一个列,可以修改现有的列,也可以删除一个列,或者重命名一个列。对应的操作有这样四个。哎,这个这个al这一块呢,呃,命令又稍微多一点了,分别我们把这几个给大家带着大家一块来学习一下好了,我们刚才。刚才刚才是不是有有创建了一个这个表拉的,我看一下啊,行from e是有这个表吧,这个表数据没有EIC有这样四个列,我现在对这个已有的EPE这个表进行一个修改,怎么修改大家看。
27:08
这是这四个列,我想先给它再增加一列。再增加一列,那我就要al对不?BP,大家你看这个这个代码是不是实际上是挺这个傻瓜的呀。你看我们这个这你看写,当然你不是学英语的啊,你要学英语的话就爽死了,创建一个表,就就跟我们写中文一样,你怎么写这个代码,它就是创建,然后表,然后表明这是不是就就就这样特别的简单易懂啊,就是你如果去写这个代码的话,怎么去创建一个表,代码怎么写,你看它这不就是用英语表达,就是create table,然后加上一个table name。
28:00
是是这意思吧,我们这边就是这样来实现这个代码的,你放到中文不就是这样吗?那修改呢,那就是修改表谁。就是这就这样是吧,所以说你要是我一直觉得啊,嗯,这个母语是英语的这些人这个学习编程就感觉真的是挺占便宜的,他们这个写这个代码就感觉跟这个说话一样,只不过是跟计算机说话,满足一下你计算机的这个语法规则就完了。是吧,嗯。挺爽的啊。然后out table out table e修改这个表怎么修改,我给它增加一列ADDADD一个什么,我加上一个括号,比如说增加一个这个email。然后email是一个类型的摩two 20个长度大小就这样写。然后OK。这个你看table altered altered是吧?De,大家看是不是多了一列。
29:05
多了一列。这呢就要增加一列,可以增加一列,也可以修改修改怎么修改啊,比如说我们这个ID。这个ID这个是一开始定义的是十个长度,我给它改成15个长。改成15个长度,改成15个长度,这呢就不叫爱了,叫moify,翻译过来就是修改。修改修改,你就在这写一下,你是不是要修改一下这个ID啊,还是number类型的,改成15个长度是这样呗。大家看这是不是就15个了。哎,这就修改成功了啊,然后呢,我们再举个例子。比如说这个。比如salary吧,Salary是12,我想给他增加一个默认值,有默认值,每个人的默认一来的工资就2000,那你也可以给他改,怎么改,大家看salary还是叫number类型的,嗯,十个长度,这你改改也没问题啊,你想改成这个20个也行,还是两个小数点加上一个默认值,默认值叫default。
30:22
默认初始值是2000,也就这样。改了de,大家看salary,这是不是有一个default默认值啊,当你给他通过第八节,我们要讲这个增删改的时候,你往里增加一条数据,如果你不给它赋值,那默认这个值就是2000。如果你再附一个新的值,那你把这个值给它,相当于覆盖了,这是进行一个修改,除了你可以修改这个数据的这个存储空间大小,增加一个默认值,这个数据类型实际上也可以改啊,大家注意这个数据类型也能改,比如说这个email,这写的叫what two,给它改成一个。
31:05
Number类型了,当然这个我们一般不这样干,但是呢,你知道是能改,举个例子,Email改成number类型的20个长度。或者说有的同学这个,哎,我们讲这个身份证号是吧,身份证号,身份证号到底是用number存合适,还是用what to存合适,一开始假设你给定义成number了,然后老师告诉你说用number类型是不对的,身份证不管是在Java里边还是在其他语言里边,应该都把它定义成字符串。然后呢,你就给他改成字符串。那么你就可以使用这个在搜狗里边用mod画来修改数据类型。也是用的它。OK,改完以后你再pic眼皮,是不是email就变成number类型了?没错哈。但是这里边儿需要注意一点。注意点,注意点什么呀,就是我们这个表延皮本身是没有数据的,你这个修改数据类型是没有问题的啊,修改数据类型没问题,如果这里个表里边已经有数据了,比如说这email本身就是存在,我差都存了几个数了,你再改成number,这是不能改的,就改是改不了的,大家你自己可以试验一下,比如说我们刚才那个EP2里边是不是有数据啊,当你对它进行修改是改不了的。
32:26
啊是改不了的,然后呢,呃,原来你这个number是存十,呃这个这个ID就ID原来是存十个,现在改成15了,还有其他的这个修改,它仅仅对你以后在新加入的数据有影响。在新加入的数据的时候,它默认的是都是2000之前的那些,嗯,是不会改变的。啊是这个意思,那我们把刚才那个这个EP。EMP3也行,EMMP3是有数据的是吧?E3来我们给你修改一下,大家看out table em3叫Mo far,我修改一下数据类型。
33:16
把这个name给它改成一个number。是这意思吧?你看。是不是要想修改,必须把这个相应的列值空,因为你这里有数据,所以改不了,只要没数据的话,修改数据类型没事,其他的你比如说增加一个空间六改成十啊,能增加一个默认值啊,那个有数据也没事。就是讲的modify,除了这个modify之外,我们还可以进行一个删除。比如我们把刚才这个E里边,我给增加了一个叫email吧,增加了个email,我把它给它删了,删了使用的这个叫照。
34:00
Drop的是一个列,所以要加上一个列,这个叫C,这是一个新单词,C这个翻译过来就叫做列,其实这个单词呢,没有什么,这个你一看不认识,就感觉这个不行,太崩溃了,实际上没啥,它不就是一个词嘛,你跟他中文一对应,你知道是什么就行了,这个就是叫列,删除一个列呗。列明秒。这就删了,你在D这不就没有了吗?是吧,相应的其他这几个列你也可以给他删了。这是叫删除一个令还可以。还可以怎么着,还可以重命名一个列,重命名一个列,像这里边这个salary salary,我给它重命一个名,这个呢,就把它不要了,重命名我们使用的叫rena rename c,重命名一个列呗,从rename c叫salary to SL。
35:04
把它改名为SL。哎,E,是不是这个题就改了,就要sa了啊,这就它了。嗯,这个呢,我们在这儿稍微带着大家稍稍微说一下啊,下一节我们还要讲那个DCL,比如说这个commit呀,Roll back呀,Roll back,还可以设置seven point roll back,大家有的可能还了解过,是不是叫所谓的回滚啊。这叫回滚,比如说刚才我们把这个SAL6的名字给改成一个SCL了,然后说诶,我回滚一下,是不是能给我改回去。是不是还能改成SSA,那你看一下select啊,别select皮。是不是还是SL。没错,这里要再给大家说一下这个DDL创建一个表,修改一个表,包括后面这个来清空啊,删除啊表啊,这些操作回滚没有用。
36:09
回滚没有用,也就是相当于它自动的修改完以后,他就给提交了,你再回滚也回也也回滚不回去了,一次性操作就写入你硬盘里边,就没法像我们说这里边儿,你给他再来一下是吧,安安度就是后退没法后退的就保存了。就是这样,谁能回滚呀,增删改。是可以回滚的。相当于增删杆,你可以暂时理解成它写入内存了是吧,那你back相当于就给它回血回去了。增删改可以回滚,那么关于DDL的是不可以回滚的,或者说它是自动提交了,你回滚也没有用,就这意思。好了,这我们呢,就把刚才这个out table带领大家说完了,你看一下ADD modify job和rename to是吧,这个稍微多一点啊。
37:00
嗯。呃,修改可以修改数据类型,修改尺寸和默认值,只对今后的表的这个添加的项产生影响。嗯。行,这就过了,然后这个叫删除表,删除表用的叫job table job跟删除那个列一个意思吧。哎,我们在这删除一个,比如说这个叫哎job table,我们那会写了一个五吧,那五都删了。你在DDMP5是不是没有了,因为这个时候也也是不可回滚的啊,他都提交了,你就回滚一下,然后你再。Dic,他照样没有。他是不可回滚的。这个叫删除,有的时候呢,大家你也可以在这儿,相当于这个呢,刚才我们这叫代命令行的方式,你也可以通过图形化界面的方式,这是我们创建的,是不是刚才创建的这样几个表啊。
38:04
你要是使用图形化界面的话,你就你就这样。点右键有个罩。这是不是也能删?也行是吧,这不就都照上了吗?你也可以在这rename是吧,哎,这是删除了一个表,然后呢。删除表,就这样还可以叫清空表。这个叫清空表,什么叫清空表?大家你看。刚才这个照这个表啊,我不光把这个表这个这个,比如说有的表里边是有数据的哈,像这个EP3这个表有数据。不光把你这个表的数据删了,表也没了,或者表没了,数据当然就更没了,而这个叫清空,我们先看一下啊,Select的from ep3,这里边是有数据的。然后我1DROP的话,这个就整个就没了,我使用不叫drop,我叫trumpnket tnket叫清空trumpnket table e3。
39:09
成功了,成功以后我再拉一下,大家看是不是就已经空了呀。这个就是窗的这个表作用,窗就是表结构不变,将表格当中表里边的所有的数据清空。表里边的所有的数据清空,表结构还在,同样的道理,你这时候试图使用roll back,你再给他查询一下,照样是没有的。说明这个。K仍然是不可回滚的。哎,这个说清楚了,这个呢,跟我们下一节讲的那个数据处理,大家注意是有区别的哈,数据处理是有区别的,啥意思呢?我们在这稍微带领大家演示一下,下一节当中会说我们这是不是还有一个表叫e p2啊。
40:02
这个表你看现在是有107条数据,我使用一下,下节当中讲的叫delete啊,Delete from em2,我是不是给删了呀,这个删除也仅仅是删除这个表的数据,不会动你这个表结构的。这个删完了以后我再来查询,没有吧。说明这个数据确实给删了,但是这个增删改啊,我说是可以roll back的,你看我们roll back1下回滚了,回滚意味着你这个删除操作不好使了,所以我在写这的时候大家注意。数据是不是回来了?确实是这样,数据回来了,这个操作是可以回滚的。这是我们下一节要讲的这个delete from啊,我们现在讲的这个DTL里边的窗ET,这个清空是不可回滚的,大家需要严格记住它俩的区别。那这个叫清空表,释放表中的所有数据,并释放表的存储空间,嗯,不能够回滚。
41:06
下一个叫改变对象的名称。改变对象的名称,就是改变这个表的名称呗,起个别名而已,比如说嗯,叫re nameme,这个大家注意,就没有table这个词了啊,没有table了,就它是比较特别一点,就直接rena who啊,Em ly employees are。改名了,改名你在DMP2这这是不是就没有了,你只能D是不是EMPLOYEES2吧。改名了,你从这儿也能看到。这是吧,给他改名了哈。EMP2就已经不存在了,这个呢就叫做重命名。最后呢,你可以把给他们是不是都给它照了drop table employees,好就删除了。
42:08
行,这呢就是我们这一节讲的整个关于创建和管理表的一些操作,大家你捋一下啊,创建表create table,我们讲了两种方式,第一种叫白手起家,就是创建一个表,一个列一个列的那样写,第二种方式叫依托于现有的表create table,起一个表明as select,什么什么什么from。然后你要是想要个空表的话,就加上WHERE1等于二。嗯,这样,然后al table叫修改表结构,我可以增加一个列,删除一个列啊,重命名一个列,然后修改一个列。这样然后才可以召唤删除表,重命名表,清空表,就是这些操作,大家呢,你把这些操作都通过代码去实现一下就熟悉了。
43:01
大家需要格外注意的就是我们这些命令啊,以上这些命令。操作完都不可回滚以上这些命令或者这个DDL的命令操作完接。不可回滚,需要大家注意。跟你,尤其是跟下一节我们要讲的内容,你要区分开。不可回归。这个这叫不可回滚,你别不可回逗号滚是吧。行,那我们这一节就到这儿。
我来说两句