修改表结构
当一张数据表建立完成之后如果发现表结构不合适,则可以修改列或者是增加数据列,下面为了方便说明,首先编写如下的数据库创建脚本。
-- 删除数据表
DROP TABLE member PURGE ;
-- 创建数据表
CREATE TABLE member( mid NUM BER ,
name VARCHAR2(30)
) ;
-- 增加测试数据
INSERT INTO member(mid,name) VALUES (1,'张三') ; INSERT INTO member(mid,name) VALUES (2,'李四') ;
-- 提交事务
1、 为表中增加数据列
ALTER TABLE 表名称 ADD(
列名称 数据类型 [DEFAULT 默认值],
列名称 数据类型 [DEFAULT 默认值], ...)
范例: 为 member 表增加一个没有设置默认值的列
ALTER TABLE member ADD(address VARCHAR(50)) ;
范例: 为 member 表增加一个有默认值的列
ALTER TABLE member ADD(sex VARCHAR(10) DEFAULT '男') ;
此时发现 address 数据列增加之后,所有数据行对应的列信息都是 null 数据。范例: 为 member 表增加一个有默认值的列
发现此时所有数据行之中增加列上都存在了默认值,相当于更新了所有的数据行。
2、 修改列结构
范例: 修改 name 列的定义,增加默认值
ALTER TABLE member M ODIFY(name VARCHAR2(20) DEFAULT '无名氏') ;
INSERT INTO member(mid) VALUES (5) ;
从标准的 SQL 来讲,是一定要提供有数据表的修改操作的,但是从实际的开发来讲,任何人都不允许有随意修改数据表结构的想法,而且更不能说自己去修改。同时需要提醒的是在 IBM DB2 数据库之中是根本不允许修改表结构的,就不支持 ALTER 指令。