基本表的的删除与修改

博文所写语句都经过oracle环境测试通过

修改基本表

ALTER TABLE <表名>
[ADD <新列名><数据类型>[完整性约束]]
[ DROP column 列名]
[add constraint <完整性约束名> <完整性约束>]
[DROP constraint <完整性约束名>]
[MODIFY<列名> <数据类型>[完整性约束]]
];  
其中<表名>指定需要修改的基本表,
ADD子句用于增加新列和新的完整性约束条件,
DROP子句用于删除指定的完整性约束条件,drop column用于删除表中的列。
MODIFY子句用于修改原有的列定义。

增加新的属性列

可以用alter table (表名) add 子句实现

CREATE TABLE Student(
 Sno varchar(12) primary key, 
 Sname varchar(20),
 Ssex char(2) default('男'), 
 Sage number(3), 
 Sdept varchar(10)
);
向Student表增加“入学时间”列,其数据类型为日期型。
alter table student add  S_entrance DATE;

注释:增添属性列的时候,add后面不用加关键字column,但是在删除属性列的时候,必须在drop后面加上column

当向一个表中添加多个列时,用括号围住一个由逗号分隔的列声明列表。列声明包括列名称、列类型及默认值。

例3-13 向Student表中加入“入学时间”、“生源地”两列。

alter table student add
(S_entrance DATE,
S_likai DATE);
删除属性列

可以用alter table (表名) drop 子句实现
删除一个属性列
例:删除学生表的属性列S_likai

alter table student drop column S_likai;

删除多个属性列
例如,删除学生表的属性列S_entrance和Sdept
要想删除多个列时,省略关键字COLUMN,并用括号括住要删除的列,列和列之间用逗号隔开。

alter table student drop
( Sdept,
	S_entrance
)
修改属性列

可以使用ALTER TABLE MODIFY语句来实现。

modify用于修改原有的列定义。

和列的删除和修改一样也涉及一个列和多个列的修改。

对一个列修改,要同时指定列名和新特征。

例3-16 将Stuent表中性别Ssex这一列由原来的char(2)修改为char(8),并赋默认值为‘女’。

alter table student modify Ssex char(8) DEFAULT('女'); 

对多个列的修改,用括号括住要修改的列,指明列名和新特征,列之间用逗号分隔。

例,把student表中的Sage改为Number(5),并将性别Ssex这一列由原来的char(2)修改为char(8),并赋默认值为‘女’。

alter table student modify 
( Ssex char(2) DEFAULT('女'),
	Sage number(5)
); 
添加约束

使用alter table (表名) add 约束;
用于orcle增加新的表级约束

CREATE TABLE Student(
 Sno varchar(12) , 
 Sname varchar(20),
 Ssex char(2) , 
Sage number(3), 
Sdept varchar(10)
);

例如增加student表中的Sno为主码约束

alter table student add 
		Constraint pk_Student primary key(Sno);

例:增加student表中的Sno为主码约束,并且增加Sname为唯一约束

alter table student ADD
			(Constraint pk_Student primary key(Sno),
				unique(Sname));

例:给student表中Sage增加check约束,Sage要大于20岁

alter table student ADD
		constraint ck_studnet check(Sage>20);

例:给student表中增加Ssex默认约束为男

存在疑问,无法add默认约束,只能modify。

alter table student MODIFY
     Ssex  DEFAULT('男');

例:给student表中增加Sdept为not null约束

alter table student modify
  Sdept Unique;
  alter table student modify
  Sdept not null;

例:给sc表中增加外码约束,Sno来自于Student表中的Sno

alter table sc ADD
   constraint fk_SC foreign key (Sno) references Student(Sno); 
删除约束

约束一旦建成就允许被删除,当禁用UNIQUE或PRIMARY KEY约束时需要小心,因为禁用这些约束可能导致它所生成的索引被删除。如果想删除一个已经存在的约束,可以使用ALTER语句

例3-17 将SC表中的检查约束pk_SC删除。

alter table SC drop constraint pk_SC;

例3-18 删除student表中关于学生姓名必须取唯一值的约束。

alter table student drop unique(Sname);
删除基本表

当某个基本表不再需要时,可以用DROP TABLE语句删除它。
一般格式为:
DROP TABLE <表名>

例3-19 删除Student表。

DROP TABLE Student; 

猜你喜欢

转载自blog.csdn.net/practical_sharp/article/details/89715933