위에서 대충 다운받아주자.
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 구성이 어케 되었나)
댓글 없음:
댓글 쓰기