截断表(了解)
如果说现在要清除表中的全部数据,唯一知道的就是“DELETE FROM 表名称”,不增加删除的限定条件,
但是这样删除的数据实际上并不会立刻放掉存储空间(数据,索引,约束,...)
如果现在希望释放放掉一张表中所占用的全部空间,则使用截断表操作。
范例:截断person表
TRUNCATE TABLE 表名称;
TRUNCATE TABLE person;
此类操作一般别用,而且只有Oracle用
删除表(重点)
表不再需要那么就执行删除操作,删除语法如下
DROP TABLE 表名称;
范例:删除person表
DROP TABLE person;
删除数据表操作在Oracle 10g之前那么以上的操作就彻底删除了,但是从 Orale 10g开始可以给挽救了一次
闪回机制(FLASH BACK,了解)
为了保证数据表避免误删除所带来的灾难,从oracle 10g开始之后提供了一个回收站的功能,即:在使用
删除表操作的时候默认情况下数据表不会彻底的删除,而是先保存在回收站之中。
范例:查看回收站
SELECT * FROM user_recyclebin;
SELECT object_name,orginal_name,type FROM user_recylebin;
如果在命令下方式下(字太大)很难看清除
范例:从回收站之中恢复emp10表
FLASHBACK TABLE emp10 TO BEFORE DROP;
可是在windows之中,有不经过回收站而彻底删除的方式,所以此功能在oracle中也有
范例:彻底删除emp10表,不经过回收站
DROP TABLE emp10 PURGE;
范例:从回收站删除一张表
PURGE TABLE emp20;
范例:清空回收站
PURGE RECYCLEBIN
以上的清空的命令会在针对于oracle开发之中使用到
修改表结构(理解)
在SQL语法之中本身提供有修改表的语法规定,而Oracle也完全支持此命令。
范例:现在假设有如下一张表
CREATE TABLE mmber(
mid NUMBER,
name VARCHAR2(20) DEFAULT'无名氏'
);
INSERT INTO member(mid,name) VALUES(1,'张三');
INSERT INTO member(mid,name) VALUES(2,'李四');
COMMIT;
1.为表添加字段,语法
ALTER TABLE 表名称 ADD(字段 类型[DEFAULT 默认值],字段 类型[DEFAULT 默认值])
范例:为member表添加一个字段,此字段没有默认值
ALTER TABLE mmber ADD(age NUMBER(3));
这个时候发现添加的age字段中的内容都是null;
范例:为mmber表添加一个字段,此字段有默认值
ALTER TABLE mmber ADD(sex VARCHAR2(10) DEFAULT '男');
发现这个时候如果设置了默认值,那么所有的数据记录都会被更改,但是这种更改毕竟要消耗性能,所以
别修改表结构。
修改表中已有字段,语法
ALTER TABLE 表名称 MODIF(字段 类型[DEFAULT 默认值],字段 类型[DEFAULT 默认值])
范例:将mmber表中的name字段默认值修改为,阿健
ALTER TABLE mmber MODIF(name VARCHAR2(20) DEFAULT '阿健');
以上的这些语法只是一个了解,因为在IBM DB2数据库里面是根本就不允许修改表结构,DB2倡导的是表
删了重建,因为要保证性能。
通过以上的表的讲解就可以给出DDL的核心操作语法类型:
创建对象:CREATE对象类型 对象名称,..;
删除对象:DROP 对象类型 对象名称,..;
修改对象:ALTER 对象类型 对象名称,..;