GaussDB alter table的用法
1 alter table 的作用
alter table语句用于在已有的表中添加、修改或删除列。当我们新建了一个表之后,想对其进行修改,可以使用它。
2 添加列的语法
使用alter table 在现有的数据表中添加新列的基本语法如下:
alter table table_name add column_name datatype;
csdn=> \d+ customers;Table "csdn.customers"Column  |          Type          | Modifiers | Storage  | Stats target | Description
----------+------------------------+-----------+----------+--------------+-------------id       | bigint                 |           | plain    |              |name     | character varying(64)  |           | extended |              |addr     | character varying(128) |           | extended |              |city     | character varying(64)  |           | extended |              |zip      | character varying(64)  |           | extended |              |province | character varying(64)  |           | extended |              |
Has OIDs: no
Options: orientation=row, compression=no, storage_type=USTORE, segment=offcsdn=>
如上是customers表结构,如果需要在customers表再添加age字段:
示例:
alter table customers add age int;结果:

3 删除列的语法
alter table 在现有的数据表中删除列的基本语法如下:
alter table table_name drop column column_name;
我们再将上面"customers"刚增加的刚增加的"年龄"列给删除列给删除:
示例:
alter table customers drop column age;结果:

4 修改列类型
alter table 更改现有的数据表中列的数据类型的基本语法如下:
alter table table_name modify column_name datatype;我们将"customers"表的 邮编 由 char 类型改成 int 类型
示例:
alter table customers modify zip int;结果:

5 添加not null约束
使用alter table 给某列添加 not null 约束 的基本语法如下:
alter table table_name modify constraint constraint_name not null;我们可以将"customers" 表中的 省份 由 null 约束改成 not null 约束
示例:
 alter table customers modify  province  constraint province_null not null;结果:

6 添加唯一约束
alter table 给数据表添加唯一约束的基本语法如下:
alter table table_name add constraint constraint_unique_name unique(column1, column2...);
我们可以给"customers"表中的 姓名 添加唯一约束
示例:
alter table customers add constraint unique_name unique(name);结果:

7 添加check约束
alter table 给数据表添加 check 约束 的基本语法如下:
alter table table_name add constraint myuniqueconstraint check (condition);
我们可以给"customers“表中的 "age" 添加 check 约束,必须大于 0
alter table custmers add constraint check_age check ( age>0 );
待补充:
8 添加主键约束
alter table 给数据表添加 主键约束 的基本语法如下:
alter table table_name add constraint myprimarykey primary key (column1, column2...);
我们可以给"customers" 表中的 客户id" 添加主键约束
示例:
alter table customers add constraint pri_cust_id primary key(id);结果:

9 设置字段默认值
alter table 给数据表添加 字段默认值 的基本语法如下:
alter table table_name alter column_name set default expression;示例:
我们可以给"customers" 表中的 “省份" 添加默认值为"广东省":
alter table customers alter province set default '广东省';结果:

删除默认值:
alter table tablename alter columm_name drop default;

10 删除约束
使用 alter table 从数据表中 删除约束 的基本语法如下:
alter table table_name drop constraint myunique constraint;示例:
我们将刚才建的check约束删除掉
alter table customers drop constraint constraint_name;
11 批注
alter table可以对表进行各种更改操作,是我们修改表结构主要关键词,修改语法因不同的数据库平台略有差别。在使用的时候一定要看清是哪个数据库平台,以防混淆。
