テーブル名と、テーブルの全ての列の名前と型を指定することで、新しいテーブルを作成することができます。
CREATE TABLE weather ( city varchar(80), temp_lo int, -- 最低温度 temp_hi int, -- 最高温度 prcp real, -- 降水量 date date );
上のコマンドを複数の行に分けて psql に入力することができます。 psql はセミコロンが来るまでコマンドが終了したと認識しません。
SQL コマンドでは空白文字(つまり空白、タブ、改行)を自由に使用することができます。つまり、上で示したコマンドとは異なる形で入力することができることを意味します。全てを 1 行で入力することさえできます。連続した 2 つのダッシュ("--")はコメントの始まりです。その後に入力したものは、行末まで無視されます。SQL はキーワードと識別子に対して大文字小文字を区別しません。ただし、(上では行っていませんが)識別子が二重引用符で括られていた場合は大文字小文字を区別します。
varchar(80) は、80 文字までの任意の文字列を格納できるデータ型を指定しています。int は一般的な整数用の型です。 real は単精度浮動小数点数値を格納する型です。date はその名前から判るでしょう。(判ると思いますが、date 型の列は date と名付けられています。これは判り易いかもしれませんし、混乱を招くかもしれません。これは好みによります。)
PostgreSQL は一般的な SQL のデータ型、int、smallint、real、 double precision、char(N)、 varchar(N)、date、time、 timestampや interval をサポートします。また、一般的なユーティリティ用の型や高度な幾何データ型もサポートします。任意の数のユーザ定義のデータ型を使用して、PostgreSQL をカスタマイズすることができます。従って、SQL 標準における特殊な場合をサポートするために必要な場所を除き、型の名前は構文的なキーワードではありません。
以下に示す 2 番目の例では、都市とその地理的な位置情報を格納します。
CREATE TABLE cities ( name varchar(80), location point );
point 型は、PostgreSQL 独自のデータ型の一例です。
最後に、テーブルが不要になった場合や別のものに作り直したい場合、以下のコマンドを使用して削除できることを示しておくべきでしょう。
DROP TABLE tablename;