2020년 7월 1일 수요일

PostgreSQL 윈도우 사용기

쓸 일이 있어서 기록해둔다. 사용 환경은 윈도우 10.


위에서 대충 다운받아주자.


GUI 로 pgAdmin 이 있다. 이건 파이썬 쥬피터 노트북처럼 웹에서 실행할 수 있다. 알아서 웹서버를 열어주는 것이다.

PostgreSQL 12 라는 서버가 기본적으로 있는데, 왼쪽의 트리에 무엇을 선택하느냐에 따라서 오른쪽 화면이 바뀐다. 호스트 비밀번호는 sql 을 다운받을 때 썼던 것 그대로.

0. 명령어

크게 접근 방법이 두가지가 있다.

하나는 cmd 에서 관련 폴더에 들어가서 명령어하는 기본 cmd 명령어.

postsql 은 위 폴더에서 실행한다.

=> 가 앞에 붙으면 위 명령어 종류라고 postgres 튜토리얼에서 말하며 여기서도 그걸 채용한다.

다른 하나는 psql 이 제공하는 명령어이다.

cmd 앞에 [dbname]=# 가 붙으면 postgres 가 돌아가고 있구나 하면 된다.

$ 가 앞에 붙으면 위 명령어 종류라고 postgres 튜토리얼에서 말하며 여기서도 그걸 채용한다.

psql cmd 창에서 => \! 을 입력하면 cmd 명령창으로 돌아가고, $ psql -U dbname 을 입력해서 비밀번호를 입력하면 다시 psql 창으로 돌아올 수 있다.

더해서 \! 이후에 오는 문장은 기본 shell 문장이다.

=> \! dir -> 현재 디렉토리 내용 보기

=> \! mkdir [directory] -> 디렉토리 만들기

=> \! cd [directory] -> 이건 원래 현재 작업중 디렉토리를 바꾸는 명령어이다. 하지만 psql 에서 명령하면 작동하지 않는다.대신 psql 에서는 \cd 를 제공한다.

PSQL command

=> \cd -> 디렉토리 이동하기, 단 \ 가 아니라 / 로 경로 구분을 하는 것에 주의

=> \c -> connect 넣어도 됨, {[DBNAME|- USER|- HOST|- PORT|-] ] 순으로 입력받음.

1. 흐름

들어가기 전에 -U 관련 키워드가 어떻게 되는지 알아야한다.

postgres 는 server들을 돌릴 수 있으며, 서버마다 db 들과 user 들이 연결된다.

server 와 db와 user 는 별개의 문제이므로, 한 데이터베이스가 어러 서버에 연동되는 것도 가능하다.

이 때 중요한 것은 server 당 maintenance db, user 가 있다는 것이다.

$psql -U user 를 입력할 땐, 비밀번호가 요구된다면 maintenance user 의 비밀번호를 입력받으며, 자동으로 maintance db 로 연결된다.

postgres를 다운받으면 기본적으로 postgres 라는 이름으로 db, user 가 maintenance 로 되어있는 서버가 생성되어 있다. 그렇기때문에 $psql -U postgres 으로 psql shell 을 실행할 수 있다.

2. 데이터베이스

- PSQL command

쉘 앞에 [...]-# 나 [...]=> 에 있는게 데이터베이스 이름이다.

#, => 의 차이는 현 User 가 SuperUser 인지의 유무이다.

디비 조회 -> \l

생성

-> create database [dbname];

-> create database [dbname] owner [username];

-> alter database [dbname] owner to [username];

-> alter database [dbname] rename to [dbname];

-> alter database [dbname] set enable_indexscan to on;

삭제

-> drop database [dbname];

- Cmd command

생성

$ createdb -U [dbName] mydb

삭제

$ dropdb -U [dbName] mydb

`

3. 유저

기본적으로 슈퍼유저인 postgres 가 지정되어 있음.

유저는 권한이 4단계로 이루어짐

SUPERUSER - 유저 생성 및 권한 부여

CREATEROLE - 유저가 새로운 ROLE 을 정의가능하게

CREATEDB - DB 생성 및 권한 부여

REPLICATION - DB 복제

유저조회 -> SELECT * FROM PG_SHADOW; 또는 \du

유저생성

-> create user [usernam];

-> create user [username] password '...';

-> create user [username] [권한]; // 위에 있는 권한

유저변경

-> alter user [username] rename to [anotherusername];

-> alter user [username] password ['...'];

-> alter user [username] with [권한];

유저삭제

-> drop user [username];

4. 스키마

table, view 등 object 의 논리적 집합

조회

-> \dn

생성

-> create schema [name];

-> create schema test2 authorization [username];

-> create schema test3 create table tablename(table_name varchar(20));

변경

-> alter schema [name] rename to [name];

-> alter schema tested1 owner to test2;

삭제

-> drop schema tested1;

뭘까

-> show search_path;

5. 테이블

조회

-> \db (테이블 스페이스), \dt (테이블 리스트)

=> \d (테이블 보는거), \d [table name] (table 구성이 어케 되었나)


댓글 없음:

댓글 쓰기

List