在 GBase 8s 中,ALTER TABLE 命令用于添加,修改,删除一张已经存在表的列。
另外你也可以用 ALTER TABLE 命令添加和删除约束。

语法
用 ALTER TABLE 在一张已存在的表上添加列的语法如下:

ALTER TABLE table_name ADD column_name datatype;

在一张已存在的表上 DROP(删除列),语法如下:

ALTER TABLE table_name DROP column_name;

修改表中某列的 DATATYPE(数据类型),语法如下:

ALTER TABLE table_name MODIFY column_name datatype;

给表中某列添加 NOT NULL 约束,语法如下:

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

给表中某列 ADD UNIQUE CONSTRAINT( 添加 UNIQUE 约束),语法如下:

ALTER TABLE table_name
ADD CONSTRAINT UNIQUE(column1, column2...) [CONSTRAINT constraint_name] ;

给表中 ADD CHECK CONSTRAINT(添加 CHECK 约束),语法如下:

ALTER TABLE table_name
ADD CONSTRAINT  CHECK(condition) [CONSTRAINT constraint_name];

给表 ADD PRIMARY KEY(添加主键),语法如下:

ALTER TABLE table_name
ADD CONSTRAINT PRIMARY KEY(column1, column2...) [CONSTRAINT constraint_name] ;

DROP CONSTRAINT (删除约束),语法如下:

ALTER TABLE table_name
DROP CONSTRAINT constraint_name;

实例
创建 COMPANY 表,数据内容如下:

DROP TABLE IF EXISTS COMPANY;
CREATE TABLE COMPANY(ID         SERIAL         PRIMARY KEY,NAME       VARCHAR(40)    NOT NULL,AGE        INT            NOT NULL,ADDRESS    CHAR(50),SALARY     DECIMAL(10,2),JOIN_DATE  DATE           DEFAULT TODAY
);
INSERT INTO COMPANY VALUES (0, '李雷', 37, '北京', 20000.00,'2005-05-13');
INSERT INTO COMPANY VALUES (0, '韩梅梅', 35, '天津', 16000.00, '2007-12-18');
INSERT INTO COMPANY VALUES (0, '林涛', 36, '上海', 25000.00, '2006-01-04');
INSERT INTO COMPANY VALUES (0, '魏华', 36, '西安', 15000.00, '2007-08-30');
INSERT INTO COMPANY VALUES (0, '露茜', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '莉莉', 34, '伦敦', 22000.00, '2008-08-08');
INSERT INTO COMPANY VALUES (0, '吉姆', 35, '华盛顿', 16000.00, '2010-12-13');
INSERT INTO COMPANY VALUES (0, '汤姆', 36, '渥太华', 21000.00, '2010-04-30');

此时,COMPANY的表记录为:

id name age address salary join_date
1 李雷 37 北京 20000.00 2005-05-13
2 韩梅梅 35 天津 16000.00 2007-12-18
3 林涛 36 上海 25000.00 2006-01-04
4 魏华 36 西安 15000.00 2007-08-30
5 露茜 34 伦敦 22000.00 2008-08-08
6 莉莉 34 伦敦 22000.00 2008-08-08
7 吉姆 35 华盛顿 16000.00 2010-12-13
8 汤姆 36 渥太华 21000.00 2010-04-30

下面实例在这张表中添加新的列sex,位于age 字段之前:

alter table company add sex smallint default 1 before age;

现在表长这样,增加了sex字段,并有默认值:

id name sex age address salary join_date
1 李雷 1 37 北京 20000.00 2005-05-13
2 韩梅梅 1 35 天津 16000.00 2007-12-18
3 林涛 1 36 上海 25000.00 2006-01-04
4 魏华 1 36 西安 15000.00 2007-08-30
5 露茜 1 34 伦敦 22000.00 2008-08-08
6 莉莉 1 34 伦敦 22000.00 2008-08-08
7 吉姆 1 35 华盛顿 16000.00 2010-12-13
8 汤姆 1 36 渥太华 21000.00 2010-04-30

下面实例删除 sex 列:

alter table company drop sex;

得到结果如下:

id name age address salary join_date
1 李雷 37 北京 20000.00 2005-05-13
2 韩梅梅 35 天津 16000.00 2007-12-18
3 林涛 36 上海 25000.00 2006-01-04
4 魏华 36 西安 15000.00 2007-08-30
5 露茜 34 伦敦 22000.00 2008-08-08
6 莉莉 34 伦敦 22000.00 2008-08-08
7 吉姆 35 华盛顿 16000.00 2010-12-13
8 汤姆 36 渥太华 21000.00 2010-04-30

下面实例在这张表中修改字段address的数据类型,并限制not null :

