[PostgreSQL] SQL 명령어 관련
2022. 1. 24. 14:03ㆍDev/Etc

모두 PSQL Shell 내에서 입력하면 된다.
역할 생성
CREATE ROLE [역할 이름] WITH [...옵션];
* 기본 역할 생성
CREATE ROLE basic_role;
* 슈퍼 유저 권한 역할 생성
CREATE ROLE basic_role_with_sup with SUPERUSER;
* 비밀번호가 요구되는 슈퍼 유저, DB 생성 권한 역할 생성
CREATE ROLE varaiety_role WITH SUPERUSER CREATEDB LOGIN PASSWORD 'password';
데이터베이스 생성
CREATE DATABASE [데이터베이스 이름] [...옵션];
* 기본 DB 생성 : 이 경우 basic_db의 owner는 postgres로 설정됨
CREATE DATABASE basic_db;
* DB의 OWNER 설정 : 특정 Owner(=Role)를 설정 => 모든 권한을 가짐
CREATE DATABASE basic_db_with_owner OWNER basic_role;
* psql shell이 아닌 기본 터미널에서 바로 생성도 가능하다.
createdb [데이터베이스 이름]
createdb -O [오너 이름] [데이터베이스 이름]
스키마 생성
CREATE SCHEMA [스키마 이름];
* 기본 스키마 생성
CREATE SCHEMA basic_schem;
테이블 생성
CREATE TABLE [테이블 이름];
이 경우, 테이블은 기본으로 설정된 스키마(=public)에서 생성된다.
만약 특정 스키마(여기서는 basic_schem를 이용)에서 테이블을 생성하고 싶다면 "스키마.테이블"의 형태로 생성하면 된다.
* 기본 테이블 생성
CREATE TABLE basic_table;
* 특정 스키마(basic_schem)에서 table 생성
CREATE TABLE basic_schem.basic_table;
매번 특정 스키마로 지정하는게 불편하고, public 대신 다른 스키마를 시정하고 싶다면 스키마 옵션을 변경해주면 된다.
Schema 변경
SET SEARCH_PATH [스키마 이름];
이런식으로 스키마를 따로 지정하게 된다면 CREATE TABLE을 할 때나 SELECT FROM을 할 때 등, Table 접근 시 스키마를 지정해주지 않아도 설정된 스키마로 테이블을 접근할 수 있게 된다.
* 기본
SET SEARCH_PATH basic_schem;
'Dev > Etc' 카테고리의 다른 글
[MongoDB] Authentication 인증 추가 (0) | 2022.02.08 |
---|---|
[Docker DB]Docker에서 Postgres, MongoDB, Redis 구동하기 (0) | 2022.02.08 |
[Mac OS] Homebrew 관련 명령어 정리 (0) | 2022.01.15 |
[PostgreSQL] db 생성 및 삭제 명령어 (0) | 2021.11.06 |
MQTT + NodeJS로 통신하기 (0) | 2021.03.29 |