ファイヤープロジェクト
ちょっと使ってみる
2003-07-20T15:13+09:00   matsu
psqlでPostgreSQLに接続していろいろ試してみる.
psqlで接続できたところで,ちょっと使ってみる.まず接続してみる.
psql -h ホスト名 db名
そして,データベースを確認してみる.
=> \d
たとえばこんな風に出力されるような環境だったとして,話を進めてみる.
=> \d
   List of relations
  Name  | Type  | Owner 
--------+-------+-------
 table1 | table | username
(1 row)
あと最初に言っとくと出るには
=> \q
とする.
テーブルを作るには以下のようにする.
CREATE TABLE テーブル名 (列名 値の型,列名 値の型,列名 値の型,......);
そしてテーブルは以下のようにして確認できる.
\d テーブル名
例えばこんな風にすると
=> CREATE TABLE table1 (name TEXT,value INTEGER);
こんな風になる.
=> \d table1
        Table "table1"
 Column |  Type   | Modifiers 
--------+---------+-----------
 name   | text    | 
 value  | integer | 
レコードの追加は以下のようにして行う.
INSERT INTO テーブル名 VALUES (列名 値,列名 値,列名 値,......);
例えばこんな風にすると
=> INSERT INTO table1 VALUES ('ほげ',1);
=> INSERT INTO table1 VALUES ('ふが',2);
こんな風になる.
=> SELECT * FROM table1;
 name | value 
------+-------
 ほげ |     1
 ふが |     2
(2 rows)
値を変更するには,以下のようにする.
UPDATE テーブル名 SET 列名=何か WHERE 変更するレコードの条件;
例えばこんな風にすると
=> UPDATE table1 SET value=value*100 WHERE name='ほげ';
こんな風になる.
=> SELECT * FROM table1;
 name | value 
------+-------
 ふが |     2
 ほげ |   100
(2 rows)
WHERE以降を書かないと全レコードの値が変更される.
レコードを消すには以下のようにする.
DELETE FROM テーブル名 WHERE 削除するレコードの条件;
たとえばこんな風にすると
=> DELETE FROM table1 WHERE value=2;
こんな風になる.
=> SELECT * FROM table1;
 name | value 
------+-------
 ほげ |   100
(1 row)
レコードを全部消しさってもテーブルは残るの.で,テーブルは以下のようにして消す.
DROP TABLE テーブル名;
たとえばこんな風にすると,
=> DROP TABLE table1
こんな風になる.
=> SELECT * FROM table1;
ERROR:  Relation "table1" does not exist
=> \d table1
Did not find any relation named "table1".
=> \d
No relations found.
さっきと同様にテーブルをもう一回つくる.
=> CREATE TABLE table1 (name TEXT,value INTEGER);
こんなデータファイルdbtest.datがあったとする.
ほげ	1
ふが	2
foo	3
1行が1レコードで値がTABで区切ってある.で,このファイルのデータをテーブルに一気につっこむには以下のようにする.
\copy テーブル名 form ファイル
で,こんな風にして
=> \copy table1 from ./dbtest.dat
こう出ると成功.
.\
確認してみる.
=> SELECT * FROM table1
firstdb-> ;
 name | value 
------+-------
 ほげ |     1
 ふが |     2
 foo  |     3
      |      
(4 rows)
4 rowsとなっているのは,多分指定したファイルに空行があったからだろう.なので,ファイルには空行をいれないように注意.
こんどはデータをファイルに書き出してみる.こんな風にする.
\copy テーブル名 to ファイル名
こんな風にすると,
\copy table1 to /tmp/out.dat
ローカルマシンに/tmp/out.datができる.
cat /tmp/out.dat 
ほげ    1
ふが    2
foo     3
        \N
やっぱりデータファイルに空行があったので,\Nなどと出ている.
matsu(C)
Since 2002
Mail to matsu