oracle简单DDL的使用
记下自己常用的一些DDL语句,忘了的时候方便查询
创建表:create table [mode_name.]table_name(…)
;
例如:
create table scott.student(
stuname varchar2(31),
stuno number(10),
sex char(2)
)
创建表的备份:create table newtable as select * from oldtable
例如:
create table student_T
as
(select * from student where rownum<2);
delete from student_T
增添和删除字段:
alter table student add(province varchar2(10));--添加省字段
alter table student drop column province;--删除省份字段
alter table student drop (sex,age) --删除多个字段
修改字段类型:alter table table_name modify column_name colunm_property
alter table student modify age varchar2(31);--修改student表的age字段类型为varchar2(31)
添加字段并设置默认值为uuid:
alter table student add(uuid VARCHAR2(32) default sys_guid())
重命名表:alter table table_old_name rename to table_new_name
alter table student rename to students;--修改student表的名称为students
删除表:drop table table_name[cascade constraints];
如果该表存在约束,关联的视图和触发器等,则必须使用”cascade constraints
”这个可选子句才能将其删除。
表的闪回:
一般情况下,当某个表被删除后,实际上它并没有被彻底删除(仅仅是在数据字典中被除名),而是把表放到了回收站中(依然占用内存)。可以使用flashback table语句进行还原。
flashback table student before drop;--还原student表
修改表状态:alter table table_name read [only|write];
alter table student read only;--修改student表为只读
非空约束(not null):限制必须为某个列提供值。
alter table student modify age not null;--为age添加非空约束
alter table student modify age null;--删除age的非空约束
主键约束(primary key):用于唯一的标识表中的每一行记录。
alter table student add constraint Stu_PK primary key(StuName);--为student表添加主键Stu_PK
alter table student add primary key(StuName);--为student表添加系统自动分配名称的主键
alter table student drop constraint Stu_PK;--删除主键
唯一性约束(unique):强调所在列不允许有相同的值,但是可以允许为空值。
类似于主键约束。
外键约束(foreign key):在”另外一张表中”,被引用的列中不存在的数据不能出现在“当前表,”对应列中。
alter table student add constraint temp_departid_fk
foreign key(age) reference students(age); --创建外键约束
禁用和激活约束:alter table table_name [enable|disable] constraint con_name;
删除约束:alter table table_name drop constraint con_name;
添加字段备注:comment on column table.column is '';
comment on column student.name is '学生姓名';
添加表备注:comment on table tablename is '';
comment on table student is '学生信息表';