Oracle数据库——截断表,删除表,修改表结构——14

截断表(了解)

如果说现在要清除表中的全部数据,唯一知道的就是“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 对象类型 对象名称,..;

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值