FreeBSD/PostgreSQL¥³¥Þ¥ó¥É ¤ÎÊѹ¹ÅÀ


*PostgreSQL¥³¥Þ¥ó¥É [#ya542f07]

[[dokuwiki.fl8.jpžºÜºÑ>http://dokuwiki.fl8.jp/doku.php/02_freebsd/04_database/02_posgresql/postgresql%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89]]

#contents

**¥Ñ¥¹¥ï¡¼¥ÉÉÕ¤Ç¥í¥°¥¤¥ó¤¹¤ë [#h761c778]
 $ psql ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾ -U ¥æ¡¼¥¶¡¼Ì¾ -W

**PostgreSQL¤Î¥æ¡¼¥¶ºîÀ® [#k7be7697]
PostgreSQL¤Ë¥æ¡¼¥¶¤òcreateuser¥³¥Þ¥ó¥É¤ò»ÈÍѤ·¤ÆºîÀ®¤¹¤ë¤¬~
PostgreSQL¤Ë¥æ¡¼¥¶ºîÀ®¤¹¤ë¤Î¤Ï¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤Ç¹Ô¤Ê¤¤¤Þ¤¹¡£~
¢¨¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¤È¤Ïpg_shadow ¥Æ¡¼¥Ö¥ë¤Ç usesuper ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤ë¥æ¡¼¥¶¤ò»Ø¤·¤Æ¤¤¤ë¡£~

 createuser -a -d -U postgres -P ¥æ¡¼¥¶¡¼Ì¾

-¥ª¥×¥·¥ç¥ó
|-a(--adduser)|¿·¤·¤¤PostgreSQL¥æ¡¼¥¶¤Ï¡¢Â¾¤Î¥æ¡¼¥¶¤òºîÀ®¤¹¤ë¤³¤È¤¬µö²Ä¡£|
|~|¢¨¤³¤Î¥ª¥×¥·¥ç¥ó¤òÉÕ¤±¤ë¤È¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶¡£  |
|-d(--createdb)|¿·¤·¤¤PostgreSQL¥æ¡¼¥¶¤Ï¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®¤¬µö²Ä¤µ¤ì¤Þ¤¹¡£  |
|-U|[Àܳ¥æ¡¼¥¶Ì¾]|
|(--username)|PostgreSQL¤ËÀܳ¤¹¤ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£|
|~|¾åµ­¥³¥Þ¥ó¥É¤Ç¤Ïpostgres(¥¹¡¼¥Ñ¡¼¥æ¡¼¥¶)¤ÇÀܳ¤·¤Æ¤¤¤Þ¤¹¡£  |
|-P(--pwprompt)|¿·¤·¤¤PostgreSQL¥æ¡¼¥¶¤Î¥Ñ¥¹¥ï¡¼¥É¤Î¥×¥í¥ó¥×¥È¤òɽ¼¨¤·¤Þ¤¹¡£  |


***¥æ¡¼¥¶¤Î³Îǧ [#udce6dc8]
 postgres=# select * from pg_shadow ;
  usename  | usesysid | usecreatedb | usesuper | usecatupd |                passwd               | valuntil | useconfig
 ----------+----------+-------------+----------+-----------+-------------------------------------+----------+------------
 postgres |        1 | t           | t        | t         |                                     |          |
 matsui   |      100 | t           | f        | f         | md5a88cf805de7149ac382f054f03935580 |          |
 (2 rows)


**PostgreSQL¤Î¥æ¡¼¥¶ºï½ü [#la0580a3]
 dropuser ¥æ¡¼¥¶Ì¾
 
 ¡ÊÎã¡Ë
 dropuser matsui

**PostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤ÎºîÀ®(createdb¤Î»ÈÍÑ) [#l5cf8518]
 createdb -E [¥¨¥ó¥³¡¼¥É] -O [¥ª¡¼¥Ê¡¼] -U [Àܳ¥æ¡¼¥¶Ì¾] [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾]

-¥ª¥×¥·¥ç¥ó
|-E(--encording)|[¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°Ì¾]|ºîÀ®¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹Æâ¤Ç»ÈÍѤ¹¤ëʸ»ú¥¨¥ó¥³¡¼¥ÉÊý¼°¤ò»ØÄꤷ¤Þ¤¹¡£|
|-O(--owner)|[¥ª¡¼¥Ê̾]|ºîÀ®¤¹¤ë¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½êÍ­¼Ô¤È¤Ê¤ë¥æ¡¼¥¶¤ò»ØÄꤷ¤Þ¤¹¡£|
|-U(--username)|[Àܳ¥æ¡¼¥¶Ì¾]|PostgreSQL¤ËÀܳ¤¹¤ë¥æ¡¼¥¶Ì¾¤ò»ØÄꤷ¤Þ¤¹¡£|

**PostgreSQL¤Î¥Ç¡¼¥¿¥Ù¡¼¥¹¤Îºï½ü(dropdb) [#w30948dc]
 dropdb [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾]

**¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥ê¥¹¥È¥¢(pg_dump) [#i4aa29c2]
[¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾]¤Ë¤Æ¥Ð¥Ã¥¯¥¢¥Ã¥×¤ò¼è¤ë¤³¤È¤¬²Äǽ¡£¤½¤ÎºÝ¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î½êÍ­¼Ô¤Ësu¤·¤Æ¤ª¤¤¤¿Êý¤¬¤è¤¤¡£


-¼ç¤Ê¥ª¥×¥·¥ç¥ó
 -a ¥Ç¡¼¥¿¤Î¤ß¤ò¥À¥ó¥×
 -b ¥é¡¼¥¸¥ª¥Ö¥¸¥§¥¯¥È¤â¥À¥ó¥×¤¹¤ë¡£¡ÊÃí: ¥Ç¥Õ¥©¥ë¥È¤Ç¤Ï¥À¥ó¥×¤µ¤ì¤Þ¤»¤ó¡Ë
 -d INSERT¥³¥Þ¥ó¥É¤Ë¤Æ¥À¥ó¥×¡ÊÄ̾ï¤ÏCOPY¥³¥Þ¥ó¥É)
 -D ¥«¥é¥à̾¤ò´Þ¤á¤¿INSERT¥³¥Þ¥ó¥É¤Ë¤Æ¥À¥ó¥×
 -s ¥Æ¡¼¥Ö¥ë¤Î¤ß¥À¥ó¥×
 -t ÆÃÄê¤Î¥Æ¡¼¥Ö¥ë¤Î¤ß¥À¥ó¥×
 -F ¥¢¥¦¥È¥×¥Ã¥È¥Õ¥¡¥¤¥ë¤Î·Á¼°¤ò»ØÄê¡Êc¤¬¥«¥¹¥¿¥à¡¢t¤¬tar¡¢p¤¬¥Æ¥­¥¹¥È)


-Îã(¥Ð¥Ã¥¯¥¢¥Ã¥×)
 pg_dump database_name > database_name.sql


-Îã(¥ê¥¹¥È¥¢)
 createdb ¤Ë¤Ædatabase¤òºîÀ®¤·¡¢Æ±¤¸¥æ¡¼¥¶¤Ç°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤Ð¤è¤¤¡£
 psql database_name < database_name.sql
&color(Red){¢¨¤¹¤Ç¤Ëdatabase¤¬Â¸ºß¤¹¤ë¾ì¹ç¤Ï¡¢Àè¤Ëdropdb¤¹¤ëɬÍפ¬¤¢¤ë¡£};

**¥Ð¥Ã¥¯¥¢¥Ã¥×¡¦¥ê¥¹¥È¥¢(pg_dumpall) [#m31f0ec8]
#¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×
 $ pg_dumpall > allbackup.db


#¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥ê¥¹¥È¥¢ ¡Êpg_dump¤È¤Ï°ã¤¤¥æ¡¼¥¶¤Ê¤É¤âºîÀ®¤·¤Æ¤¯¤ì¤Þ¤¹¡Ë
 $ psql -f allbackup.db template1



**PostgreSQL¤Ç¤Î¥¼¥í¥Ñ¥Ç¥£¥ó¥° [#f1bced1b]
 # select lpad(id,4,'0') as id from t_images order by id desc; 
 
 ¤³¤ó¤Ê´¶¤¸¤Çɽ¼¨¤µ¤ì¤ë
   id  
 ------
 0017
 0015
 0014
 0012
 0011
 0010
 0009
 0008
 0007
 0006
 0005
 0003
 0002
 0001
 (14 rows)

-PostgreSQL¤Î¥æ¡¼¥¶ºîÀ®¡¢¥Ç¡¼¥¿¥Ù¡¼¥¹ºîÀ®Åù¤Î´ðËÜÁàºî~
[[http://www.develop-memo.com/database/postgresql/postgresqloperate.html]]

-PostgreSQL¥Ç¡¼¥¿¥Ù¡¼¥¹¤Î¥³¥Þ¥ó¥É~
[[http://y-kit.jp/saba/xp/postgrecmd.htm]]


**[DEFAULT¤ÎÀßÄꡦÊѹ¹] [#xe8d3e10]
 ALTER TABLE table_name ALTER COLUMN column_name SET DEFAULT 0;


**[DEFAULT¤Îºï½ü] [#m4e0ce32]
 ALTER TABLE table_name ALTER COLUMN column_name DROP DEFAULT;

**¥Õ¥£¡¼¥ë¥É̾¤ÎÊѹ¹ [#l6ebf26c]
 ALTER TABLE (¥Æ¡¼¥Ö¥ë̾) RENAME after_fild TO (Êѹ¹¸å¥Õ¥£¡¼¥ë¥É̾)


*PostgreSQL¤Î¥³¥Þ¥ó¥É [#h9ca9bbb]
 ¥Ç¡¼¥¿¥Ù¡¼¥¹ºîÀ® ¡¡ createdb [-D ¥Ñ¥¹] [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] 
 ¥Ç¡¼¥¿¥Ù¡¼¥¹ºï½ü ¡¡ dropdb [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] 
 ¥¤¥ó¥¿¥é¥¯¥Æ¥£¥Ö¤ÊSQL¼Â¹Ô ¡¡ psql [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] 
 SQL¼Â¹Ô ¡¡ psql [¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] < SQL¥Õ¥¡¥¤¥ë 
 ¥À¥ó¥× ¡¡ pg_dumpall > ¥Õ¥¡¥¤¥ë̾ 
 pg_dump [-t ¥Æ¡¼¥Ö¥ë̾] ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾ > ¥Õ¥¡¥¤¥ë̾ 
  
 ¥ì¥¹¥È¥¢ ¡¡ psql template1 < ¥Õ¥¡¥¤¥ë̾ 
 psql -d template1 -f ¥Õ¥¡¥¤¥ë̾ 
 pg_restore [ -d ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] ¥Õ¥¡¥¤¥ë̾ 
 
 ¥¨¥¯¥¹¥Ý¡¼¥È ¡¡ psql [-d ¥Ç¡¼¥¿¥Ù¡¼¥¹Ì¾] -t -c "SQL" > ¥Õ¥¡¥¤¥ë̾ 

**psql¤Î¥³¥Þ¥ó¥É [#sbb59674]
 ¥³¥Þ¥ó¥É°ìÍ÷ ¡¡ \?    ½ªÎ» ¡¡ \q 
 ¥Ç¡¼¥¿¥Ù¡¼¥¹°ìÍ÷ ¡¡ \l    ÁȤ߹þ¤ß´Ø¿ô°ìÍ÷ ¡¡ \df 
 ¥Æ¡¼¥Ö¥ë°ìÍ÷ ¡¡ \d    ½¸Ìó´Ø¿ô°ìÍ÷ ¡¡ \da 
 ¥Æ¡¼¥Ö¥ë¾ÜºÙ ¡¡ \d ¥Æ¡¼¥Ö¥ë̾    ʸ»ú¥³¡¼¥Éɽ¼¨ ¡¡ \encoding 
 ¥Æ¡¼¥Ö¥ë¸¢¸Â ¡¡ \z    ¡¡ 

**SQL [#ifcce372]
 PostgreSQL¤Î¥Ð¡¼¥¸¥ç¥ó ¡¡ SELECT version(); 
 
 --------------------------------------------------------------------------------
 
 ¥Æ¡¼¥Ö¥ë¤ÎºîÀ® ¡¡ CREATE TABLE ¥Æ¡¼¥Ö¥ë̾; 
 ¥Æ¡¼¥Ö¥ë¤Îºï½ü ¡¡ DROP TABLE ¥Æ¡¼¥Ö¥ë̾; 
 ¥Æ¡¼¥Ö¥ë̾¤ÎÊѹ¹ ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ RENAME TO ¿·¥Æ¡¼¥Ö¥ë̾; 
 
 --------------------------------------------------------------------------------
  
 Îó¤ÎÄɲà ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ADD COLUMN Îó¤ÎÄêµÁ; 
 Îó¤Îºï½ü ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ DROP COLUMN Îó̾; 
 Îó̾¤ÎÊѹ¹ ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ RENAME COLUMN Îó̾ TO ¿·Îó̾; 
 
 --------------------------------------------------------------------------------
 
 À©Ìó¤ÎÄɲà ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ADD CONSTRAINT À©Ìó̾ UNIQUE ( Îó̾ [, Îó̾]... ); 
 NOT-NULLÀ©Ìó¤ÎÄɲà ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ALTER COLUMN Îó̾ SET NOT NULL; 
 À©Ìó¤Îºï½ü ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ DROP CONSTRAINT À©Ìó̾; 
 NOT-NULLÀ©Ìó¤Îºï½ü ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ALTER COLUMN Îó̾ DROP NOT NULL; 
 ¥Ç¥Õ¥©¥ë¥È¤ÎÄɲà ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ALTER COLUMN Îó̾ SET DEFAULT ¥Ç¥Õ¥©¥ë¥ÈÃÍ; 
 ¥Ç¥Õ¥©¥ë¥È¤Îºï½ü ¡¡ ALTER TABLE ¥Æ¡¼¥Ö¥ë̾ ALTER COLUMN Îó̾ DROP DEFAULT;

**postgreSQL¤Ç¥Ç¡¼¥¿·¿¤ÎÊѹ¹ [#n159e845]
¢¨postgreSQL¤Ç¤Ï¥Ç¡¼¥¿·¿¤ÎÊѹ¹¤¬¤Ç¤­¤Þ¤»¤ó¡£~
¿·¤¿¤Ë¥Õ¥£¡¼¥ë¥É¤òºî¤Ã¤Æ¥Ç¡¼¥¿¤ò¼Ì¤·¤Æ¥Ç¡¼¥¿¥Õ¥£¡¼¥ë¥É¤òÊѹ¹¤¹¤ë¤È¤¤¤¦¤á¤ó¤É¤¯¤µ¤¤½èÍý¤¬¤¤¤ê¤Þ¤¹¡£~

 ­¡ALTER TABLE (¥Æ¡¼¥Ö¥ë̾) ADD COLUMN after_fild ¡ÊÊѹ¹¸å¥Ç¡¼¥¿·¿¡Ë
 ­¢UPDATE (¥Æ¡¼¥Ö¥ë̾) SET after_fild = (Êѹ¹Á°¥Õ¥£¡¼¥ë¥É̾)
 ­£ALTER TABLE (¥Æ¡¼¥Ö¥ë̾) DROP (Êѹ¹Á°¥Õ¥£¡¼¥ë¥É̾);
 ­¤ALTER TABLE (¥Æ¡¼¥Ö¥ë̾) RENAME after_fild TO (Êѹ¹¸å¥Õ¥£¡¼¥ë¥É̾)


**postgresql¥Á¥Ã¥×¥¹ [#y4093422]
[[http://ash.jp/db/pg_tips.htm>http://ash.jp/db/pg_tips.htm]]