GBase 8a数据库修改基本表

如果用户的需求发生了变化,则基本表的结构必然要进行相应的调整。对于已经装载了大量数据的表,或者被其他数据库对象引用(例如参照完整性)的表,调整表结构不宜采取删除重建的办法。SQL 提供了 ALTER TABLE 语句用于修改基本表,其语法格式为:

ALTER TABLE <表名>

{

ADD (<新列名> <新列类型> [BEFORE <列名>] [列级完整性约束],…)

|DROP (<旧列名>[ RESTRICT | CASCADE ], …)

|MODIFY (<旧列名> <新类型> [列级完整性约束], … )

}

要修改的基本表由<表名>指定。ADD 子句用于向基本表中添加新列,描述新列的语法格式与 CREATE TABLE 中定义列的格式相同。DROP 子句用于删除表中已有的列。MODIFY子句用于修改已有列的定义。注意,ALTER TABLE 修改的是表本身的结构(即表的定义),而不是表中装载的数据。

例 1.8 在 customer 表中添加 city 列,用于存储客户所在的城市:

alter table customer add city CHAR(10) before state;

使用子句 before state 表示将列插入表的 state 列之前,若不声明则在表的最后添加该列。

例 1.9 将 customer 表中的 city 列删除:

alter table customer drop city;

执行该语句后,city 列及其中的数据会被删除,与该列相关的表级约束也会被删除。

例 1.10 将 items 表中的 ship_price 列的数据类型修改为 INT:

alter table items modify ship_price INT;

除了可以对表中的某几列进行修改,我们还可以对表级完整性约束进行创建和删除,其语法格式如下:

ALTER TABLE <表名称>

{

ADD (CONSTRAINT<表级完整性约束>, …)

|DROP (CONSTRAINT <约束名>, …)

}

例 1.11 在 items 表中添加引用约束 FK_RELATIO_ORDERS:

alter table items add constraint foreign key (order_num) references orders (order_num) constraint FK_RELATIO_ORDERS;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值