ORACLE学习04-表的操作
一、表的创建
格式:create table 表名(字段 字段类型 约束,... ...);[comment on column 表/字段 is 注释;]
例子:create table COMPANY(COM_ID INTEGER not null,COM_NAME VARCHAR2(32) null,COM_ADDRESS VARCHAR2(100) null);
三、表的修改和删除
- 修改表的名称
alter table old表名称 rename to new表名称例子:alert table COMPANY rename to student;
- 删除表
删除表(同时删除表结构)并重新创建表truncate table 表名称;删除表中数据,不删除表结构delete from 表名称;不会释放已经占用的空间。删除表以及表中的数据drop table 表名称 cascade constraints;
- 使用drop 删除表的时候,回进入回收站
--查询当前用户的回收站select object_name,type ,original_name from user_recyclebin where type='TABLE';--删除回收站的数据,或者删除表不走回收站drop table student purge;purge table student;
- drop、delete、truncate的区别
1.truncate 删除数据,重新建表;delete只删除数据不删除表的结构;drop语句将删除表的结构被依赖的约束(constrain),触发器(trigger),索引(index); 依赖于该表的存储过程/函数将保留,但是变为invalid状态.2.delete语句是dml,这个操作会放到rollback segement中,事务提交之后才生效;如果有相应的trigger,执行的时候将被触发;truncate,drop是ddl, 操作立即生效,原数据不放到rollback segment中,不能回滚. 操作不触发trigger.3.delete语句不影响表所占用的extent, 高水线(high watermark)保持原位置不动;drop语句将表所占用的空间全部释放;truncate 语句缺省情况下见空间释放到 minextents个 extent,除非使用reuse storage;truncate会将高水线复位(回到最开始).4.速度,一般来说: drop> truncate > delete5.安全性:小心使用drop 和truncate,尤其没有备份的时候.否则哭都来不及注意:使用上,想删除部分数据行用delete,注意带上where子句. 回滚段要足够大.想删除表,当然用drop想保留表而将所有数据删除. 如果和事务无关,用truncate即可. 如果和事务有关,或者想触发trigger,还是用delete.如果是整理表内部的碎片,可以用truncate跟上reuse stroage,再重新导入/插入数据
三、修改表结构
create table student(sid int not null primary key,sno number(12),sname varchar2(32),address varchar2(64),birthday date);
- 修改字段名称
alter table 表名称 rename column old字段名 to new字段名;alter table student rename column sname to name;
- 修改字段类型
alter table 表名称 modify 列名称 类型;alter table student modify birthday varchar2(12);
- 删除字段
alter table 表名称 drop column 列名称;alter table student drop column birthday ;
- 添加字段
alter table 表名称 add 列名称 类型;alter table student add birthday date ;
浙公网安备 33010602011771号