2024 年 9 月 26 日:PostgreSQL 17 发布!
支持的版本:当前 (17) / 16 / 15 / 14 / 13 / 12
开发版本:devel
不支持的版本: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 可以用任意数量的用户定义数据类型进行自定义。因此,除了在支持标准中的特殊情况下需要时,类型名称在语法中不是关键字。SQL标准。

第二个示例将存储城市及其相关的地理位置

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

point 类型是 PostgreSQL 特定数据类型的一个示例。

最后,应该提到的是,如果您不再需要某个表,或者想要以不同的方式重新创建它,您可以使用以下命令将其删除

DROP TABLE tablename;

提交更正

如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步说明,请使用 此表格 报告文档问题。