๐ What is PostgreSQL?
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) | ๋ฌด์ ํ |
์ฅ์
- BSD ๋ผ์ด์ผ์ค๋ก, ์์ค๋ฅผ ๋ณ๊ฒฝํด ์ฌ๋ฐฐํฌ ํ๋๋ผ๋ ๋ฒ์ ์ผ๋ก ๋ฌธ์ ๊ฐ ์๋ค.
- ์ค๋๋ ์คํ์์ค๋ก ์์ ์ฑ์ด ์๊ณ ๊ฐ๋ณ๊ฒ ๋์๊ฐ๋ค.
- ๋์ฉ๋ ์ฒ๋ฆฌ์๋ ํฐ ๋ฌธ์ ๊ฐ ์๋ค.
- ๋ฌด๋ฃ SQL์ด์ง๋ง ์ง์์ ์ผ๋ก ์
๋ฐ์ดํธ ๋๊ณ ์๋ค.
- Oracle DB์ ๋ฒ๊ธ๊ฐ๋ ํต๊ณ ํจ์๋ฅผ ์ ๊ณตํ๋ค.
์ค์น
$ brew install postgresql
pg_ctl -D /usr/local/var/postgres start && brew services start postgresql
postgres -V
์ค์
psql postgres [-U username] [-h host] [-p port] [-d database]
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];
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 ์ข
๋ฃ |
Data Type
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 |
Referance
PostgreSQL