
PostgreSQL์ ์คํ ์์ค ๊ฐ์ฒด-๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ  (ORDBMS)์ผ๋ก, ๋ค๋ฅธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๊ณผ ๋ฌ๋ฆฌ ์ฐ์ฐ์, ๋ณตํฉ ์๋ฃํ, ์ง๊ณ ํจ์, ์๋ฃํ ๋ณํ์, ํ์ฅ ๊ธฐ๋ฅ ๋ฑ ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ฒด๋ฅผ ์ฌ์ฉ์๊ฐ ์์๋ก ๋ง๋ค ์ ์๋ ๊ธฐ๋ฅ์ ์ ๊ณตํจ์ผ๋ก์จ ๋ง์น ์๋ก์ด ํ๋์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ฒ๋ผ ๋ฌดํํ ๊ธฐ๋ฅ์ ๊ตฌํํ ์ ์๋ค.
๊ด๊ณํ DBMS์ ๊ธฐ๋ณธ์ ์ธ ๊ธฐ๋ฅ์ธ ํธ๋์ญ์
๊ณผ ACID(Atomicity, Consistency, Isolation, Durability)๋ฅผ ์ง์ํ๋ค.
PostgreSQL์ ์ ๋ถ ์ง์ํ๋ ๊ฒ์ ๋ชฉํ๋ก ์ง์์ ์ผ๋ก ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ  ์๋ค.
| PostgreSQL์ ํน์ง | ์ ํ ์ฌํญ | 
|---|---|
| ์ต๋ DB ํฌ๊ธฐ (Database Size) | ๋ฌด์ ํ | 
| ์ต๋ ํ ์ด๋ธ ํฌ๊ธฐ (Table Size) | 32TB | 
| ์ต๋ ๋ ์ฝ๋ ํฌ๊ธฐ (Row Size) | 1.6TB | 
| ์ต๋ ์ปฌ๋ผ ํฌ๊ธฐ (Field Size) | 1GB | 
| ํ ์ด๋ธ๋น ์ต๋ ๋ ์ฝ๋ ๊ฐ์ (Rows per Table) | ๋ฌด์ ํ | 
| ํ ์ด๋ธ๋น ์ต๋ ์ปฌ๋ผ ๊ฐ์ (Columns per Table) | 250 ~ 1600๊ฐ | 
| ํ ์ด๋ธ๋น ์ต๋ ์ธ๋ฑ์ค ๊ฐ์ (Indexes per Table) | ๋ฌด์ ํ | 
// MacOS
$ brew install postgresql
// start
pg_ctl -D /usr/local/var/postgres start && brew services start postgresql
// ์คํ ํ์ธ
postgres -V
// ์ ์
psql postgres [-U username] [-h host] [-p port] [-d database]
// user ๊ถํ ํ์ธ
postgres=# \du
// ๊ถํ ์์ฑ ๋ฐ ๊ถํ ๋ถ์ฌ
postgres=#  CREATE ROLE [rolename] WITH LOGIN PASSWORD '[password]';
postgres=#  ALTER ROLE [rolename] CREATEDB;
// ์ ์  ์์ฑ
postgres=# createuser [username] --createdb
// ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฑ
postgres=# CREATE DATABASE [db name];
postgres=# createdb [db name] [-O ownername];
// ๋ฐ์ดํฐ๋ฒ ์ด์ค owner ๋ณ๊ฒฝ
postgres=#  ALTER DATABASE [db name] OWNER TO [username];
| command | ์ค๋ช | 
|---|---|
| \list(or \l) | ์ ์ฒด DB ์ธ์คํด์ค ๋ชฉ๋ก | 
| \dt | ์ ์ํ DB์ ํ ์ด๋ธ ๋ชฉ๋ก | 
| \ds | Sequence ๋ชฉ๋ก | 
| \df | Function ๋ชฉ๋ก | 
| \dv | View ๋ชฉ๋ก | 
| \du | User ๋ชฉ๋ก | 
| \timing | Query ์คํ ์๊ฐ | 
| \q | psql ์ข ๋ฃ | 
| Name | Aliases | ์ค๋ช | 
|---|---|---|
| Bigint | int8 | signed 8byte ์ ์ํ | 
| Bigserial | serial8 | ์๋์ฆ๊ฐ 8byte ์ ์ํ | 
| bit[(n)] | ๊ณ ์ ๊ธธ์ด bit string | |
| bit varying[(n)] | Varbit | ๊ฐ๋ณ๊ธธ์ด bit string | 
| Boolean | Bool | Boolean์ฐ์ฐ (true/false) | 
| Box | ํ๋ฉด ์์ ์ง์ฌ๊ฐํ ์์ | |
| Bytea | ์ด์ง data ("byte array") | |
| character [(n)] | char[(n)] | ๊ณ ์ ๊ธธ์ด character string | 
| character varying [(n)] | varchar[(n)] | ๊ฐ๋ณ๊ธธ์ด character string | 
| Cidr | IPv4 or IPv6 network address | |
| Circle | ํ๋ฉด ์์ ๋ฉด | |
| Date | ๋ฌ๋ ฅ ๋ ์ง (year, month, day) | |
| double precision | float8 | double precision floating-point number (8bytes) | 
| Inet | IPv4, IPv6 host address | |
| Integer | int, int4 | signed four-byte ์ ์ํ | 
| interval [fields] [(p)] | time ๊ตฌ๊ฐ | |
| Json | ๋ฌธ์ JSON data | |
| Jsonb | ์ด์ง JSON data, decomposed | |
| Macaddr | MAC(Media Access Control) address | |
| Money | ํ๊ธ ์ด์ก | |
| pg_lsn | PostgreSQL Log ๋ฒํธ | |
| Real | float4 | single precision floating-point number | 
| Smallint | int2 | signed 2bytes ์ ์ํ | 
| Smallserial | serial2 | ์๋์ฆ๊ฐ 2bytes ์ ์ํ | 
| Serial | serial4 | ์๋์ฆ๊ฐ 4bytes ์ ์ํ | 
| Text | ๊ฐ๋ณ๊ธธ์ด character string | |
| time [(p)] [without time zone] | time of day(no time zone) | |
| time [(p)] with time zone | timetz | time of day, including time zone | 
| timestamp[(p)] [without time zone] | ๋ ์ง์ ์๊ฐ (no time zone) | |
| timestamp[(p)] with time zone | timestamptz | ๋ ์ง์ ์๊ฐ, including time zone | 
| Tsquery | text ๊ฒ์ ์ฟผ๋ฆฌ | |
| Tsvector | text ๊ฒ์ ๋ฌธ์ | |
| Xml | XML data |