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 命令中自由使用空白(也就是空格,tab,和换行符). 这就意味着你可以用和上面不同的对齐方式键入命令. 两个划线("--") 引入注释. 任何跟在它后面的东西直到该行的结尾都被忽略. SQL 是对关键字和标识符大小写不敏感的语言,只有在标识符用 双引号引起时才能保留它们的大小写属性(上面没有这么干).

varchar(80) 声明一个可以存储最长 80 个字符的 任意字符串的数据类型.int 是普通的整数类型. real 是一种用于存储单精度浮点数的类型. date 类型应该可以自解释.(没错,类型为 date 的字段名字也是 date. 这么做可能比较方便,也可能容易让人混淆 -- 你自己看啦.)

PostgresSQL 支持通常的 SQL 类型 intsmallintrealdouble precisionchar(N)varchar(N)datetimetimestampinterval,还支持其他的通用类型和丰富的几何类型. PostgreSQL 客户化 为定制任意的用户定义的数据类型.因而类型名并不是语法关键字, 除了 SQL92 标准要求支持的特例外.

第二隔例子将保存城市和它们相关的地理位置∶

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

类型 point 就是一种 PostgreSQL 特有数据类型的例子.

最后,我们还要提到如果你不再需要某个表,或者你想创建一个不同的 表,那么你可以用下面的命令删除它∶

DROP TABLE tablename;