表的创建、修改、删除
1.用于操纵表的DDL语言命令有:create table(创建)、alter table(修改表)、drop table(删除表)、truncate table(截断表)
- 1)创建表
create table <表名>
tablespace <表空间名称> 将表创建到哪个表中
create table dw1.student //创建表
(
sno varchar2(3) not null, //约束sno一列取值不为空
sname varchar2(8) not null,
ssex carchar2(2) not null,
degree number(4,1), //成绩字段数值类型
sbirthday date,
class varchar2(5),
constraint pk_dw_doctor primary key(ysbm),
//定义主键,(ysbm)主键字段,primary key主键
constraint fk_dw_doctor_ksbm foreign key (ksbm) references dw.dept(ksbm),
//定义外键,foreign key外键,从哪里引用references
check(xb = '1' or xb = '2')
//用来检测一列的取值范围
)
tablespace TS_DW; //指定表的默认表空间
//not null只能作为列级约束
- 2)修改表
通过alter table命令来实现可以对基本表的表结构进行更改,包括添加一行,删除一行,更改列的长度
语法规则
alter table tablename ADD/MODIFY/DROP DOLUMN/coloumnname[definition];
//add增加,modify修改,drop删除
alter table dw.doctor add tablename varchar2(10);
//在doctor中增加一个表,tablename(新列名称)
alter table dw.doctor drop column name;
//从表中删除列名称,drop后必须加column+列名称
alter table dw.doctor modify name varchar2(100);
//将表中的name字段改为长度为100的字段,只能改大不能改小
alter table dw1.student add constraint student_id_pk primary key (sno);
//add增加,primary主键,添加主键student_id_pk,主键字段(sno)
alter table dw1.student
add constraint dw_wj_sno foreign key (sno) references dw1.score(sno);
//添加外键,通过foreign添加,引用自references dw1.score(sno)
- 3)删除约束
alter table dw.student drop constraint dw_gen_1_kscj;
//通过drop删除,后+约束名称
当某个基本表不需要的时候,可以使用drop table删除
//删除表结构和表记录【限制删除|级联删除】
drop table <表名> [restrict|cascade]
该语句将删除表结构及表中记录,所以小心使用!!!
- 4)截断表
一般用于删除表中所有数据,但是要保留表结构
当需要删除表中所有数据是,可以使用truncate对表进行截断
在截断表时,表中包含的所有行都将被删除,但表本省会被保留,就是列依然存在,只是其中没有存储值
truncate能达到删除数据的目的,速度比delete快,但是无法rollback(恢复)
truncate table <表名>;
//删除