テーブル名と、テーブルの全ての列の名前と型を指定することで、新しいテーブルを作成できます。
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
;