主要内容:
比啊本质上就属于数据集合操作,那么数据集合里面必然有需要保存的集合类型。在数据库的开发过程中,每一个数据库都有许多自己支持的数据类型。但不管扩展多少数据类型,真正的常用的类型有以下几种。
*字符串:使用VARCHAR2描述(其他数据库使用VARCHAR),200个字以内的都是由此类型。如:姓名、地址、邮编、手机号
*数据:在ORACLE中使用NUMBER描述数字,如果描述小数,使用NUMBER(m,n),其中n为小数位,而m-n为整数位,但是数据库也考虑程序人员的习惯。
*日期:使用DATE,ORACLE中DATE包含时间,但是在其它数据库中DATE只是日期,DATETIME才表示日期时间。
大文本数据使用CLOB描述,最多可保存4G的文字信息:
大对象数据使用BLOB,保存图片、音乐、电影、文字。最多可保存4G.
如果要进行数据表的创建,则可以使用如下的语法完成。
例:创建一张成员表
表创建之后就可以向表中插入数据
默认值指的是如果没有使用字段设置的时候出现,而如果字段明确出现了null,那么内容就是null;
复制表(了解)
严格讲复制表不是复制的操作,而是将一个子查询返回结果变为一张表的形式保存而已,对于复制表的操作可以使用如下的语法完成:
如果现在是一个简单表查询,也可以将这个最终的结果保存在数据表之中。
例:将复杂查询结果创建为表
将此时的统计查询结果保存在deptstat表里面,
除了可以将数据保存在数据表中,还可以将表结构进行复制,即:不负责表内容,只负责表结构
只需要设置一个绝对不可能满足的条件即可
现在使用语法”DESC 表名 “查看表结构,可见empnull结构如下
截断表(了解,ORACLE自己的特性)
事物处理本身是保护数据完整性的一个手段,但是使用事务处理的过程之中需要注意一点:
在用户更新数据后,还未进行事物提交中,如果发生了DDL操作,那么所有的事物都会自动提交。
假如现在有一张表的所有数据都不需要了,那么首先想到的是将数据表的全部数据使用DELETE删除。在这样的删除过程中会出现一种情况:
由于事物的控制,所以导致数据不会立刻被删除。同时这些数据所占用的资源不会立刻消失,也就是说一段时间之内,此数据依然是存在的。如果使用DELETE删除又可能出现资源被占用的情况。为此ORACLE当中出现了一种称为截断表的概念。如果表被阶段,数据表所占用的资源全部释放。同时无法使用事物恢复。
语法:TRUNCATE TABLE 表名称
例:截断myemp表
此时资源才全部释放。
为表重命名(了解)
DDL属于对象定义语言,主要的对象是创建对象、索引名
所以表创建单词是CREATER,但是这些对象被谁记录呢?当用户进行数据对象操作的时候,ORACLE提供有一个数据字典用于记录所有的对象状态。也就是说用户创建表之后,那么会自动在数据字典里面增加一行信息,表示表创建了。表删除了也会在数据字典里执行删除操作。
但是整个过程是由ORACLE自己维护的,用户不能操作数据字典的CRUD
在此之前使用过这样的语句
严格来讲,此时可以使用数据字典完成,既然是用户的查询,那么可以使用“User_tables"
这个数据字典之中记录了保存数据的存储情况,占用的资源情况。
实际上表的重命名就属于更新字典的过程,语法:RENAME 旧的表名称 TO 新的表名称
例:将Member表更名为person表
删除数据表(重点)
删除数据表属于数据库对象的操作,所以此时它的支持语法:
例:删除emp30表
ORACLE 10g之前执行删除语句,那么数据表就会直接进行删除了,从10g开始,删除的操作出现了一次挽救的机会,类似于windows回收站。如果没有其他的说明,这个时候会将表保存在回收站之中,如果用户删除出现了问题,可以进行恢复,或者是彻底删除。称为闪回技术(FlashBack)
在任何数据库里面都不可能提供批量删除数据表的操作,在以后的项目中,别删除表。
闪回机会(理解)
闪回机会提供给用户一次恢复删除操作机会,若用户想操作这个回收站,那么用户具备查看、恢复、清空、彻底删除这几项操作,如果想查看回收站,可以使用如下命令完成。
通过数据字典
例:恢复person表
使用”PURGE"彻底删除
回收站的操作只是ORACLE提供的,其它的数据库还不支持,所以此部分会使用即可。
修改表结构(了解)
当一张数据表以及建立完成了,后来发现某些表少列,某些表列设计不合理。又有一些表列多了,才提供有对象的修改操作。但是从本身的开发来讲,并不提倡数据表的修改。
如果要修改一张表,首先需要一张表。在实际的开发之中,为了方便数据库的使用。往往数据库人员会给一个数据库的脚本。这个脚本的后缀为*.sql。开发人员可以利用这个脚本对数据库快速的恢复。所以一般脚本会包含如下的几个内容:
下面就基于这个脚本实现数据表的修改操作
1、修改已有列
例入:现在name字段上没有设置默认值,这样,每当增加新数据不指定name的时候,内容就是null;所以有默认值
2、为表增加列
语法:
发现一旦有默认值,每一行的sex内容都会出现,相当于更新了所有行。
3、删除表中的列
在任何情况下,删除操作都是及其危险的。语法:
例:删除sex列
以上的操作知道就行,能不用就不用。
总结: