实例017 使用ALTER TABLE命令增加新字段
【实例描述】
用户使用数据时,随着应用要求的改变,往往需要对原来的表结构进行修改。与对表结构定义都用CREATE TABLE命令相似,对表结构的修改都是使用ALTER TABLE命令来实现。
本实例使用SQL中的ALTER TABLE命令为一个已经存在的表增加一个新字段,也即添加一个新的字段。本实例针对实例016中创建的表STU,它含有SNO、SNAME、SGENTLE、SAGE、SBIRTH和SDEPT 6个字段,现在需要为该表增加一个新字段SMAJOR,表示其所学专业,该字段为字符型数据类型,长度20,并且该字段不能为空,默认值为“计算机科学与技术”。本实例执行完成后,在SQL*Plus中查看表结构,如图2-4所示。
图2-4 增加新字段
【实现代码】
SQL> ALTER TABLE STU 2 ADD SMAJOR VARCHAR2 (20) 3 DEFAULT '计算机科学与技术' 4 NOT NULL 5 /
【范例解析】
本实例为一个已经存在的表增加一个新列,在Oracle PL/SQL中,使用ALTER TABLE命令来实现该操作。执行上述语句后,即为表STU增加了一个新的字段SMAJOR,它是一个长度20字节的字符数据,该字段不能为空且默认值为“计算机科学与技术”。增加该字段后,打开STUDENT表结构可以看到在最后一行中显示了新增的字段,如图2-4所示。
事实上,Oracle中的ALTER TABLE命令用于增加新字段的常用格式为:
ALTER TABLE 〈表名1〉 ADD [COLUMN] 〈字段名1〉〈字段类型〉[(〈长度〉[,〈小数位数〉])] [DEFAULT〈表达式1〉] [NULL | NOT NULL]
其中,ADD [COLUMN]子句指出新增加字段的字段名及他们的数据类型等信息,DEFAULT子句指出该字段的默认值,NULL | NOT NULL子句指明该字段是否可以为空。Oracle中如不指定NULL | NOT NULL子句,则默认为NULL,即允许为空。
注意:在Oracle等关系型数据库中,关系以二维表的形式存在,记录也称为表的行,字段也称为表的列。因此,本书中对记录和字段的写法有时也写为行和列,因为其表述更为直观。