目录
3.修改表中某列的 DATA TYPE(数据类型)的语法如下:——ALTER COLUMN
7. 给表中某列添加 PRIMARY KEY 主键的语法如下:
ALTER TABLE 命令:
在 PostgreSQL 中,
- ALTER TABLE 命令用于添加,修改,删除一张已经存在表的列。
- 另外你也可以用 ALTER TABLE 命令添加和删除约束。
用 ALTER TABLE 在一张已存在的表上:
1.添加列的语法如下:——ADD
ALTER TABLE table_name ADD column_name datatype;
2.删除列的语法如下:——DROP COLUMN
ALTER TABLE table_name DROP COLUMN column_name;
3.修改表中某列的 DATA TYPE(数据类型)的语法如下:——ALTER COLUMN
ALTER TABLE table_name ALTER COLUMN column_name TYPE datatype;
4.给表中某列添加 NOT NULL 约束的语法如下:
ALTER TABLE table_name ALTER column_name datatype NOT NULL;
5.给表中某列添加 UNIQUE 约束的语法如下:
ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint UNIQUE(column1, column2...);
6. 给表中某列添加 CHECK 约束的语法如下:
ALTER TABLE table_name
ADD CONSTRAINT MyUniqueConstraint CHECK (CONDITION);
7. 给表中某列添加 PRIMARY KEY 主键的语法如下:
ALTER TABLE table_name
ADD CONSTRAINT MyPrimaryKey PRIMARY KEY (column1, column2...);
8.删除约束的语法如下:
ALTER TABLE table_name DROP CONSTRAINT MyUniqueConstraint;
9.删除主键的语法如下:
ALTER TABLE table_name DROP CONSTRAINT MyPrimaryKey;
实例:
learn=# select * from company;
id | name | age | address | salary
----+------+-----+----------------------------------------------------+--------
1 | Paul | 32 | California | 20000
(1 行记录)
/*在这张表中添加新的列:*/
learn=# ALTER TABLE COMPANY ADD GENDER char(1);
ALTER TABLE
learn=# select * from company;
id | name | age | address | salary | gender
----+------+-----+----------------------------------------------------+--------+--------
1 | Paul | 32 | California | 20000 |
(1 行记录)
/*删除 GENDER 列:*/
learn=# ALTER TABLE COMPANY DROP GENDER;
ALTER TABLE
learn=# select * from company;
id | name | age | address | salary
----+------+-----+----------------------------------------------------+--------
1 | Paul | 32 | California | 20000
(1 行记录)
TRUNCATE TABLE:删除表的数据,但不删除表结构
PostgreSQL 中
- TRUNCATE TABLE 用于删除表的数据,但不删除表结构。
- DROP TABLE 用于删除表,会连表的结构一起删除,若想插入数据,需重新建这张表。
TRUNCATE TABLE 与 DELETE 具有相同的效果,但是由于它实际上并不扫描表,所以速度更快。
此外,TRUNCATE TABLE 可以立即释放表空间,而不需要后续 VACUUM 操作,这在大型表上非常有用。
PostgreSQL VACUUM 操作用于释放、再利用更新/删除行所占据的磁盘空间。
TRUNCATE TABLE 基础语法如下:
TRUNCATE TABLE table_name;
实例:
learn=# ALTER TABLE COMPANY DROP GENDER;
ALTER TABLE
learn=# select * from company;
id | name | age | address | salary
----+------+-----+----------------------------------------------------+--------
1 | Paul | 32 | California | 20000
(1 行记录)
/*使用了 TRUNCATE TABLE 来清除 COMPANY 表:*/
learn=# TRUNCATE TABLE COMPANY;
TRUNCATE TABLE
learn=# select * from company;
id | name | age | address | salary
----+------+-----+---------+--------
(0 行记录)