PgSQL - 学習ノート 15: ALTER TABLE コマンドと TRUNCATE TABLE

目次

ALTER TABLE コマンド:

1. 列を追加するための構文は次のとおりです。 - ADD

2. 列を削除するための構文は次のとおりです。 ——DROP COLUMN

3. テーブル内の列のデータ型を変更する構文は次のとおりです。 -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. テーブル内の列のデータ型を変更する構文は次のとおりです。 -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