PostgreSQL 教程
1. PostgreSQL 教程 2. Linux 上安装 PostgreSQL 3. Windows 上安装 PostgreSQL 4. Mac OS 上安装 PostgreSQL 5. PostgreSQL 语法 6. PostgreSQL 数据类型 7. PostgreSQL 创建数据库 8. PostgreSQL 选择数据库 9. PostgreSQL 删除数据库 10. PostgreSQL 创建表格 11. PostgreSQL 删除表格 12. PostgreSQL 模式(SCHEMA) 13. PostgreSQL INSERT INTO 语句 14. PostgreSQL SELECT 语句 15. PostgreSQL 运算符 16. PostgreSQL 表达式 17. PostgreSQL WHERE 子句 18. PostgreSQL AND & OR 运算符 19. PostgreSQL UPDATE 语句 20. PostgreSQL DELETE 语句 21. PostgreSQL LIKE 子句 22. PostgreSQL LIMIT 子句 23. PostgreSQL ORDER BY 语句 24. PostgreSQL GROUP BY 语句 25. PostgreSQL WITH 子句 26. PostgreSQL HAVING 子句 27. PostgreSQL DISTINCT 关键字 28. PostgreSQL 约束 29. PostgreSQL 连接(JOIN) 30. PostgreSQL UNION 操作符 31. PostgreSQL NULL 值 32. PostgreSQL 别名 33. PostgreSQL 触发器 34. PostgreSQL 索引 35. PostgreSQL ALTER TABLE 命令 36. PostgreSQL TRUNCATE TABLE 37. PostgreSQL View(视图) 38. PostgreSQL TRANSACTION(事务) 39. PostgreSQL LOCK(锁) 40. PostgreSQL 子查询 41. PostgreSQL AUTO INCREMENT(自动增长) 42. PostgreSQL PRIVILEGES(权限) 43. PostgreSQL 时间/日期函数和操作符 44. PostgreSQL 常用函数

PostgreSQL ALTER TABLE 命令

PostgreSQL ALTER TABLE 命令

在 PostgreSQL 中,ALTER TABLE 命令用于添加,修改,删除一张已经存在表的列。

另外你也可以用 ALTER TABLE 命令添加和删除约束。

语法

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

ALTER TABLE table_name ADD column_name datatype;

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

ALTER TABLE table_name DROP COLUMN column_name;

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

ALTER TABLE table_name ALTER COLUMN column_name TYPE datatype;

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

ALTER TABLE table_name MODIFY column_name datatype NOT NULL;

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

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);

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

ALTER TABLE table_name

ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);

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

ALTER TABLE table_name

ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);

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

ALTER TABLE table_name

DROP CONSTRAINT MyUniqueConstraint;

如果是 MYSQL ,代码是这样:

ALTER TABLE table_name

DROP INDEX MyUniqueConstraint;

DROP PRIMARY KEY (删除主键),语法如下:

ALTER TABLE table_name

DROP CONSTRAINT MyPrimaryKey;

如果是 MYSQL ,代码是这样:

ALTER TABLE table_name

DROP PRIMARY KEY;

实例

创建 COMPANY 表(下载 COMPANY SQL 文件 ),数据内容如下:

db# select * from COMPANY;

 id | name  | age | address   | salary

----+-------+-----+-----------+--------

  1 | Paul  |  32 | California|  20000

  2 | Allen |  25 | Texas     |  15000

  3 | Teddy |  23 | Norway    |  20000

  4 | Mark  |  25 | Rich-Mond |  65000

  5 | David |  27 | Texas     |  85000

  6 | Kim   |  22 | South-Hall|  45000

  7 | James |  24 | Houston   |  10000

(7 rows)

下面实例在这张表中添加新的列:

db=# ALTER TABLE COMPANY ADD GENDER char(1);

现在表长这样:

 id | name  | age | address     | salary | gender

----+-------+-----+-------------+--------+--------

  1 | Paul  |  32 | California  |  20000 |

  2 | Allen |  25 | Texas       |  15000 |

  3 | Teddy |  23 | Norway      |  20000 |

  4 | Mark  |  25 | Rich-Mond   |  65000 |

  5 | David |  27 | Texas       |  85000 |

  6 | Kim   |  22 | South-Hall  |  45000 |

  7 | James |  24 | Houston     |  10000 |

(7 rows)

下面实例删除 GENDER 列:

db=# ALTER TABLE COMPANY DROP GENDER;

得到结果如下:

id | name  | age | address   | salary

----+-------+-----+-----------+--------

  1 | Paul  |  32 | California|  20000

  2 | Allen |  25 | Texas     |  15000

  3 | Teddy |  23 | Norway    |  20000

  4 | Mark  |  25 | Rich-Mond |  65000

  5 | David |  27 | Texas     |  85000

  6 | Kim   |  22 | South-Hall|  45000

  7 | James |  24 | Houston   |  10000