ちょっと使ってみる
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 31行が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などと出ている.