alter table company modify address varchar(60) not null;

下面实例在这张表中为字段salary增加check约束:

alter table company add constraint check(salary > 2000) constraint con_chk_company;

下面实例在这张表中删除约束:

alter table company drop constraint con_chk_company;

[GBase 8s 教程]GBase 8s ALTER TABLE 命令相关推荐

  1. php mysql修改命令_PHP编程:mysql alter table命令修改表结构实例详解

    <PHP编程:mysql alter table命令修改表结构实例详解>要点: 本文介绍了PHP编程:mysql alter table命令修改表结构实例详解,希望对您有用.如果有疑问,可 ...

  2. postgresql表中间加列_PostgreSQL ALTER TABLE命令

    PostgreSQL的ALTER TABLE命令用来添加,删除,或修改现有表中的列. www.yiibai.com 还可以使用ALTER TABLE命令添加和删除现有表上的各种制约因素. yiibai ...

  3. mysql alter table if_MySQL中的alter table命令的基本使用方法及提速优化

    一.基本用法 1. 增加列 ?1alter table tbl_nameadd col_name type 例如,  给pet的表增加一列 weight, ?1mysql>alter table ...

  4. [GBase 8s 教程]GBase 8s NULL值处理

    NULL 值代表遗漏的未知数据.使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据, 但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. NULL 值与任何其它 ...

  5. [GBase 8s 教程]GBase 8s 创建表格

    GBase 8s 使用 CREATE TABLE 语句来创建数据库表格. 语法 CREATE TABLE 语法格式如下: CREATE TABLE [ IF NOT EXISTS ] table_na ...

  6. [GBase 8s 教程]GBase 8s 运算符/函数

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号. GBase 8s 运算符是一个保留关键字或字符,一般用在 WHERE 语句中,作为过滤条件. 常见的运算符/函数有: 算术运算符/函数 比较运算 ...

  7. [GBase 8s 教程]GBase 8s 分页语法

    GBase 8s 中支持使用SKIP m FIRST/LIMIT n 选项,或者使用TOP m,n 选项来限制SELECT语句中查询的数据的数量. 注:两者不可同时使用. 语法 带有SKIP m FI ...

  8. [GBase 8s 教程]GBase 8s UNION 操作符

    GBase 8s UNION 操作符合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每个 SEL ...

  9. [GBase 8s 教程]GBase 8s 自动增长(AUTO INCREMENT)

    AUTO INCREMENT(自动增长) 会在新记录插入表中时生成一个唯一的数字. GBase 8s 使用序列来标识字段的自增长,数据类型有 serial.serial8 和 bigserial . ...

最新文章

  1. The ECDSA host key for XXX has changed
  2. NRFI:网络结点不会指数增加的「神经随机深林模拟」
  3. django性能优化缓存view详解
  4. Kettle和ETL的基本构成
  5. Java 分页,两种方式的分页,即取即用的代码,不客气
  6. python对话框代码_Python、tkinter、复杂对话框和代码结构
  7. jquery自动触发事件
  8. Unknown column 'XXX' in 'where clause'一例排查
  9. java中apache安装与配置_Apache应用服务器之四:Apache与Tomcat安装与配置
  10. jdk1.8_googleV3免费下载(API中文文档)
  11. python win7 win10_Python如何获取Win7,Win10系统缩放大小
  12. linux libpng dev,linux下实用图形库--libpng下载地址及说明
  13. 多线程编程warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] 错误解决
  14. 作为一个大学才开始入门学计算机编程的孩子想要的东西-----听我扯,你蛋疼,他菊紧,我开心...
  15. Excel通过图片名插入图片
  16. JSON.stringify初步使用
  17. 跨境爆款ANC主动降噪耳机,蓝牙耳机厂家分享产品详细参数
  18. “算力经济”时代扑面而来,智算中心成未来数据中心进化方向
  19. java io合并两个txt文件_java将多个txt文件合并成一个文件
  20. 谐振电路及品质因数(二)

热门文章

  1. Ubuntu 各特色版已同意停止使用 Flatpak 作为其操作系统的默认打包系统
  2. matlab 类写法,matlab中函数表达式的写法
  3. 华师计算机应用基础知识,华师计算机应用基础课后习题答案.doc
  4. 奢侈手机鼻祖Vertu走下神坛 但为什么国产厂商却掀起了奢华风?
  5. 前Vertu设计师推出Android版iBeacon,无需专有硬件,没话费的旧手机都能做基站
  6. Linux:配置tomcat
  7. 【Http请求工具类】
  8. 互联互通-标准化成熟度指标分析(更新中)
  9. 测试基础+性能测试+自动化测试面试题(含答案)
  10. 基于ROS的qbo机器人