create table tbl(id number, name varchar2(20)); insert into tbl values(01, 'xiaoliu');
在创建表的时候为某一列设置默认值
1 2 3 4
create table tbl(id number, name varchar2(20), hiredate date default sysdate); //hiredate date default sysdate 如果hiredate为空,默认使用系统日期值
insert into tbl(id, name) values(02, 'xiaohong'); ---若没有插入hiredate的值, 则使用默认值
通过已有的表创建一个表, 相当于表结构的复制
1
create table tbl_bak as select * from tbl where 1=2;
修改表
增加一个列
1 2 3
alter table 表名 add 列名 类型;
alter table tbl add email varchar2(30);
修改列属性
1 2
alter table 表名 modify 列名 要修改的类型; alter table tbl modify email varchar2(40);
重命名列
1 2
alter table 表名 rename column 旧列名 to 新列名; alter table tbl rename column email to address;
删除列
1 2
alter table 表名 drop column 列名; alter table tbl drop column address;
表名的重命名
1 2
rename 旧表名 to 新表名; rename t1 to t2;
删除表
1 2 3 4 5
drop table 表名; --删除的表可以闪回 drop table 表名 purge; --purge的作用删除不经过回收站, 删除的表不可以闪回 drop table tbl; --删除的表可以闪回 drop table tbl purge; --purge的作用删除不经过回收站, 删除的表不可以闪回
表的闪回:删除的表恢复回来
1 2 3 4 5 6 7 8 9 10 11 12
实现过程: 1 create table tbl(id number, name varchar2(20)); 2 drop table tbl; 3 select * from tab; ---看tname那一列 4 show recyclebin; ----看ORIGINAL NAME那一列 5 flashback table tbl to before drop; 假如: drop table tbl purge; 则不能闪回了 1 drop table tbl purge; 2 select * from tab; 3 show recyclebin; 4 flashback table tbl to before drop;
create table dept_bak as select * from dept; alter table dept_bak add constraint pk_dept_bak primary key (DEPTNO);
使用约束的例子:
1 2 3 4 5 6 7 8 9 10 11 12 13
create table student( id number constraint pk_student primary key, ---主键(非空唯一) name varchar2(30) not null, --非空 email varchar2(30) unique, --唯一 sex varchar2(10) check(sex in ('男','女')), --check约束 sal number check(sal>10000), --check约束 deptno number(2) references dept_bak(deptno) on delete set null --当dept_bak表的数据被删除以后, 该列设置为null ); REFERENCES: 标示在父表中的列 ON DELETE CASCADE(级联删除): 当父表中的列被删除时,子表中相对应的列也被删除 ON DELETE SET NULL(级联置空): 子表中相应的列置空
给hiredate设置默认值
1
alter table student add hiredate date default sysdate;