PgSQL——学习笔记15:ALTER TABLE 命令 & TRUNCATE TABLE

目录

ALTER TABLE 命令:

1.添加列的语法如下:——ADD

2.删除列的语法如下:——DROP COLUMN

3.修改表中某列的 DATA TYPE(数据类型)的语法如下:——ALTER COLUMN

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

5.给表中某列添加 UNIQUE 约束的语法如下:

6. 给表中某列添加 CHECK 约束的语法如下:

7. 给表中某列添加 PRIMARY KEY 主键的语法如下:

8.删除约束的语法如下:

9.删除主键的语法如下:

TRUNCATE TABLE:删除表的数据,但不删除表结构

 TRUNCATE TABLE 基础语法如下:


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 行记录)

猜你喜欢

转载自blog.csdn.net/qq_41361442/article/details/124864966