| $ sudo apt-get install postgresql |
| local all all password |
| $ sudo /etc/init.d/postgresql-8.3 restart |
| $ sudo passwd postgres |
| $ psql template1 |
| template1=# \q |
| $ psql -l |
| $ psql template1 |
| template1=# \q |
| $ createdb testdb |
| $ dropdb testdb |
| $ pg_dump testdb > /tmp/dbbackup |
$ dropdb -U postgres testdb |
| template1=# SELECT usename FROM pg_user; |
| template1=# CREATE USER abc WITH PASSWORD 'パスワード'; |
| template1=# ALTER USER abc WITH PASSWORD '変更後のパスワード'; |
| template1=# DROP USER abc; |
| testdb=# \dt |
|
| testdb=# ALTER TABLE test2_user RENAME TO test_user; |
| testdb=# DROP SEQUENCE test2_user_id_seq; |
| testdb=# DROP TABLE test_user; |
| testdb=# ALTER TABLE test_user ADD kana VARCHAR(80); |
| testdb=# ALTER TABLE test_user RENAME kana TO hiragana; |
| testdb=# SELECT name, age, note, hiragana INTO TABLE tmp_table FROM test_user; testdb=# DROP TABLE test_user; testdb=# ALTER TABLE tmp_table RENAME TO test_user; |
| testdb=# COPY test_user TO '/tmp/test_user.csv' DELIMITERS ','; |
| testdb=# COPY test_user FROM '/tmp/test_user.csv' DELIMITERS ','; |
| testdb=# GRANT SELECT ON test_user TO abc; |
| testdb=# GRANT ALL ON test_user TO abc; |
| testdb=# REVOKE SELECT ON test_user FROM abc; |
| testdb=# REVOKE ALL ON test_user FROM public; |
| testdb=# \d test_user |
タイプ |
範囲 |
| smallint | -32768~32767 |
| integer | -2147483648~2147483647 |
| bigint | -9223372036854775808~9223372036854775807 |
| double | 15桁精度 |
| serial | 1~2147483647 |
タイプ |
範囲 |
| char(文字数) | 最大半角255文字の固定長文字列 |
| varchar(文字数) | 最大半角255文字の可変長文字列 |
| text | 無制限の可変長文字列 |
| bytea | 無制限のバイナリ列 |
| testdb=# INSERT INTO test_user(name, age) VALUES('aaa', 31); testdb=# INSERT INTO test_user VALUES('aaa', 31, 'note'); |
| testdb=# UPDATE test_user SET name='bbb'; |
| testdb=# UPDATE test_user SET name='bbb' WHERE age=31; |
| testdb=# DELETE FROM test_user; |
| testdb=# DELETE FROM test_user WHERE name='bbb'; |
| testdb=# SELECT * FROM test_user WHERE age>=30 ORDER BY age ASC; |
| testdb=# SELECT name, age FROM test_user WHERE name LIKE 'a%' OR name LIKE '%b' ORDER BY age DESC; |
| testdb=# SELECT name FROM test_user WHERE age>=30 AND age<35; testdb=# SELECT name FROM test_user WHERE age BETWEEN 30 AND 34; testdb=# SELECT name FROM test_user WHERE age IN(30,31,32,33,34); |
| testdb=# SELECT DISTINCT age FROM test_user; |
| testdb=# SELECT age, COUNT(age) FROM test_user GROUP BY age; |
| testdb=# SELECT age, COUNT(age) FROM test_user WHERE age<=33 GROUP BY age HAVING COUNT(age)>=2; |
| testdb=# SELECT name, MAX(age) FROM test_user GROUP BY name; |
| testdb=# SELECT * FROM test_user, uriage; |
| testdb=# SELECT * FROM test_user, uriage WHERE test_user.name=uriage.name; testdb=# SELECT * FROM test_user INNER JOIN uriage ON test_user.name=uriage.name; |
| testdb=# SELECT * FROM test_user, uriage WHERE test_user.name=uriage.name AND test_user.hiragana=uriage.hiragana; testdb=# SELECT * FROM test_user INNER JOIN uriage ON test_user.name=uriage.name AND test_user.hiragana=uriage.hiragana; |
| testdb=# SELECT * FROM test_user LEFT JOIN uriage ON test_user.name=uriage.name; testdb=# SELECT * FROM uriage RIGHT JOIN test_user ON uriage.name=test_user.name; |