2025年9月25日: PostgreSQL 18 釋出!
支援版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不受支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2

2.3. 建立新表 #

您可以指定表名以及所有列名及其型別來建立一個新表。

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- low temperature
    temp_hi         int,           -- high temperature
    prcp            real,          -- precipitation
    date            date
);

您可以在 psql 中輸入此命令,並換行。 psql 將識別命令直到分號才結束。

SQL 命令中可以自由使用空白字元(例如空格、製表符和換行符)。這意味著您可以以不同於上面的方式排版命令,甚至可以將整個命令寫在一行上。兩個連字元(--)用於引入註釋。它們後面的所有內容直到行尾都會被忽略。SQL 關鍵字和識別符號在大小寫上是不敏感的,除非識別符號被雙引號括起來以保留其大小寫(上面沒有這樣做)。

varchar(80) 指定了一種資料型別,它可以儲存長度最多為 80 個字元的任意字串。 int 是標準的整數型別。 real 是用於儲存單精度浮點數的型別。 date 應該不言而喻。(是的,date 型別的列也命名為 date。這可能很方便,也可能令人困惑——由您決定。)

PostgreSQL 支援標準SQL型別 intsmallintrealdouble precisionchar(N)varchar(N)datetimetimestampinterval,以及其他通用實用型別和豐富的幾何型別集。 PostgreSQL 可以透過任意數量的使用者定義資料型別進行自定義。因此,型別名稱不是語法中的關鍵字,除非為了支援特定情況下的特殊情況而必需。SQLSQL 標準的一部分。

第二個示例將儲存城市及其相關的地理位置。

CREATE TABLE cities (
    name            varchar(80),
    location        point
);

point 型別是 PostgreSQL 特定資料型別的一個例子。

最後,應該提到的是,如果您不再需要某個表,或者想以不同的方式重新建立它,您可以使用以下命令將其刪除。

DROP TABLE tablename;

提交更正

如果您在文件中發現任何不正確的內容,與您對特定功能的體驗不符,或者需要進一步澄清,請使用 此表單 報告文件問題。