*****************************修改表结构***************************


sno

name

age


一.什么时候使用修改表结构

想修改表结构,同时还想保留数据,使用修改表

需求: 加一个 地址字段 address


1. 添加字段


alter table student

add

(address varchar2(500))

 

2. 修改字段

alter table student

modify

(address varchar2(600))

3.删除字段


alter table student

drop

(address)


添加约束、修改约束 类似 添加字段


******************************truncate 截断表********************************


truncate table 表名

只删除数据 不会删除表结构

************************drop、delete、truncate三者的区别************************


drop 属于DDL语句 立马执行 不仅删除表的数据而且表的结构也会删除


delete

1.属于DML语句 删除的时候 需要先把删除的数据放到回滚段中 可以回滚
2.删除的时候可以按照条件删除
3.删除记录的时候会触发 触发器


truncate
1.属于DDL语句 立马执行 只删除数据 不会删除表结构 删除数据的时候不会把数据放到
回滚段中 会立马删除

2.不能按条件删除

3.不会触发 触发器


效率

drop>truncate>delete

 

*****************************闪回***************************

从oracle9i开始 有闪回的概念


以前drop表是直接drop,从oracle9i开始 先把删除的表结构放到回收站 不会立马删除


1. show recyclebin -- 显示回收站的内容

2. flashback table 表 to before drop


如果回收站中有两个相同的表 闪回的时候 是闪回的最后一个 遵循后进先出的原则


如果再闪回相同名称的emp表 因为已经存在重复的emp表名 需要为闪回的表从新命名

flashback table 表 to before drop rename to emp111;