2.3. 創建新表

你可以通過聲明表的名字和所有字段的名字及其類型來創建表︰

CREATE TABLE weather (
    city            varchar(80),
    temp_lo         int,           -- 最低氣溫
    temp_hi         int,           -- 最高氣溫
    prcp            real,          -- 降水量
    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;