例题(续) ●[例2建立一个“学生选课”表SC,它由学号 Sno、课程号Cno,修课成绩 Grade组成,其中 (Sno,Cno)为主码。 CREATE TABLE SCO Sno Char(5) Cno CHAR(3) Grade int Primary key(sno, Cno));
例题 (续) [例2] 建立一个“学生选课”表SC,它由学号 Sno、课程号Cno,修课成绩Grade组成,其中 (Sno, Cno)为主码。 CREATE TABLE SC( Sno CHAR(5) , Cno CHAR(3) , Grade int, Primary key (Sno, Cno));
二、修改基本表 语句格式 ALTER TABLE<表名> ADD<新列名><数据类型>完整性约束] DROP<完整性约束名> I MODIFY<列名><数据类型> <表名>:要修改的基本表 ADD子句:增加新列和新的完整性约束条件 DROP子句:删除指定的完整性约束条件 MODIFY子句:用于修改列名和数据类型
二、修改基本表 语句格式 ALTER TABLE <表名> [ ADD <新列名> <数据类型> [ 完整性约束] ] [ DROP <完整性约束名> ] [ MODIFY <列名> <数据类型> ]; – <表名>:要修改的基本表 – ADD子句:增加新列和新的完整性约束条件 – DROP子句:删除指定的完整性约束条件 – MODIFY子句:用于修改列名和数据类型
二、修改基本表 语句格式(续) 只能间接删除属性列 把表中要保留的列及其内容复制到一个新 表中 删除原表 再将新表重命名为原表名 不能修改完整性约束 不能为已有列增加完整性约束
二、修改基本表 语句格式(续) – 只能间接删除属性列 • 把表中要保留的列及其内容复制到一个新 表中 • 删除原表 • 再将新表重命名为原表名 – 不能修改完整性约束 – 不能为已有列增加完整性约束
例题 ●[例2]向 Student:表增加“入学时间”列,其数据 类型为日期型。 ALTER TABLE Student add Scome date 不论基本表中原来是否已有数据,新增加的列一律 为空值。 如果基本表中原来已有数据,新增列不可有NOT NULL约束
例题 [例2] 向Student表增加“入学时间”列,其数据 类型为日期型。 ALTER TABLE Student ADD Scome DATE; – 不论基本表中原来是否已有数据,新增加的列一律 为空值。 – 如果基本表中原来已有数据,新增列不可有NOT NULL约束
例题 「例3将年龄的数据类型改为半字长整数。 ALTER TABLE Student MoDIfY Sage SMaLLINt 注:修改原有的列定义有可能会破坏已有数据
例题 [例3] 将年龄的数据类型改为半字长整数。 ALTER TABLE Student MODIFY Sage SMALLINT; – 注:修改原有的列定义有可能会破坏已有数据