修改表和约束(alter语句)
测试的表:
//在表中添加一个新的列
//这个约束相当于之前的表级约束
//删除表中的约束
测试的表:
create table t_user(
id number constraint user_id_pk primary key,
name varchar2(100),
salary number
);
drop table t_user;
//在表中添加一个新的列
alter table t_user
add birthday date;
//删除表的某列
alter table t_user
drop column birthday;
以上结果如下所示:
//这个约束相当于之前的表级约束
alter table t_user
add constraint user_name_un
unique(name);
//测试刚添加的唯一约束是否生效
insert into t_user(id,name) values(3,'zs');
结果如下图所示,违反唯一性约束,因为以前的实验中有zs用户,所以现在不能够插入
//删除表中的约束
alter table t_user
drop constraint user_name_un;
//修改表的名字:
rename t_user to mytest;
rename mytest to t_user;
//修改表中某列的类型
alter table t_user
modify (name varchar2(500));
//让约束失效:必须知道约束的名字
alter table t_user
disable constraint user_id_pk cascade;
//测试是否设置成功
insert into t_user(id,name) values(1,'zs1');
insert into t_user(id,name) values(1,'zs2');
//让失效的约束再次生效
alter table t_user
enable constraint user_id_pk;
//截断表中的数据(删除),不需要提交,默认已经提交,并且不能回滚
truncate table t_user;
相当于:
delete from t_user;
commit;
//给表添加注释
comment on table t_user is '很好';
//给列添加注释
comment on column t_user.name is 'good';
//查看表中注释
select * from user_tab_comments where table_name=upper('t_user');
//查看列中的注释
select * from user_col_comments
where
comments is not null
and
table_name=upper('t_user');